Cymbal is live · free · last verified 22 Oct 2026 · viability monitor
Cymbal
Cymbal indexes your repo with tree-sitter and answers structural code-navigation questions from a local SQLite index.
The detail that matters most here isn't the index — it's the output contract. body_hash per symbol plus documented exit codes (0 for empty-but-valid, 1 for unknown names as of 0.17.0) is exactly what an agent needs to trust a tool's answers, and most CLI competitors leave that unspecified. If you're a terminal-first developer or you're wiring a coding agent that still greps its way through repos, spend an afternoon on this.
Verdict generatedVerified 8d ago · liveness 69/100 · cite: rightaichoice.com/tools/cymbal
- AI coding agents that need structural repo queries in one call with --json and reliable exit codes
- Developers replacing grep and jump-to-definition chains with symbol-aware search and impact analysis
- Engineers assessing blast radius before changing a shared function with `cymbal impact -D`
- Agent builders who cache file:Name plus body_hash to detect when a symbol's source changed
- Teams that want a graphical code navigation or automated refactoring UI
- Anyone who needs a shared, cloud-hosted index across a distributed team
- Workflows centered on IDE-level debugging rather than terminal queries
We scan live Reddit threads, YouTube comments, X posts, G2 reviews and other communities — and hand you an honest verdict in under a minute.
- Honest verdict, not marketing
- Real pros & cons from real users
- Attributed quotes with receipts
3 free scans · no card needed
Skip Cymbal if you want a graphical code browser, a shared team-wide index, or automated refactoring — it is a local per-repo CLI that answers structural questions from an SQLite index and leaves editing to you.
The scrape reached cymbal.sh and cymbal.sh/changelog but not a pricing page, so RAC cannot state how Cymbal is sold or what any tier costs. The seed data records the current pricing type as free, with a single $0 plan covering the full 19-command CLI, and the changelog shows no price change across 0.16.2 and 0.17.0.
In short
Cymbal — Cymbal indexes your repo with tree-sitter and answers structural code-navigation questions from a local SQLite index. Best for AI coding agents that need structural repo queries in one call with --json and reliable exit codes, Developers replacing grep and jump-to-definition chains with symbol-aware search and impact analysis, Engineers assessing blast radius before changing a shared function with `cymbal impact -D`. Free to use.
What is Cymbal?
Cymbal — Cymbal indexes your repo with tree-sitter and answers structural code-navigation questions from a local SQLite index. Best for AI coding agents that need structural repo queries in one call with --json and reliable exit codes, Developers replacing grep and jump-to-definition chains with symbol-aware search and impact analysis, Engineers assessing blast radius before changing a shared function with `cymbal impact -D`. Free to use.
Cymbal is a code navigation CLI for two kinds of users: developers who are tired of chaining grep, find and jump-to-definition, and coding agents that burn a dozen file reads answering one structural question. You index a repo once with tree-sitter parsers into a per-repo SQLite database — the vendor's own example run reports 105 files and 1921 symbols — and every query after that reads the database instead of the filesystem. No daemon, no server, no model in the loop. The nineteen-command set is organized around which direction you walk the call graph. `cymbal investigate` adapts to the symbol's kind (functions return source, callers and shallow impact; types return source, members and references), which makes it the safe default when you don't know which command you want. `cymbal trace` walks downward through callees, `cymbal impact -D/--depth` walks upward through callers with depth capped at 5, `cymbal context` bundles source, referenced types, callers and imports into one read, and `cymbal changed` maps a git diff to affected symbols. For agent wiring, `--json` is the real product. Symbols in search, show, outline, context, investigate and structure carry a 16-character `body_hash` of their own source lines, so an agent can store file:Name plus hash and check staleness in one call. Version 0.17.0 tightened the exit-code contract: empty-but-valid results exit 0 with a zero count, unknown names exit 1 with 'symbol not found'. Output isn't limited to text. `trace`, `impact`, `importers` and `impls` accept `--graph`, defaulting to Mermaid on a TTY and JSON when piped, with `--graph-format mermaid|dot|json` and `--graph-limit` to cap dense graphs. Install via homebrew-core, AUR, PowerShell, Go with CGO, or Docker. Against GUI code-intelligence suites it trades visual polish for speed and composability; against ripgrep in a prompt it trades raw text matching for symbol-aware answers.
Key features
- Index a repository with tree-sitter parsers into a per-repo SQLite database
- Kind-adaptive `cymbal investigate` returns source, callers and impact for functions, members and references for types
- `cymbal trace` walks downward through callees, with --include-unresolved to keep external calls
- `cymbal impact -D/--depth` analyzes transitive callers, depth capped at 5
- `cymbal context` bundles source, referenced types, callers and imports into one read
- `cymbal search` ranks exact above prefix above fuzzy, with -k/--kind and -l/--lang filters
- Full-text grep across file contents via `cymbal search --text` (SQLite FTS5)
- `cymbal changed` maps a git diff to affected symbols and their impact
- `cymbal show` reads source by symbol name, file hint, package hint or line range
- `cymbal structure` and `cymbal outline` summarize entry points and symbols
- Render call graphs as Mermaid, DOT or JSON with --graph-format and --graph-limit
- Per-symbol 16-character body_hash in search, show, outline, context, investigate and structure JSON
- Structured --json output as of 0.17.0: empty-but-valid results exit 0, unknown names exit 1
- Automatic index refresh on queries, plus -f for a forced full re-index
- `cymbal hook install claude-code` wires the CLI into a Claude Code workflow
Behind the verdict
Where Cymbal earns its place: you're inside a repo you don't know, and the question is structural rather than textual. "What breaks if I change this?" is one `cymbal impact handleRegister -D 3`. "I've never seen this codebase, where do I start?" is `cymbal structure`. Those two beats are where grep wastes the most time, and where the index pays for itself immediately. We'd reach for it hardest in agent pipelines. A coding agent that reads whole files to answer "who calls this function" is spending tokens on the wrong thing. Handing it `cymbal search` for lookup, `cymbal show <sym>` instead of a full file read, and `cymbal impact <sym>` before any shared change is a concrete prompt rewrite, not a vague suggestion. The `cymbal hook install claude-code` command does that wiring for you. Pass on it if your work is graphical. There's no editor UI, no refactoring engine, no debugger — this answers questions, it doesn't rewrite your code. Teams expecting a shared cloud index across a distributed team won't find one either; the database is per repo and local, and .cymbal/ belongs in your .gitignore. Watch the operability details. Go installs need CGO with the FTS5 flag or text search silently loses its engine. Indexing a subdirectory updates that subtree in place rather than reindexing the whole repo, which is convenient but easy to misread as a full refresh. And 0.17.0 changed exit codes — if you scripted against the old behavior, your checks need updating. The closest alternative isn't another CLI, it's ripgrep plus a language server: rg is faster to start and needs no index, while LSP gives you jump-to-definition in an editor. Cymbal sits between them — symbol-aware like LSP, scriptable and JSON-native like rg. Weigh it against those two before adding a third tool to
Limitations
- Cymbal is a local CLI: indexing builds a per-repo SQLite index with tree-sitter parsers, and there is no daemon, no server, and no model in the loop — every answer comes from the index rather than live filesystem reads.
- Structural answers are bounded by the tree-sitter grammars available, so language coverage is whatever those parsers support.
- Installation routes vary and each carries setup: Homebrew on macOS and Linux, Arch AUR, a Windows PowerShell script, Go with mandatory CGO and the non-optional `-DSQLITE_ENABLE_FTS5` flag, a ghcr.io Docker image, or prebuilt release binaries.
- The index lives in the repo (`.cymbal/index.db` under the Docker flow), so add `.cymbal/` to `.gitignore` and expect a one-time full reparse with a stderr note on the first refresh after some upgrades. `impact` depth is capped at 5. v0.17.0 changed exit semantics: empty results exit 0 and unknown names exit 1, so older scripts that read a failing `impact` as 'no callers' need to check the count instead.
- It is aimed at developers and coding agents rather than non-technical users.
as of 2026-10-12
Researching Cymbal? Get your full AI stack in 60 seconds.
Free, no signup — tell us your goal and get tools matched to your budget & existing stack.
Is Cymbal still active?
Cymbal is live · free · last verified 22 Oct 2026 · viability monitor.
Viability score
How well maintained and how widely used is Cymbal? Built from what the vendor actually publishes (docs, changelog, tutorials, integrations, pricing), whether the site is live, and how much real users discuss it. How we calculate this
Last calculated: October 2026
How we score →What's new in Cymbal
Checked 10 days agoAcross the latest 1 update: 1 changelog entry.
What do users say about Cymbal?
What people actually say about Cymbal — is it worth it?
Our community sentiment research written Jul 3, 2026 is more than 90 days old, so it is being re-reviewed against current data and is not shown.
How we verified this
Every listed fact about Cymbal — pricing, features, links, status — is re-read from the vendor's own pages by our verification pipeline and each change is logged with a date; the last pass ran on 22 Oct 2026. Pages mix model-assisted synthesis with human review; see how we verify.
Verification history
We have re-verified Cymbal 10 times since . Each pass re-reads the vendor's own pages and re-checks every listed field against that evidence; passes where nothing had changed are marked as such.
- — changed pricing tiers, description, our verdict, features
- — changed pricing tiers, who should skip it, description, summary, our verdict, features, who it suits
- — changed pricing page
- — changed our verdict, use cases, who should skip it, switching out, pricing tiers, features, setup time, pricing fit, hidden costs, description, who it suits, summary, limitations, switching in, SSL certificate
- — changed pricing page, limitations
- — changed pricing tiers, who it suits, description, our verdict, features, summary
Showing the 6 most recent of 10 verification passes.
Free to cite with attribution — this page re-verifies continuously.
How much does Cymbal cost in 2026?
Cymbal: Free to use. Pricing last verified 22 Oct 2026.
Plans compared
Every published Cymbal tier, its price as the vendor publishes it, who it fits, and what it adds over the tier below. The 12-month cost projection follows.
| Plan | Price | Billing | Who it's for |
|---|---|---|---|
| Free | Free | — | Solo developers and agent-tooling builders who want the full CLI without a license key or account, on their own machine.Adds: Starting tier: the entire 19-command CLI at $0, with the local SQLite index, JSON output and exit codes, and every install route included. |
12-month cost
Project the real annual outlay, including the implied monthly cost when only an annual tier is published.
Vendor list price only. Add-on usage, seat overages, and contract minimums are surfaced under Hidden costs & gotchas.
Where the pricing makes sense
The company stage and team size where Cymbal's pricing actually pencils out — and where peers do it cheaper.
The scrape reached cymbal.sh and cymbal.sh/changelog but not a pricing page, so RAC cannot state how Cymbal is sold or what any tier costs. The seed data records the current pricing type as free, with a single $0 plan covering the full 19-command CLI, and the changelog shows no price change across 0.16.2 and 0.17.0.
Has Cymbal's pricing changed?
No plan price for Cymbal has moved since we began logging in Aug 2026; the pricing page is re-read on every verification pass.
Who should pick Cymbal?
Pick Cymbal if you are AI coding agents that need structural repo queries in one call with --json and reliable exit codes, Developers replacing grep and jump-to-definition chains with symbol-aware search and impact analysis, Engineers assessing blast radius before changing a shared function with `cymbal impact -D`, Agent builders who cache file:Name plus body_hash to detect when a symbol's source changed.
Look elsewhere if you are Teams that want a graphical code navigation or automated refactoring UI, Anyone who needs a shared, cloud-hosted index across a distributed team, Workflows centered on IDE-level debugging rather than terminal queries, Teams that can't add a CLI install to their environment or maintain per-repo indexes.
Skip it if Skip Cymbal if you want a graphical code browser, a shared team-wide index, or automated refactoring — it is a local per-repo CLI that answers structural questions from an SQLite index and leaves editing to you.
GeneratedReal-world workflow fit
Concrete scenarios for the personas Cymbal actually fits — and what changes day-one when you adopt it.
Runs `cymbal index .` at the repo root, then `cymbal structure` to see entry points, then `cymbal investigate OpenStore` on the symbol everyone keeps mentioning.
Outcome: One indexed SQLite database answers the initial orientation questions; `investigate` returns source plus callers plus shallow impact without them having to know which graph command to pick.
After `cymbal hook install claude-code`, the agent runs `cymbal context handleRegister` and `cymbal impact handleRegister -D 3 --json` before editing, then checks a stored `body_hash` to confirm the symbol it planned against is unchanged.
Outcome: The agent makes one indexed call per question instead of a dozen file reads, and can detect staleness before writing a diff.
Runs `cymbal changed` on the branch to map the git diff to affected symbols, then `cymbal impact --graph` on the riskiest one to see the caller map as Mermaid.
Outcome: The review comment names the affected symbols and their callers rather than describing diff hunks.
Use cases
- Ask 'who calls this function' and get call sites instead of grep text matches.
- Assess blast radius with `cymbal impact -D 3` before changing a shared function.
- Bundle source, referenced types, callers and imports into one `cymbal context` read for an agent about to edit code.
- Onboard onto an unfamiliar repo with `cymbal structure` to find entry points, then `investigate` per symbol.
- Turn a git diff into affected symbols and their impact with `cymbal changed`.
- Search symbols across a polyglot repo without leaving the terminal or switching tools.
- Give a coding agent one `--json` call instead of a dozen file reads plus a ripgrep in the prompt.
- Store `file:Name` with its `body_hash` and check in one call whether a symbol changed.
Setup time & first value
How long it actually takes to get something useful out of Cymbal — broken out by persona, not the marketing-page minute.
For a developer already on Homebrew, `brew install cymbal` from homebrew-core needs no tap, so install is minutes and then `cymbal index .` runs immediately — the vendor's own example indexed 105 files and 1921 symbols. An agent path is faster if you skip the shell: hand it the vendor's four-line prompt (install, index, structure, then `cymbal hook install claude-code`). Go installs need CGO plus
Switching to or from Cymbal
How to bring data in from common predecessors and how to get it back out — written for the switcher, not the buyer.
- →From ripgrep-in-a-prompt agent loops: keep grep-shaped habits via `cymbal search --text`, then switch symbol lookups to `cymbal search` and switch the agent to `--json` output with documented exit codes.
- ↗To plain grep and jump-to-definition: nothing is written into your source — delete `.cymbal/index.db` (and the `.cymbal/` entry in `.gitignore`) and you are back to filesystem search.
Integrations
Resources & guides
Tutorials & Learning
YouTube returned 6 videos for “Cymbal”, and we withheld 6: 6 could not be judged, because “Cymbal” is a single word that other videos use for other things. We are showing none, because we could not prove any of them are about Cymbal.
Official links
What are the best Cymbal alternatives?
The closest alternatives to Cymbal we list are GitHub Copilot, Sourcegraph Cody and Sourcebot. Ranked by direct product-type match, not category overlap.
| Alternative | Pricing | Starts at | Last verified |
|---|---|---|---|
| GitHub Copilot | Freemium | Pricing not published | — |
| Sourcegraph Cody | Paid | Pricing not published | — |
| Sourcebot | Freemium | Pricing not published | — |
Alternatives to Cymbal
View allGitHub Copilot
GitHub's AI coding agent for inline completion, delegated pull requests, code review, and recurring agent tasks across your repos.
Sourcegraph Cody
Sourcegraph Cody: an AI coding assistant that grounds chat and agentic code changes in context from your whole multi-repo codebase.
Tools that pair well with Cymbal
Common stack mates teams adopt alongside Cymbal, with the specific reason each pairing earns its keep.
GitHub Copilot
GitHub's AI coding agent for inline completion, delegated pull requests, code review, and recurring agent tasks across your repos.
Sourcegraph Cody
Sourcegraph Cody: an AI coding assistant that grounds chat and agentic code changes in context from your whole multi-repo codebase.
Sourcebot
Self-hosted code search and AI code Q&A that gives coding agents context across every repo you own
Cymbal vs its closest rival
Cymbal's closest head-to-head is with Spider Cloud — Spider Cloud and Cymbal serve complementary AI agent needs: Spider Cloud extracts live web data into LLM-ready formats, while Cymbal indexes local codebases for agentic code navigation. Choose Spider Cloud if your agent needs up-to-date web context; choose Cymbal if your agent needs to understand and navigate a codebase. Both are well-suited for AI agent developers, but they don't overlap beyond that. Verdict generated
Head-to-head comparisons
Cymbal vs Spider Cloud
Spider Cloud and Cymbal serve complementary AI agent needs: Spider Cloud extracts live web data into LLM-ready formats, while Cymbal indexes local codebases for agentic code navigation. Choose Spider Cloud if your agent needs up-to-date web context; choose Cymbal if your agent needs to understand and navigate a codebase. Both are well-suited for AI agent developers, but they don't overlap beyond that.
GeneratedCymbal vs Voyage Ai
Choose Voyage AI if you need high-accuracy domain-specific embeddings and rerankers for enterprise RAG on finance/legal documents. Choose Cymbal if you are an AI agent developer needing instant, free, local code comprehension across many languages. They are complementary tools — you could use both.
GeneratedCymbal vs Temporal Ai
Temporal AI and Cymbal serve completely different needs: Temporal is a durable execution platform for building reliable, long-running workflows and AI agents with automatic recovery, while Cymbal is a CLI tool for fast code indexing optimized for AI agents' code comprehension. If you need resilience and orchestration, pick Temporal; if you need instant code navigation for agents, pick Cymbal. Both are free to start, but Temporal has a cloud option for scale.
GeneratedFrequently asked questions
Used Cymbal? Help shape our editorial sentiment research.