sqry — semantic code search engine

$ sqry.dev --view <TAB>
sqry — semantic code search engine
Paste this into your AI agent (Claude Code, Codex, Gemini, Cursor, Windsurf):
Read https://sqry.dev/install.md and follow the steps to install sqry and configure yourself as an MCP client.
or install manually
curl -fsSL https://raw.githubusercontent.com/verivus-oss/sqry/main/scripts/install.sh | bash -s -- --component all
37 languages · 38 MCP tools · local-only · MIT
$ sqry index .
  ✓ 384,291 nodes · 1,302,847 edges · 2.4s
$ sqry query "callers:authenticate"
  src/auth/middleware.rs:42    validate_token
  src/api/routes.rs:118       check_session
  src/tests/auth_test.rs:67   test_login_flow
$ sqry graph trace-path main handle_request
  main → router::dispatch → api::handle_request
$ sqry unused --lang rust
  src/legacy/cache.rs:88    evict_stale   (0 callers)
  src/util/format.rs:210   pretty_bytes  (0 callers)
$ rg "authenticate"
src/auth/mod.rs:
  pub fn authenticate(credentials: &Credentials) ->
src/auth/middleware.rs:
  // calls authenticate
src/tests/auth_test.rs:
  authenticate(&mock_user)
src/api/routes.rs:
  let user = authenticate(req);
src/docs/README.md:
  Call `authenticate()` to...
src/api/openapi.yaml:
  description: "authenticate the user"
6 text matches. Which ones actually call it?
$ sqry query "callers:authenticate"
src/auth/middleware.rs:42   validate_token
src/api/routes.rs:118      check_session
src/tests/auth_test.rs:67  test_login_flow
3 callers. 12ms.

sqry parses source code into an AST, builds a graph of symbols and relationships, then answers structural queries exactly.

callers:authenticate → who calls this function
callees:main → what does main() call
impl:Serialize → every Serialize implementation
sqry graph trace-path → execution path between two symbols
sqry cycles → circular dependency detection
sqry unused → dead code

These are questions ripgrep cannot answer.

MetricValueNotes
Graph query (warm cache)4 msvs 452 ms cold parse
Graph query (cold)12-21 msvs 1,300-2,400 ms embedding search
JS indexing throughput760K LOC/sparallel graph indexing
C++ indexing throughput1.1M LOC/s
Linux kernel index2m20s12.3M nodes, 20.4M edges
Kernel C indirect-call pass29.5ssqry 27.0.5, Linux 1e9cdc2
Kernel caller query (CLI)0.8-1.5sprintk, 100 results, graph execution
Kernel caller query (MCP warm)6 msprintk, daemon-resident graph
AI assistants sqry mcp setup 38 tools — Claude, Codex, Gemini, Cursor, Windsurf
Editors sqry lsp --stdio VSCode, Neovim, Helix — hover, definition, call hierarchy
CI verivus-oss/sqry@v1 Dead code, cycles, duplicates on every PR

Semantic code search, answered

What is sqry?
sqry is a semantic code search engine. It parses source into an abstract syntax tree (AST), builds a graph of symbols and their relationships, and answers structural queries exactly: who calls this function, every implementation of this trait, and other questions text search cannot answer reliably. It runs fully locally, supports 37 languages, and is MIT-licensed.
How is semantic code search different from grep or ripgrep?
grep and ripgrep match strings. They return every line where a name appears, including comments, docs, and the definition, with no model of what calls what. sqry resolves the AST and call graph, so callers:authenticate returns only the functions that call authenticate(), usually in a few milliseconds.
How is sqry different from embedding or vector code search?
Embedding search converts code to vectors and returns approximate matches, often 1,400 ms or more per query, usually via a cloud API. sqry queries a precomputed AST graph directly: exact results in roughly 12 ms, fully local, no vectors, no telemetry.
Does sqry work with AI agents and MCP?
Yes. sqry ships a Model Context Protocol (MCP) server with 38 tools, so Claude, Codex, Gemini, Cursor, and Windsurf can query your codebase structure and call graph directly. It also ships a Language Server Protocol (LSP) server for VS Code, Neovim, and Helix.
Which programming languages does sqry support?
37 language plugins. 28 have full call-graph and relation support, including Rust, C, C++, Go, Java, Python, TypeScript, JavaScript, C#, Kotlin, Swift, Scala, Ruby, and PHP. Nine more provide symbol and import extraction.
Is sqry free, local, and private?
sqry is open source under the MIT license and runs entirely on your machine. No source code leaves your machine, and there is no telemetry.
macOS / Linux
curl -fsSL https://raw.githubusercontent.com/verivus-oss/sqry/main/scripts/install.sh | bash -s -- --component all
Windows
irm https://raw.githubusercontent.com/verivus-oss/sqry/main/scripts/install.ps1 | iex
crates.io
cargo install sqry-cli
CC++RustShellZigJavaScriptTypeScriptDartKotlinSwiftScalaC#GoJavaPythonRubyPHPLuaRGroovyElixirSQLSvelteVueHTMLCSSHaskellPerl TerraformPuppetPulumiApexABAPPL/SQLServiceNow XanaduServiceNow XMLJSON
Sigstore DSSE attestation · checksums · release manifest · audited deps · Details →