From cd35fd1f4537d37e8a9914db5a0b971c9ae4876f Mon Sep 17 00:00:00 2001 From: Dominik Jain Date: Mon, 31 Mar 2025 18:43:53 +0200 Subject: [PATCH] README improvements --- README.md | 56 ++++++++++++++++++++++++++----------------------------- 1 file changed, 26 insertions(+), 30 deletions(-) diff --git a/README.md b/README.md index 01de29e..8ed1066 100644 --- a/README.md +++ b/README.md @@ -135,48 +135,43 @@ Here a brief comparison with other tools: ### Subscription-Based Coding Agents -The most prominent subscription-based coding agents are parts of IDE's like +The most prominent subscription-based coding agents are parts of IDEs like Windsurf, Cursor and VSCode. -The functionality of Serena is similar to Cursor's Agent, Windsurf's Cascade or +Serena's functionality is similar to Cursor's Agent, Windsurf's Cascade or VSCode's upcoming [agent mode](https://code.visualstudio.com/blogs/2025/02/24/introducing-copilot-agent-mode). -The main positive difference is that Serena does not require a subscription, and -the negative difference is that Serena +Serena has the advantage of not requiring a subscription. +A potential disadvantage is that it is not directly integrated into an IDE, so the inspection of newly written code is not as seamless. More technical differences are: -* Serena is an MCP server, so it can be used with any MCP client and is not -bound to a specific IDE. +* Serena is not bound to a specific IDE. + Serena's MCP server can be used with any MCP client (including some IDEs), + and the Agno-based agent provides additional ways of applying its functionality. +* Serena is not bound to a specific large language model or API. * Serena navigates and edits code using a language server, so it has a symbolic -understanding of the code. -IDE-based tools usually use a RAG and text-matching approach, which is often -less powerful, especially for large codebases. + understanding of the code. + IDE-based tools often use a RAG-based or purely text-based approach, which is often + less powerful, especially for large codebases. * Serena is open-source and has a small codebase, so it can be easily extended -and modified. -* Serena is not limited to a specific model or API, but can be used with any LLM -that supports the MCP. - -Note that Serena **can be used with any IDE** that supports including MCP -Servers (Cursor and Windsurf both do that). -Then, of course, you are back to paying for the IDE subscription. You might -still want to use Serena because it's way of parsing code -may be more efficient than the (usually RAG-based) parsing of the IDE's agent. + and modified. ### API-Based Coding Agents An alternative to subscription-based agents are API-based agents like Claude -Code, Cline, Aider, Roo Code and others. +Code, Cline, Aider, Roo Code and others, where the usage costs map directly +to the API costs of the underlying LLM. Some of them (like Cline) can even be included in IDEs as an extension. -They are often very powerful and their main downside is the (potentially very -large) API costs. +They are often very powerful and their main downside are the (potentially very +high) API costs. -Serena itself can be used as an API-based agent, see the section on Agno above. +Serena itself can be used as an API-based agent (see the section on Agno above). We have not yet written a CLI tool or a -dedicated IDE extension for Serena (there is probably no need for the latter, as -you can use Serena with any IDE that supports MCP servers). -If there is a large demand for Serena as a CLI tool like Claude Code, we will +dedicated IDE extension for Serena (and there is probably no need for the latter, as +Serena can already be used with any IDE that supports MCP servers). +If there is demand for a Serena as a CLI tool like Claude Code, we will consider writing one. The main difference between Serena and other API-based agents is that Serena can @@ -188,14 +183,15 @@ an API key and bypassing the API costs. This is a unique feature of Serena. There are other MCP servers meant for coding, like for example [DesktopCommander](https://github.com/wonderwhy-er/DesktopCommanderMCP) and [codemcp](https://github.com/ezyang/codemcp). -However, to our knowledge, none of them use a language server for code -navigation and editing, and are thus limited to just text-based analysis. -It is the integration of language servers and the MCP that makes Serena unique and so powerful for hard coding -tasks on large codebases. +However, to the best of our knowledge, none of them provide semantic code +retrieval and editing tools; they rely purely on text-based analysis. +It is the integration of language servers and the MCP that makes Serena unique +and so powerful for challenging coding tasks, especially in the context of +larger codebases. ## Developer Environment Setup -You can have a local setup via `uv` or a docker interpeter-based setup. +You can have a local setup via `uv` or a docker interpreter-based setup. The repository is also configured to seamlessly work within a GitHub Codespace. See the instructions for the various setup scenarios below.