Skip to content

Commit b54ad7a

Browse files
committed
Move tool list to docs, restructure README
1 parent 63fd5bf commit b54ad7a

2 files changed

Lines changed: 74 additions & 84 deletions

File tree

README.md

Lines changed: 27 additions & 84 deletions
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,11 @@ Instead, it can use code-centric tools like `find_symbol`, `find_referencing_sym
2222
<a href="lessons_learned.md"><img src="https://img.shields.io/badge/Lessons-Learned-7c4700?style=flat&logo=readthedocs&logoColor=white&labelColor=7c4700" alt="Lessons Learned" /></a>
2323
</p>
2424

25-
### LLM Integration
25+
## LLM Integration
2626

27-
Serena provides the necessary [tools](#list-of-tools) for coding workflows, but an LLM is required to do the actual work,
27+
Serena provides the necessary [tools](https://oraios.github.io/serena/01-about/035_tools.html) for coding workflows, but an LLM is required to do the actual work,
2828
orchestrating tool use.
2929

30-
For example, **supercharge the performance of Claude Code** with a [one-line shell command](#claude-code).
31-
3230
In general, Serena can be integrated with an LLM in several ways:
3331

3432
* by using the **model context protocol (MCP)**.
@@ -42,7 +40,7 @@ In general, Serena can be integrated with an LLM in several ways:
4240
* by incorporating Serena's tools into an agent framework of your choice, as illustrated [here](docs/03-special-guides/custom_agent.md).
4341
Serena's tool implementation is decoupled from the framework-specific code and can thus easily be adapted to any agent framework.
4442

45-
### Serena in Action
43+
## Serena in Action
4644

4745
#### Demonstration 1: Efficient Operation in Claude Code
4846

@@ -79,27 +77,6 @@ AL, Bash, C#, C/C++, Clojure, Dart, Elixir, Elm, Erlang, Fortran, Go, Haskell, J
7977
> Support for further languages can easily be added by providing a shallow adapter for a new language server implementation,
8078
> see Serena's [memory on that](.serena/memories/adding_new_language_support_guide.md).
8179
82-
### Community Feedback
83-
84-
Most users report that Serena has strong positive effects on the results of their coding agents, even when used within
85-
very capable agents like Claude Code. Serena is often described to be a [game changer](https://www.reddit.com/r/ClaudeAI/comments/1lfsdll/try_out_serena_mcp_thank_me_later/), providing an enormous [productivity boost](https://www.reddit.com/r/ClaudeCode/comments/1mguoia/absolutely_insane_improvement_of_claude_code).
86-
87-
Serena excels at navigating and manipulating complex codebases, providing tools that support precise code retrieval and editing in the presence of large, strongly structured codebases.
88-
However, when dealing with tasks that involve only very few/small files, you may not benefit from including Serena on top of your existing coding agent.
89-
In particular, when writing code from scratch, Serena will not provide much value initially, as the more complex structures that Serena handles more gracefully than simplistic, file-based approaches are yet to be created.
90-
91-
Several videos and blog posts have talked about Serena:
92-
93-
* YouTube:
94-
* [AI Labs](https://www.youtube.com/watch?v=wYWyJNs1HVk&t=1s)
95-
* [Yo Van Eyck](https://www.youtube.com/watch?v=UqfxuQKuMo8&t=45s)
96-
* [JeredBlu](https://www.youtube.com/watch?v=fzPnM3ySmjE&t=32s)
97-
98-
* Blog posts:
99-
* [Serena's Design Principles](https://medium.com/@souradip1000/deconstructing-serenas-mcp-powered-semantic-code-understanding-architecture-75802515d116)
100-
* [Serena with Claude Code (in Japanese)](https://blog.lai.so/serena/)
101-
* [Turning Claude Code into a Development Powerhouse](https://robertmarshall.dev/blog/turning-claude-code-into-a-development-powerhouse/)
102-
10380
## Quick Start
10481

10582
Serena is managed with **uv**. If you don’t already have it installed, you will need to [install it](https://docs.astral.sh/uv/getting-started/installation/).
@@ -119,6 +96,27 @@ To get started as quickly as possible, you can directly enable the Serena MCP se
11996

12097
Please refer to the [user guide](https://oraios.github.io/serena/) for detailed instructions on how to use Serena effectively.
12198

99+
## Community Feedback
100+
101+
Most users report that Serena has strong positive effects on the results of their coding agents, even when used within
102+
very capable agents like Claude Code. Serena is often described to be a [game changer](https://www.reddit.com/r/ClaudeAI/comments/1lfsdll/try_out_serena_mcp_thank_me_later/), providing an enormous [productivity boost](https://www.reddit.com/r/ClaudeCode/comments/1mguoia/absolutely_insane_improvement_of_claude_code).
103+
104+
Serena excels at navigating and manipulating complex codebases, providing tools that support precise code retrieval and editing in the presence of large, strongly structured codebases.
105+
However, when dealing with tasks that involve only very few/small files, you may not benefit from including Serena on top of your existing coding agent.
106+
In particular, when writing code from scratch, Serena will not provide much value initially, as the more complex structures that Serena handles more gracefully than simplistic, file-based approaches are yet to be created.
107+
108+
Several videos and blog posts have talked about Serena:
109+
110+
* YouTube:
111+
* [AI Labs](https://www.youtube.com/watch?v=wYWyJNs1HVk&t=1s)
112+
* [Yo Van Eyck](https://www.youtube.com/watch?v=UqfxuQKuMo8&t=45s)
113+
* [JeredBlu](https://www.youtube.com/watch?v=fzPnM3ySmjE&t=32s)
114+
115+
* Blog posts:
116+
* [Serena's Design Principles](https://medium.com/@souradip1000/deconstructing-serenas-mcp-powered-semantic-code-understanding-architecture-75802515d116)
117+
* [Serena with Claude Code (in Japanese)](https://blog.lai.so/serena/)
118+
* [Turning Claude Code into a Development Powerhouse](https://robertmarshall.dev/blog/turning-claude-code-into-a-development-powerhouse/)
119+
122120
## Acknowledgements
123121

124122
### Sponsors
@@ -148,16 +146,12 @@ what it is today.
148146
We built Serena on top of multiple existing open-source technologies, the most important ones being:
149147

150148
1. [multilspy](https://github.com/microsoft/multilspy).
151-
A library which wraps language server implementations and adapts them for interaction via Python
152-
and which provided the basis for our library Solid-LSP (src/solidlsp).
149+
A library which wraps language server implementations and adapts them for interaction via Python.
150+
It provided the basis for our library Solid-LSP (`src/solidlsp`).
153151
Solid-LSP provides pure synchronous LSP calls and extends the original library with the symbolic logic
154152
that Serena required.
155153
2. [Python MCP SDK](https://github.com/modelcontextprotocol/python-sdk)
156-
3. [Agno](https://github.com/agno-agi/agno) and
157-
the associated [agent-ui](https://github.com/agno-agi/agent-ui),
158-
which we use to allow Serena to work with any model, beyond the ones
159-
supporting the MCP.
160-
4. All the language servers that we use through Solid-LSP.
154+
3. All the language servers that we use through Solid-LSP.
161155

162156
Without these projects, Serena would not have been possible (or would have been significantly more difficult to build).
163157

@@ -173,54 +167,3 @@ It is also relatively straightforward to add [support for a new programming lang
173167

174168
We look forward to seeing what the community will come up with!
175169
For details on contributing, see [contributing guidelines](/CONTRIBUTING.md).
176-
177-
## List of Tools
178-
179-
Here is the list of Serena's default tools with a short description (output of `uv run serena tools list`):
180-
181-
* `activate_project`: Activates a project based on the project name or path.
182-
* `check_onboarding_performed`: Checks whether project onboarding was already performed.
183-
* `create_text_file`: Creates/overwrites a file in the project directory.
184-
* `delete_memory`: Deletes a memory from Serena's project-specific memory store.
185-
* `execute_shell_command`: Executes a shell command.
186-
* `find_file`: Finds files in the given relative paths
187-
* `find_referencing_symbols`: Finds symbols that reference the symbol at the given location (optionally filtered by type).
188-
* `find_symbol`: Performs a global (or local) search for symbols with/containing a given name/substring (optionally filtered by type).
189-
* `get_current_config`: Prints the current configuration of the agent, including the active and available projects, tools, contexts, and modes.
190-
* `get_symbols_overview`: Gets an overview of the top-level symbols defined in a given file.
191-
* `insert_after_symbol`: Inserts content after the end of the definition of a given symbol.
192-
* `insert_before_symbol`: Inserts content before the beginning of the definition of a given symbol.
193-
* `list_dir`: Lists files and directories in the given directory (optionally with recursion).
194-
* `list_memories`: Lists memories in Serena's project-specific memory store.
195-
* `onboarding`: Performs onboarding (identifying the project structure and essential tasks, e.g. for testing or building).
196-
* `prepare_for_new_conversation`: Provides instructions for preparing for a new conversation (in order to continue with the necessary context).
197-
* `read_file`: Reads a file within the project directory.
198-
* `read_memory`: Reads the memory with the given name from Serena's project-specific memory store.
199-
* `rename_symbol`: Renames a symbol throughout the codebase using language server refactoring capabilities.
200-
* `replace_regex`: Replaces content in a file by using regular expressions.
201-
* `replace_symbol_body`: Replaces the full definition of a symbol.
202-
* `search_for_pattern`: Performs a search for a pattern in the project.
203-
* `think_about_collected_information`: Thinking tool for pondering the completeness of collected information.
204-
* `think_about_task_adherence`: Thinking tool for determining whether the agent is still on track with the current task.
205-
* `think_about_whether_you_are_done`: Thinking tool for determining whether the task is truly completed.
206-
* `write_memory`: Writes a named memory (for future reference) to Serena's project-specific memory store.
207-
208-
There are several tools that are disabled by default, and have to be enabled explicitly, e.g., through the context or modes.
209-
Note that several of our default contexts do enable some of these tools. For example, the `desktop-app` context enables the `execute_shell_command` tool.
210-
211-
The full list of optional tools is (output of `uv run serena tools list --only-optional`):
212-
213-
* `delete_lines`: Deletes a range of lines within a file.
214-
* `get_current_config`: Prints the current configuration of the agent, including the active and available projects, tools, contexts, and modes.
215-
* `initial_instructions`: Gets the initial instructions for the current project.
216-
Should only be used in settings where the system prompt cannot be set,
217-
e.g. in clients you have no control over, like Claude Desktop.
218-
* `insert_at_line`: Inserts content at a given line in a file.
219-
* `jet_brains_find_referencing_symbols`: Finds symbols that reference the given symbol
220-
* `jet_brains_find_symbol`: Performs a global (or local) search for symbols with/containing a given name/substring (optionally filtered by type).
221-
* `jet_brains_get_symbols_overview`: Retrieves an overview of the top-level symbols within a specified file
222-
* `remove_project`: Removes a project from the Serena configuration.
223-
* `replace_lines`: Replaces a range of lines within a file with new content.
224-
* `restart_language_server`: Restarts the language server, may be necessary when edits not through Serena happen.
225-
* `summarize_changes`: Provides instructions for summarizing the changes made to the codebase.
226-
* `switch_modes`: Activates modes by providing a list of their names

docs/01-about/035_tools.md

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
## List of Tools
2+
3+
Find the full list of Serena's tools below (output of `<serena> tools list --all`).
4+
5+
Note that in most configurations, only a subset of these tools will be enabled simultaneously (see the section on [configuration](../02-usage/050_configuration) for details).
6+
7+
* `activate_project`: Activates a project based on the project name or path.
8+
* `check_onboarding_performed`: Checks whether project onboarding was already performed.
9+
* `create_text_file`: Creates/overwrites a file in the project directory.
10+
* `delete_lines`: Deletes a range of lines within a file.
11+
* `delete_memory`: Deletes a memory from Serena's project-specific memory store.
12+
* `execute_shell_command`: Executes a shell command.
13+
* `find_file`: Finds files in the given relative paths
14+
* `find_referencing_symbols`: Finds symbols that reference the symbol at the given location (optionally filtered by type).
15+
* `find_symbol`: Performs a global (or local) search for symbols with/containing a given name/substring (optionally filter
16+
ed by type).
17+
* `get_current_config`: Prints the current configuration of the agent, including the active and available projects, tools,
18+
contexts, and modes.
19+
* `get_symbols_overview`: Gets an overview of the top-level symbols defined in a given file.
20+
* `initial_instructions`: Provides instructions on how to use the Serena toolbox.
21+
* `insert_after_symbol`: Inserts content after the end of the definition of a given symbol.
22+
* `insert_at_line`: Inserts content at a given line in a file.
23+
* `insert_before_symbol`: Inserts content before the beginning of the definition of a given symbol.
24+
* `jet_brains_find_referencing_symbols`: Finds symbols that reference the given symbol
25+
* `jet_brains_find_symbol`: Performs a global (or local) search for symbols with/containing a given name/substring (option
26+
ally filtered by type).
27+
* `jet_brains_get_symbols_overview`: Retrieves an overview of the top-level symbols within a specified file
28+
* `list_dir`: Lists files and directories in the given directory (optionally with recursion).
29+
* `list_memories`: Lists memories in Serena's project-specific memory store.
30+
* `onboarding`: Performs onboarding (identifying the project structure and essential tasks, e.g. for testing or building).
31+
* `prepare_for_new_conversation`: Provides instructions for preparing for a new conversation (in order to continue with th
32+
e necessary context).
33+
* `read_file`: Reads a file within the project directory.
34+
* `read_memory`: Reads the memory with the given name from Serena's project-specific memory store.
35+
* `remove_project`: Removes a project from the Serena configuration.
36+
* `rename_symbol`: Renames a symbol throughout the codebase using language server refactoring capabilities.
37+
* `replace_lines`: Replaces a range of lines within a file with new content.
38+
* `replace_regex`: Replaces content in a file by using regular expressions.
39+
* `replace_symbol_body`: Replaces the full definition of a symbol.
40+
* `restart_language_server`: Restarts the language server, may be necessary when edits not through Serena happen.
41+
* `search_for_pattern`: Performs a search for a pattern in the project.
42+
* `summarize_changes`: Provides instructions for summarizing the changes made to the codebase.
43+
* `switch_modes`: Activates modes by providing a list of their names
44+
* `think_about_collected_information`: Thinking tool for pondering the completeness of collected information.
45+
* `think_about_task_adherence`: Thinking tool for determining whether the agent is still on track with the current task.
46+
* `think_about_whether_you_are_done`: Thinking tool for determining whether the task is truly completed.
47+
* `write_memory`: Writes a named memory (for future reference) to Serena's project-specific memory store.

0 commit comments

Comments
 (0)