Skip to content

Commit 9e3d8bc

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

File tree

2 files changed

+71
-81
lines changed

2 files changed

+71
-81
lines changed

README.md

Lines changed: 24 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,9 @@ Instead, it can use code-centric tools like `find_symbol`, `find_referencing_sym
2424

2525
### 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)**.
@@ -79,13 +77,32 @@ 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
80+
## Quick Start
81+
82+
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/).
83+
84+
To get started as quickly as possible, you can directly enable the Serena MCP server in your client of choice (by following the links provided):
85+
86+
* For coding with Claude, we recommend using Serena through [Claude Code](https://oraios.github.io/serena/02-usage/030_clients.html#claude-code) or [Claude Desktop](#claude-desktop). You can also use Serena in [Codex](https://oraios.github.io/serena/02-usage/030_clients.html#codex) and a wide variety of [other clients](https://oraios.github.io/serena/02-usage/030_clients.html#other-clients).
87+
* If you want a GUI experience outside an IDE, you can use one of the many [local GUIs](https://oraios.github.io/serena/02-usage/030_clients.html#local-guis-and-agent-frameworks) that support MCP servers.
88+
You can also connect Serena to many web clients (including ChatGPT) using [mcpo](https://oraios.github.io/serena/03-special-guides/serena_on_chatgpt.html).
89+
* If you want to integrate Serena with your IDE, see the section on [other MCP clients](https://oraios.github.io/serena/02-usage/030_clients.html#mcp-enabled-ides-and-coding-clients-cline-roo-code-cursor-windsurf-etc).
90+
91+
> [!TIP]
92+
> While getting started quickly is easy, Serena is a powerful toolkit with many configuration options.
93+
> We highly recommend reading through the [user guide](https://oraios.github.io/serena/) to get the most out of Serena.
94+
95+
## User Guide
96+
97+
Please refer to the [user guide](https://oraios.github.io/serena/) for detailed instructions on how to use Serena effectively.
98+
8299
### Community Feedback
83100

84101
Most users report that Serena has strong positive effects on the results of their coding agents, even when used within
85102
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).
86103

87104
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.
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.
89106
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.
90107

91108
Several videos and blog posts have talked about Serena:
@@ -100,25 +117,6 @@ Several videos and blog posts have talked about Serena:
100117
* [Serena with Claude Code (in Japanese)](https://blog.lai.so/serena/)
101118
* [Turning Claude Code into a Development Powerhouse](https://robertmarshall.dev/blog/turning-claude-code-into-a-development-powerhouse/)
102119

103-
## Quick Start
104-
105-
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/).
106-
107-
To get started as quickly as possible, you can directly enable the Serena MCP server in your client of choice (by following the links provided):
108-
109-
* For coding with Claude, we recommend using Serena through [Claude Code](https://oraios.github.io/serena/02-usage/030_clients.html#claude-code) or [Claude Desktop](#claude-desktop). You can also use Serena in [Codex](https://oraios.github.io/serena/02-usage/030_clients.html#codex) and a wide variety of [other clients](https://oraios.github.io/serena/02-usage/030_clients.html#other-clients).
110-
* If you want a GUI experience outside an IDE, you can use one of the many [local GUIs](https://oraios.github.io/serena/02-usage/030_clients.html#local-guis-and-agent-frameworks) that support MCP servers.
111-
You can also connect Serena to many web clients (including ChatGPT) using [mcpo](https://oraios.github.io/serena/03-special-guides/serena_on_chatgpt.html).
112-
* If you want to integrate Serena with your IDE, see the section on [other MCP clients](https://oraios.github.io/serena/02-usage/030_clients.html#mcp-enabled-ides-and-coding-clients-cline-roo-code-cursor-windsurf-etc).
113-
114-
> [!TIP]
115-
> While getting started quickly is easy, Serena is a powerful toolkit with many configuration options.
116-
> We highly recommend reading through the [user guide](https://oraios.github.io/serena/) to get the most out of Serena.
117-
118-
## User Guide
119-
120-
Please refer to the [user guide](https://oraios.github.io/serena/) for detailed instructions on how to use Serena effectively.
121-
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)