1broseidon/cymbal

Language-agnostic code navigation CLI powered by tree-sitter

What it solves

Cymbal is a fast, language-agnostic code navigator that solves the problem of tedious manual codebase exploration. Instead of bouncing between grep, find, and manual file reads, it provides a structured way to perform symbol lookups, cross-reference analysis, and impact assessments in milliseconds.

How it works

Cymbal uses tree-sitter to parse source files into Abstract Syntax Trees (ASTs) and extracts symbols, imports, and references into a local SQLite index with FTS5-backed search. It performs incremental updates, reparsing only changed files before each query, and can federate searches across multiple Git worktrees.

Who it’s for

  • CLI Users: Developers who want a faster way to understand unfamiliar repositories.
  • AI Agents: LLM-based agents that need a structured code navigation layer to reduce token usage and replace long chains of search/show calls.
  • Tooling Developers: Go developers who want to embed indexed code navigation into editors, bots, or automation via a library.

Highlights

  • Adaptive Exploration: The investigate command provides a bundled view of source, callers, and impact in one call.
  • Graph Mode: Generates visual dependency maps (Mermaid, DOT, or JSON) for tracing callees or analyzing blast radius.
  • Agent-Native: Specifically designed to integrate with agents like OpenCode and Claude Code to optimize token consumption.
  • Language Agnostic: Supports a wide array of languages including Go, Python, Rust, TypeScript, Java, and C++.
  • High Performance: Symbol and text queries typically complete in 10-40ms.

Related

  • Project
  • Project
  • Project
  • Project
  • Project