When text search falls short and you need to understand code structure, sqry indexes your codebase into an AST-backed symbol graph and exposes 33 MCP tools for semantic queries. Ask for all callers of a function, trace execution paths between symbols, find circular dependencies, or query by visibility and async attributes across 35 languages including Rust, TypeScript, Python, and Go. The tools cover relation queries (callers, callees, imports), graph analysis (trace paths, detect cycles, unused code), and cross-language detection like FFI linking and HTTP route matching. It runs locally via stdio transport, keeps graphs hot through an optional daemon, and complements rather than replaces your existing grep and AST pattern tools by focusing on what code means instead of what it says.
sqry is a local semantic code search tool. It parses source code into AST-backed symbol and relationship graphs so you can ask code questions that text search cannot answer reliably.
Website: https://sqry.dev
returns:<TypeName> and resolution-aware resolved_via:<kind> predicates for supported graph paths..sqry-workspace registries and VS Code .code-workspace sqry.workspace blocks. sqryd for editor, MCP, and repeated-agent workflows.sqry-mcp currently exposes 36 tools; daemon-hosted MCP exposes a 15-tool subset. Use tools/list, sqry-mcp --list-tools, or sqry://meta/manifest as the authoritative catalog.Removed in 21.0.0: the experimental natural-language surface (
sqry askCLI command,sqry_askMCP tool,sqry/askLSP request) was removed. Use the structured query and graph commands shown below; see Removed features for migration.
Use sqry when you need structural answers:
sqry index .
sqry query "kind:function AND visibility:public AND lang:rust"
sqry query "returns:Result"
sqry graph direct-callers authenticate
sqry graph trace-path main handle_request
sqry visualize "callers:authenticate" --format mermaid
Use ripgrep for simple text search, ast-grep for syntax rewrite patterns, language linters for policy enforcement, and an IDE language server for full editor semantics. sqry stays focused on local semantic code search.
curl -fsSL https://raw.githubusercontent.com/verivus-oss/sqry/main/scripts/install.sh | bash -s -- --component all
The shell installer downloads release assets, verifies SHA256 checksums by default, and installs:
sqrysqry-mcpsqry-lspsqrydSupported release platforms are Linux x86_64/arm64 and macOS x86_64/arm64.
Useful options:
curl -fsSL https://raw.githubusercontent.com/verivus-oss/sqry/main/scripts/install.sh | \
bash -s -- --component all --version vX.Y.Z --verify-signatures
--verify-signatures requires gh or Cosign. It verifies the current release-artifacts.attestation.json GitHub artifact attestation from release-distribute.yml; older releases can still fall back to legacy per-asset Cosign bundles. SHA256 verification remains the default integrity check.
Invoke-WebRequest https://raw.githubusercontent.com/verivus-oss/sqry/main/scripts/install.ps1 -OutFile install.ps1
Get-Content .\install.ps1
.\install.ps1 -Component all -VerifySignatures
The PowerShell installer downloads the Windows x86_64 release ZIP, verifies checksums by default, and installs sqry.exe, sqry-mcp.exe, sqry-lsp.exe, and sqryd.exe into the user install directory.
Use a pinned release when reproducibility matters:
.\install.ps1 -Component all -Version vX.Y.Z -VerifySignatures
Homebrew is the package-manager surface currently backed by the public release manifest.
brew tap verivus-oss/sqry
brew install sqry
The formula installs sqry, sqry-mcp, sqry-lsp, and sqryd for Linux x86_64/arm64 and macOS x86_64/arm64.
Scoop, Winget, AUR, Nix, and Snap are not advertised as public release assets until their release-control surfaces are complete and validated.
git clone https://github.com/verivus-oss/sqry.git
cd sqry
cargo install --path sqry-cli
cargo install --path sqry-mcp
cargo install --path sqry-lsp
cargo install --path sqry-daemon
Requirements:
1.94+ with Edition 2024.1.94.1 in rust-toolchain.toml.# Build the default fast-path index.
sqry index .
# Check status without rebuilding.
sqry index --status --json .
# Force a rebuild after upgrading across graph-format or semantics changes.
sqry index --force .
Index artifacts live under .sqry/. Add .sqry/ and legacy .sqry-index artifacts to your project ignore rules unless you intentionally share them.
sqry records the plugin set that built an index so later graph-loading commands reuse the same semantics.
sqry index . # default fast path
sqry index --include-high-cost . # all compiled non-default plugins
sqry index --exclude-high-cost . # force the fast path
sqry index --enable-plugin json . # opt into one plugin
sqry index --disable-plugin json . # opt out of one plugin
The registry has fast plugins, high-wall-clock plugins, and optional specialty plugins. json is high-wall-clock. Optional specialty plugins include apex, abap, servicenow-xanadu-js, servicenow-xml, terraform, puppet, and pulumi when compiled with the matching Cargo features or specialty-plugins.
See Indexing for artifact cleanup, plugin tiers, and high-cost behavior.
# Symbol and attribute predicates.
sqry query "kind:function AND name:parse_*"
sqry query "kind:struct AND lang:rust"
sqry query "kind:function AND returns:Result"
# Relation predicates.
sqry query "callers:authenticate"
sqry query "callees:handle_request"
sqry query "imports:serde"
# Planner-backed query.
sqry plan-query "kind:function callers:main"
# Resolution-aware call filtering where populated by graph metadata.
sqry plan-query "kind:function callers:my_read resolved_via:binding_plane"
returns:<TypeName> uses graph TypeOf{Return} edges. resolved_via:<kind> accepts direct, type_match, binding_plane, virtual_dispatch, interface_dispatch, duck_typed, structural, and promiscuous_elided. framework filtering is exposed through MCP parameters today; do not rely on framework:<id> text grammar unless the current parser documentation and tests in your installed version support it.
See Advanced Analysis for graph predicates, snapshot wording, impact analysis, semantic diff, and visualization.
Use a workspace when one logical project spans several repositories or folders.
sqry workspace init .
sqry workspace scan .
sqry workspace status . --json
sqry workspace clean . --dry-run
Workspace configuration can come from a .sqry-workspace registry or a VS Code .code-workspace file with a sqry.workspace block. See Workspaces.
sqryd keeps graph state warm for repeated CLI, LSP, MCP, and editor workflows.
sqry daemon start
sqry daemon load .
sqry daemon status --json
sqry daemon rebuild . --force
sqry daemon logs --follow
See Daemon Mode.
Configure MCP clients with:
sqry mcp setup --tool claude
sqry mcp setup --tool codex
sqry mcp setup --tool gemini
Standalone sqry-mcp is the full local tool surface. sqry-mcp --daemon attaches to sqryd and exposes the daemon-hosted subset. workspace_status.source_root_id is an opaque display/correlation token, not a path. See MCP Guide and the component docs in sqry-mcp/README.md.
For the VS Code extension, see sqry-vscode/README.md and sqry-vscode/USER_GUIDE.md.
sqry is an MIT-licensed open-source project focused on one product goal: local semantic code search. It is not a hosted search platform, linter, IDE replacement, or general metrics platform.
com.mcparmory/google-search
io.github.pipeworx-io/brave-search
marcopesani/mcp-server-serper
brave/brave-search-mcp-server
com.mcparmory/google-search-console
acamolese/google-search-console-mcp