Symbol tools replace brittle line-based agent edits
Serena gives an existing coding agent an IDE-like view of a repository through MCP. Its tools find symbols, list file structure, follow references, replace symbol bodies, and insert code relative to a definition. The free backend talks to language servers, so the agent can reason about code structure instead of treating every file as undifferentiated text. That is useful when a rename or API change crosses several files and plain search produces too many unrelated matches.
The README lists more than 40 supported languages, ranging from Python and TypeScript to Ada, Solidity, Terraform, and Zig. Coverage is uneven by design. Finding declarations may miss external dependencies, implementation lookup exists only for some language servers, and moving symbols or files is absent from the free backend. Buyers should check the exact row for their language and task instead of reading the language count as a promise that every operation works everywhere.
The free backend searches symbols, while JetBrains handles deeper refactors
Language servers provide the open path for symbol search, references, diagnostics, basic renames, and targeted edits. Serena can also query external projects and maintain project memories. It fits Claude Code, Codex, Cursor, JetBrains assistants, desktop clients, and other software that can start an MCP process or connect to one over HTTP. Serena supplies the tools; the connected model decides when and how to call them.
The paid JetBrains plugin changes the ceiling. It adds dependency search, type hierarchy, file and directory moves, inline refactoring, deletion propagation, and interactive debugging. Rider and CLion are listed as unsupported even though other JetBrains IDEs are named. If those extra operations are the reason for adopting Serena, price and IDE choice belong in the decision. The MIT license covers the repository, while the plugin is a separate commercial path with a free trial.
What happened when we ran it
Our sandbox installed Serena in 111 seconds, adding 97 Python packages and occupying 116 MB. The build succeeded in 125 seconds. The checkout at commit 7fcbca7 contained 1,051 files and about 109,991 lines of source, with 8 CI workflow files, a Dockerfile, a Compose file, and a tests directory. Pip-audit found 0 known vulnerabilities in the installed Python packages.
The test command ran for 840 seconds and exited with failure. Pytest reported 1,253 passed, 36 failed, 273 skipped, 2 expected failures, and 164 collection or setup errors out of 1,453 before stopping after 200 failures. The tail repeatedly said Ruby was not installed or found on PATH during Ruby symbol retrieval tests. It offered mise, rbenv, asdf, RVM, or a system package manager as ways to install Ruby.
That log supports a narrow conclusion: the checked-out commit did not pass its complete suite in our fresh unprivileged Debian container. It also shows that a project whose job is coordinating language tooling may need language runtimes beyond its Python package. The tail does not account for every one of the 36 failures or 164 errors, so blaming all of them on Ruby would go past the evidence.
One uv command starts the setup, then language tooling takes over
The README calls uv the only prerequisite and gives uv tool install -p 3.13 serena-agent followed by serena init. Connecting a client means adding a launch command or starting the server in HTTP mode and supplying its URL. The project warns against MCP and plugin marketplaces because their installation commands may be outdated. That warning is unusually direct and worth following, especially when a copied command controls which server build an agent launches.
Initialization defaults to the language-server backend. Each working language may bring another executable, download, or runtime requirement, as the missing Ruby message in our 840-second test run demonstrates. Configuration spans global settings, launch arguments, per-project overrides, client contexts, and composable modes. The layering lets a team trim duplicate tools, but it also means two developers can have materially different Serena behavior while both say they use the default project.
Tool permissions matter because editing and shell access are available
Serena includes read_file, pattern search, content replacement, directory listing, and shell execution alongside its semantic tools. The README says agent harnesses commonly disable overlapping basics. That is the sensible starting point: expose the smallest tool set the client needs, inspect project overrides, and decide whether an agent should execute commands at all. HTTP deployment also deserves normal network access controls because its tools can inspect and alter source code.
Memory needs verification too. Open issue 1936 describes Serena 1.7.0 with Codex CLI appearing to retain project knowledge during a session without writing the expected files under .serena/memories/. After restart, the knowledge was gone. The report attributes the gap to whether the model actually calls the write tool. Until that behavior is made explicit, teams using memory as a handoff should check the filesystem rather than trusting a conversational confirmation.
August 2026 activity is high, and the issue queue reflects the scope
GitHub recorded 28,511 stars and 146 combined open issues and pull requests when fetched. The last push was August 20, 2026, and release v1.7.0 was published August 9. Recent activity included reports and fixes around memory persistence, MCP behavior, process cleanup, hooks, and individual language servers. This is a busy project rather than a quiet utility, with the support surface that comes from many clients and languages.
Serena earns a trial when agents repeatedly make costly mistakes around symbols or cross-file references. The 1,253 passing tests show substantial exercised code, while the failed full run warns against assuming a Python install reproduces every supported language environment. Start on one real repository, keep the active tools visible, and test the language operations you care about before making Serena part of every agent session.

