1broseidon/cymbal
Language-agnostic code navigation CLI powered by tree-sitter
What it solves
Cymbal solves the problem of navigating large, unfamiliar codebases by replacing slow, manual search patterns (like chaining grep, find, and file reads) with a fast, indexed approach. It provides a structured way to understand symbol relationships, dependencies, and the impact of changes, which is particularly useful for both human developers and AI agents who often struggle with the token-heavy process of exploring code.
How it works
Cymbal uses tree-sitter to parse source files into Abstract Syntax Trees (ASTs), extracting symbols, imports, and references. This data is stored in a local SQLite index with FTS5 for fast symbol searching. The tool incrementally reparses only changed files before each query, ensuring the index stays fresh without requiring a background daemon. It also supports federated searches across multiple Git worktrees.
Who it’s for
- Developers who want a fast CLI for codebase exploration and impact analysis.
- AI Agents that need a structured code navigation layer to reduce token usage and avoid long chains of search calls.
- Tool Builders who want to embed indexed code navigation into editors, bots, or automation via a Go library.
Highlights
- Adaptive Exploration: The
investigatecommand provides a combined view of source, callers, and impact in one call. - Relationship Mapping: Supports
trace(downward dependencies) andimpact(upward callers) with optional visual graph generation (Mermaid, DOT, JSON). - Change Analysis: The
changedcommand maps Git diffs to specific symbols and their blast radius. - Language Agnostic: Supports a wide array of languages including Go, Python, Rust, TypeScript, Java, and C++.
- Agent Integration: Includes dedicated hooks for OpenCode and Claude Code to streamline agentic code navigation.
Related
- Project
- Project
- Project
- Project
- Project