diff --git a/README.md b/README.md index 7ebd7f4..01de29e 100644 --- a/README.md +++ b/README.md @@ -95,7 +95,37 @@ Gemini-2.5-pro. ... -## Comparison with Other Tools +## Serena's Tools + +Serena combines tools for semantic code retrieval with editing capabilities and shell execution. + +* `check_onboarding_performed`: Checks whether the onboarding was already performed. +* `create_text_file`: Creates/overwrites a file in the project directory. +* `delete_lines`: Deletes a range of lines within a file. +* `delete_memory`: Deletes a memory from Serena's project-specific memory store. +* `execute_shell_command`: Executes a shell command. +* `find_referencing_symbols`: Finds symbols that reference the symbol at the given location (optionally filtered by type). +* `find_symbol`: Performs a global (or local) search for symbols with/containing a given name/substring (optionally filtered by type). +* `get_dir_overview`: Gets an overview of the top-level symbols defined in all files within a given directory. +* `get_document_overview`: Gets an overview of the top-level symbols defined in a given file. +* `insert_after_symbol`: Inserts content after the end of the definition of a given symbol. +* `insert_at_line`: Inserts content at a given line in a file. +* `insert_before_symbol`: Inserts content before the beginning of the definition of a given symbol. +* `list_dir`: Lists files and directories in the given directory (optionally with recursion). +* `list_memories`: Lists memories in Serena's project-specific memory store. +* `onboarding`: Performs onboarding (identifying the project structure and essential tasks, e.g. for testing or building). +* `prepare_for_new_conversation`: Provides instructions for preparing for a new conversation (in order to continue with the necessary context). +* `read_file`: Reads a file within the project directory. +* `read_memory`: Reads the memory with the given name from Serena's project-specific memory store. +* `replace_symbol_body`: Replaces the full definition of a symbol. +* `search_in_all_code`: Performs a search for a pattern in all code files (and only in code files) in the project. +* `summarize_changes`: Provides instructions for summarizing the changes made to the codebase. +* `think_about_collected_information`: Thinking tool for pondering the completeness of collected information. +* `think_about_task_adherence`: Thinking tool for determining whether the agent is still on track with the current task. +* `think_about_whether_you_are_done`: Thinking tool for determining whether the task is truly completed. +* `write_memory`: Writes a named memory (for future reference) to Serena's project-specific memory store. + +## Comparison with Other Coding Agents To our knowledge, Serena is the first fully-featured coding agent where the entire functionality @@ -153,7 +183,7 @@ The main difference between Serena and other API-based agents is that Serena can also be used as an MCP server, thus not requiring an API key and bypassing the API costs. This is a unique feature of Serena. -### Other MCP Server Coding Agents +### Other MCP-Based Coding Agents There are other MCP servers meant for coding, like for example [DesktopCommander](https://github.com/wonderwhy-er/DesktopCommanderMCP) and