Replies: 1 comment 3 replies
-
|
Hey @jthrilly , thanks for the question! I'm actually one of Codanna's creators, so I'll try to be as fair as possible here while explaining why we built it. Both tools help LLMs understand codebases, but they came from different needs: Serena uses LSP (Language Server Protocol) - it's essentially giving your LLM access to the same code intelligence your IDE uses. This means it can do precise refactoring, symbol renaming, and structural edits. If you need to systematically change code across a project, Serena's LSP foundation makes that possible. Codanna came from our need for rapid research and exploration with proper context. We were doing a lot of R&D, quick POCs, and intense pair-programming sessions where we needed instant answers about our codebase. LSP servers were too slow for that rapid-fire questioning. What we optimized for Speed for iterative exploration: When you're in research mode or building a POC, you ask dozens of questions rapidly. Codanna's <10ms lookups keep up with your thought process. Human+LLM pair programming: We wanted the human to stay in control. You can run the same queries the AI runs, pipe results through Unix tools, verify context before the AI acts. The Semantic understanding: We needed to find code by concept - "where's the retry logic?" without knowing exact names. Our embedding-based search understands what code does from its documentation. Can they work together? In theory, yes. It depends on whether you're exploring/researching or doing systematic refactoring. You could use Codanna for:
Then switch to Serena when you need:
To be honest though, we just use Codanna for understanding and then do edits in our IDE or with the AI using regular file editing. The fast exploration usually gives enough context to make changes confidently. Want to see what Codanna actually does? Check out these reports generated from single-sentence questions:
These were generated by our My honest take Codanna is early-stage and focused on what we needed: fast exploration and human-in-the-loop control. It's been great for our R&D workflow and intense coding sessions where you need instant context. Serena if you need an AI that can autonomously refactor code. The LSP foundation gives it capabilities we don't have (and honestly don't plan to add - we think editing belongs in IDEs). (Note: We do plan to add LSP support, but as a data source for better type information and cross-references, not for editing. Think of it as enriching our index with compiler-level insights while keeping our read-only, fast-lookup philosophy.) For us, the sweet spot is using Codanna for understanding/exploration, then build agentic tools and pipes on top of it. Happy to dig deeper into specific use cases - what kind of development are you doing? |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Hello!
Firstly, thanks for putting together this project - I think tools like this are essential for improving the capabilities of LLMs to work on larger more complex codebases. I'm excited to try this!
It seems like this project has a lot of overlaps with something I am currently using, which is Serena (https://github.com/oraios/serena).
I was wondering if anyone had any information about the core differences between them? Serena provides tools via MCP for accessing the code graph at the symbol level, via the IDE's LSP (I believe). How is this different from codanna?
Can the two work together, and if so how?
Beta Was this translation helpful? Give feedback.
All reactions