You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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,
28
28
orchestrating tool use.
29
29
30
-
For example, **supercharge the performance of Claude Code** with a [one-line shell command](#claude-code).
31
-
32
30
In general, Serena can be integrated with an LLM in several ways:
33
31
34
32
* by using the **model context protocol (MCP)**.
@@ -42,7 +40,7 @@ In general, Serena can be integrated with an LLM in several ways:
42
40
* by incorporating Serena's tools into an agent framework of your choice, as illustrated [here](docs/03-special-guides/custom_agent.md).
43
41
Serena's tool implementation is decoupled from the framework-specific code and can thus easily be adapted to any agent framework.
44
42
45
-
###Serena in Action
43
+
## Serena in Action
46
44
47
45
#### Demonstration 1: Efficient Operation in Claude Code
> Support for further languages can easily be added by providing a shallow adapter for a new language server implementation,
80
78
> see Serena's [memory on that](.serena/memories/adding_new_language_support_guide.md).
81
79
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:
*[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
-
103
80
## Quick Start
104
81
105
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/).
@@ -119,6 +96,27 @@ To get started as quickly as possible, you can directly enable the Serena MCP se
119
96
120
97
Please refer to the [user guide](https://oraios.github.io/serena/) for detailed instructions on how to use Serena effectively.
121
98
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:
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.
161
155
162
156
Without these projects, Serena would not have been possible (or would have been significantly more difficult to build).
163
157
@@ -173,54 +167,3 @@ It is also relatively straightforward to add [support for a new programming lang
173
167
174
168
We look forward to seeing what the community will come up with!
175
169
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
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