sieve

mcp
Guvenlik Denetimi
Uyari
Health Uyari
  • License — License: Apache-2.0
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Low visibility — Only 5 GitHub stars
Code Gecti
  • Code scan — Scanned 12 files during light audit, no dangerous patterns found
Permissions Gecti
  • Permissions — No dangerous permissions requested

Bu listing icin henuz AI raporu yok.

SUMMARY

Exact files, lines and callers for your coding agent. Local, no API key.

README.md

Sieve

Sieve gives your coding agent exact files, lines and callers. It runs locally and needs no API key.

Six pixel mascots. Sieve, a kitchen sieve, is the default.

CI version license

Why

A coding agent that needs to find code usually greps, opens whole files and guesses at what calls what. That costs tokens and time, and a wrong guess leads to a wrong edit.

Sieve indexes your repo into a symbol graph with call edges. Your agent (Claude Code, Codex or any MCP host) asks Sieve "where is this" or "what calls this", and gets the exact file, the line range and the callers in one answer. The agent reads only the lines it needs.

Real output from the vite repo:

$ sieve callers handleHMRUpdate --depth 2
handleHMRUpdate  fn  packages/vite/src/node/server/hmr.ts:411-679
2 callers · 5 within 2 hops
├─ testRestartDuringHotUpdate  fn  packages/vite/src/node/server/__tests__/hmr.spec.ts:6-40
│  │  34: handleHMRUpdate(
│  └─ hmr.spec.ts  file  packages/vite/src/node/server/__tests__/hmr.spec.ts:1-56
└─ onHMRUpdate  fn  packages/vite/src/node/server/index.ts:908-915
   │  913: await handleHMRUpdate(type, file, server)
   ├─ onFileAddUnlink  fn  packages/vite/src/node/server/index.ts:917-953
   └─ onFileChange  fn  packages/vite/src/node/server/index.ts:955-969

Sieve runs on your machine. It sends no telemetry and makes no network call for a query.

Install

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/iamalvisng/sieve/releases/latest/download/sieve-cli-installer.sh | sh

The installer puts sieve in $CARGO_HOME/bin. Put that folder on your PATH.

Other channels:

brew install iamalvisng/tap/sieve
cargo binstall sieve-cli
cargo install --locked --git https://github.com/iamalvisng/sieve sieve-cli

See docs/guide/install.md for each operating system.

Quick start

cd your-repo
sieve init --dry-run   # lists every file init would write; writes nothing
sieve init             # builds the index and connects your agents
sieve query "how does login work"

init builds the index and sets up the agents it finds: instruction files, the MCP server, and for Claude Code the hooks and the status line. It also writes the Codex config under ~/.codex/. Add --no-global to keep every write inside the repo. sieve init --mod adds the Claude Code pane. sieve uninstall removes everything init wrote.

After that, just work. Your agent calls Sieve by itself, and the index refreshes before each query, including edits you have not committed.

To use Sieve from another MCP host, register sieve mcp as a stdio server:

{ "mcpServers": { "sieve": { "command": "sieve", "args": ["mcp"] } } }

See docs/guide/mcp.md.

Commands

Command What it does
sieve query "<question>" Ranked symbols with exact file and line. --source inlines the code.
sieve find <text> Every match, grouped under its symbol.
sieve callers <symbol> Who calls a symbol, to the depth you choose. Each edge is exact or inferred.
sieve impact What depends on the lines your diff changed, and whether a test reaches them.
sieve symbols <file> The outline of one file, with line ranges.
sieve why <symbol> The decision records, tests and history that link to a symbol.
sieve map An overview of the repo.
sieve rename <old> <new> Renames a TypeScript or JavaScript top-level function across files. Dry run by default.
sieve check Checks the index.

The old names ask, grep, blast and skeleton still work. The command reference lists every flag. See also rename.

Fresh and fast

The MCP server keeps the index in memory and watches your files, so an answer never comes from an old index.

On macOS (vite clone, about 1,600 files, M1 Pro, median of 15 runs), a callers call takes about 1 ms when no file changed, and about 77 ms right after a one-file edit. query is slower and not tuned yet. Linux is not measured yet; for about 2 seconds after a new folder appears, Linux uses a slower full check. Set SIEVE_NO_WARM=1 to turn the in-memory index off.

Languages

Sieve parses TypeScript, JavaScript, Python, Go, Java, Kotlin, Swift, PHP and R natively. It parses 14 more with a generic parser. It reads script blocks in Vue, Svelte and Astro files. Exact cross-file links cover TypeScript, JavaScript, Rust, Python, Go, Java, C# and Kotlin, each with its own scope. Other links stay inferred: treat them as hints. See docs/guide/languages.md.

Limits

  • Sieve has not measured token savings in a real agent session.
  • sieve rename handles top-level functions in TypeScript and JavaScript only. It refuses many renames.
  • There is no Windows build.

The FAQ lists more limits.

Docs

Install · Quickstart · Concepts · Commands · Claude Code · MCP · Configuration · Privacy · Benchmarks · Troubleshooting · FAQ · Decision records

Also: CHANGELOG · CONTRIBUTING · SECURITY

License

Sieve uses the MIT license or the Apache-2.0 license, at your choice. See LICENSE-MIT and LICENSE-APACHE. Third-party notices are in THIRD_PARTY.md.

Yorumlar (0)

Sonuc bulunamadi