```console
$ {{bin}} sqry --help
sqry [VERSION]
sqry is a semantic code search tool that understands code structure through AST analysis.
Find functions, classes, and symbols with precision using AST-aware queries.
Examples:
sqry main # Search for 'main' in current directory
sqry test src/ # Search for 'test' in src/
sqry --kind function # Find all functions
sqry --json main # Output as JSON
Usage: sqry [OPTIONS] [PATTERN] [PATH] [COMMAND]
Commands:
visualize Visualize code relationships as diagrams
search Search for symbols by pattern (simple pattern matching)
query Execute AST-aware query (structured queries with boolean logic)
graph Graph-based queries and analysis
shell Start an interactive shell that keeps the session cache warm
batch Execute multiple queries from a batch file using a warm session
index Build symbol index for fast queries
lsp Start the sqry Language Server Protocol endpoint
update Update existing symbol index
watch Watch directory and auto-update index on file changes
cache Manage AST cache
completions Generate shell completions
workspace Manage multi-repository workspaces
help Print this message or the help of the given subcommand(s)
Arguments:
[PATTERN]
Search pattern (shorthand for 'search' command)
Treated as a regex by default. Invalid regex returns an error. Use `--exact` for byte-for-byte literal matching against the interned symbol name (same contract as the planner's `name:<literal>` predicate; glob meta is matched as literal characters).
[PATH]
Search path (defaults to current directory)
[default: .]
Options:
-k, --kind <KIND>
Filter by symbol type (function, class, struct, etc.)
[possible values: function, class, method, struct, enum, interface, trait, variable, constant, type, module, namespace]
-l, --lang <LANG>
Filter by programming language
-i, --ignore-case
Case-insensitive search
-x, --exact
Exact (literal-only) match against interned symbol name (disables regex).
Applies to search mode (top-level shorthand and `sqry search`). Contract-bound to the structural query planner's `name:<literal>` predicate (B1_ALIGN): `sqry --exact NeedTags .` and `sqry query 'name:NeedTags' .` return identical sets — both look up the pattern against `entry.name` / `entry.qualified_name` byte-for-byte (case-sensitive) and exclude synthetic placeholder nodes. `--exact` does not accept glob meta (`*`, `?`, `[`); they are matched as literal characters. For glob matching against names use `sqry query 'name:parse_*'` instead. For regex matching, omit `--exact` and `sqry search` will treat the pattern as a regex over interned strings.
-c, --count
Show count only (number of matches)
--max-depth <MAX_DEPTH>
Maximum directory depth to search
[default: 32]
--hidden
Include hidden files and directories
--follow
Follow symlinks
--limit <LIMIT>
Maximum number of results to return
Limits the output to prevent overwhelming LLM context windows. Defaults: search=100, query=1000, fuzzy=50
--list-languages
List enabled languages and exit
-t, --text
Force text search mode (skip semantic, use ripgrep)
-s, --semantic
Force semantic search mode (skip text fallback)
--no-fallback
Disable automatic fallback to text search
--context <CONTEXT>
Number of context lines for text search results
[default: 2]
--max-text-results <MAX_TEXT_RESULTS>
Maximum text search results
[default: 1000]
Common Options:
-j, --json
Output format as JSON
--no-color
Disable colored output
-h, --help
Print help information and exit
-V, --version
Print version information and exit
Search Modes > Fuzzy:
--fuzzy
Enable fuzzy search (requires index)
--fuzzy-algorithm <ALGORITHM>
Fuzzy matching algorithm (jaro-winkler or levenshtein)
[default: jaro-winkler]
--fuzzy-threshold <SCORE>
Minimum similarity score for fuzzy matches (0.0-1.0)
[default: 0.6]
--fuzzy-max-candidates <COUNT>
Maximum number of fuzzy candidates to consider
[default: 1000]
--fuzzy-stream
Enable streaming mode for fuzzy search (shows results incrementally)
--json-stream
Enable JSON streaming mode for fuzzy search
Emits results as JSON-lines (newline-delimited JSON). Each line is a StreamEvent with either a partial result or final summary. Requires --fuzzy (fuzzy search) and is inherently JSON output.
```