Features#
Serena provides a wide range of tools for efficient code retrieval, editing and refactoring, as well as a memory system for long-lived agent workflows.
Given its large scope, Serena adapts to your needs by offering a multi-layered configuration system.
Retrieval#
Serena’s retrieval tools allow agents to explore codebases at the symbol level, understanding structure and relationships without reading entire files.
Capability |
Language Servers |
JetBrains Plugin |
|---|---|---|
find symbol |
yes |
yes |
symbol overview (file outline) |
yes |
yes |
find referencing symbols |
yes |
yes |
search in project dependencies |
– |
yes |
type hierarchy |
– |
yes |
find declaration |
– |
yes |
find implementations |
– |
yes |
query external projects |
yes |
yes |
Refactoring#
Without precise refactoring tools, agents are forced to resort to unreliable and expensive search and replace operations.
Capability |
Language Servers |
JetBrains Plugin |
|---|---|---|
rename |
yes (only symbols) |
yes (symbols, files, directories) |
move (symbol, file, directory) |
– |
yes |
inline |
– |
yes |
propagate deletions (remove unused code) |
– |
yes |
Symbolic Editing#
Serena’s symbolic editing tools are less error-prone and much more token-efficient than typical alternatives.
Capability |
Language Servers |
JetBrains Plugin |
|---|---|---|
replace symbol body |
yes |
yes |
insert after symbol |
yes |
yes |
insert before symbol |
yes |
yes |
safe delete |
yes |
yes |
Basic Features#
Beyond its semantic capabilities, Serena includes a set of basic utilities for completeness. When Serena is used inside an agentic harness such as Claude Code or Codex, these tools are typically disabled by default, since the surrounding harness already provides overlapping file, search, and shell capabilities.
search_for_pattern– flexible regex search across the codebasereplace_content– agent-optimised regex-based and literal text replacementlist_dir/find_file– directory listing and file searchread_file– read files or file chunksexecute_shell_command– run shell commands (e.g. builds, tests, linters)
Memory Management#
A memory system is elemental to long-lived agent workflows, especially when knowledge is to be shared across
sessions, users and projects.
Despite its simplicity, we received positive feedback from many users who tend to combine Serena’s memory management system with their
agent’s internal system (e.g., AGENTS.md files).
It can easily be disabled if you prefer to use something else.
Configurability#
Active tools, tool descriptions, prompts, language backend details and many other aspects of Serena can be flexibly configured on a per-case basis by simply adjusting a few lines of YAML. To achieve this, Serena offers multiple levels of (composable) configuration:
global configuration
MCP launch command (CLI) configuration
per-project configuration (with local overrides)
execution context-specific configuration (e.g. for particular clients)
dynamically composable configuration fragments (modes)