sqry CLI - by Verivus
Semantic code search tool that understands code structure through AST analysis.
Overview
sqry is a command-line tool for searching code by what it means, not just what it says. It parses source code into an AST using tree-sitter, builds a graph of symbols and relationships, and lets you query that graph with structured predicates.
35 languages supported. See QUICKSTART.md for the full list.
Installation
# Clone and install
# Verify
Requires Rust 1.90+ (Edition 2024). The full build (including 35 tree-sitter grammars) needs ~20 GB disk space.
Quick Start
# Build the index (one-time per project)
# Search for symbols
# Structured query with predicates
# Natural language query
# Find callers of a function
# Find circular dependencies
Commands
Search & Query
| Command | Description |
|---|---|
sqry <pattern> |
Pattern search (regex by default, --exact for literal, --fuzzy for fuzzy) |
sqry search <pattern> |
Explicit search command (same as above) |
sqry query <query> |
Structured AST-aware query with predicates |
sqry ask <question> |
Natural language query (translates to sqry query syntax) |
sqry hier <query> |
Hierarchical search with file/container grouping (RAG-optimized) |
Index Management
| Command | Description |
|---|---|
sqry index [path] |
Build symbol index and graph analyses (stored under .sqry/) |
sqry update [path] |
Incremental index update (changed files only) |
sqry watch [path] |
File watcher with auto-update |
sqry analyze [path] |
Rebuild graph analyses with explicit tuning controls |
sqry repair [path] |
Repair corrupted index |
Graph Analysis
| Command | Description |
|---|---|
sqry graph direct-callers <symbol> |
Find direct callers |
sqry graph direct-callees <symbol> |
Find direct callees |
sqry graph trace-path <from> <to> |
Find call paths between symbols |
sqry graph deps <symbol> |
Transitive dependency tree |
sqry graph cross-language |
List cross-language relationships |
sqry graph stats |
Graph statistics |
sqry graph complexity |
Complexity metrics |
sqry graph cycles |
Cycle detection (alias for sqry cycles) |
Standalone Analysis
| Command | Description |
|---|---|
sqry duplicates |
Find duplicate functions/signatures/structs |
sqry cycles |
Detect circular dependencies (calls, imports, modules) |
sqry unused |
Find unreachable or unused symbols |
sqry impact <symbol> |
Reverse dependency analysis |
sqry diff <base> <target> |
Semantic diff between git refs |
sqry explain <file> <symbol> |
Explain symbol with context and relations |
sqry similar <file> <symbol> |
Find similar symbols |
sqry subgraph <symbol> |
Extract focused subgraph |
Visualization & Export
| Command | Description |
|---|---|
sqry visualize <query> |
Generate diagrams (Mermaid, Graphviz, D2) |
sqry export |
Export graph (DOT, D2, Mermaid, JSON) |
Session & Workflow
| Command | Description |
|---|---|
sqry shell [path] |
Interactive REPL with warm cache |
sqry batch [path] |
Batch query execution from file |
sqry workspace |
Multi-repo workspace management |
sqry alias |
Query alias management |
sqry history |
Query history |
sqry config |
Configuration management |
sqry cache |
Cache management |
sqry insights |
Local usage insights |
sqry troubleshoot |
Diagnostic bundle generation |
Server
| Command | Description |
|---|---|
sqry lsp |
Start LSP server (--stdio for editors) |
sqry mcp setup |
Configure MCP server for AI assistants |
sqry completions <shell> |
Generate shell completions (bash, zsh, fish, powershell) |
Query Syntax
Structured queries use predicates with boolean operators:
# By symbol kind
# By name (regex)
# By language
# By parent
# By visibility
# By async
# Combined
# Explain without executing
Output Formats
Filtering
Exit Codes
0- Success (matches found)1- Error or no matches found
Development
Related Documentation
- QUICKSTART.md - Getting started guide
- Usage Examples - Detailed examples
- Feature List - Complete feature reference
- Troubleshooting - Common issues
License
MIT - See LICENSE-MIT
Version: 5.0.1