The pitch in the README is a familiar frustration: after a context compaction the model goes back to searching text for a symbol it already knew. Call hierarchies and reference lists give it a real answer instead. One thing to weigh first — the author's own note says Claude Code now has built-in language-server support, so this earns its place mainly in other agent harnesses.
A code-intelligence server for a C/C++ project. It pairs clangd for accurate lookups with Tree-sitter parsing so structural queries still answer when the build is broken, and it points the agent at your project through a compile_commands.json you generate once.
- cpp_list_files and cpp_search_symbols find where things live in the codebase
- cpp_definition, cpp_references and cpp_hover jump to a definition, list every use, and read type information at a position
- cpp_incoming_calls and cpp_outgoing_calls trace who calls a function and what it calls in turn
- cpp_prepare_type_hierarchy, cpp_supertypes and cpp_subtypes walk an inheritance chain
- cpp_list_functions, cpp_list_classes, cpp_get_outline and cpp_extract_signatures answer structural questions from the parse tree, which keeps working through compilation errors
- With --ai-enabled, lookups can be summarised by Google Gemini; --ai-cost-limit caps the monthly spend and --ai-cache-days keeps summaries warm
Python 3.10 or newer, clangd 16 or newer, and a compile_commands.json in the project root — generated with compiledb, bear, or CMake's CMAKE_EXPORT_COMPILE_COMMANDS. The server is version 0.2.0 and takes --project PATH as its one required flag. AI summaries are optional and need a Google AI key in CLANGAROO_AI_API_KEY.
One command — pip install -e .
