mrkeyoor.com_
Sun 01 Nov 03:59 UTC
AI Toolsevaluationupdated 26 Oct 2026

serena review

Serena gives an existing coding agent tools for symbol-level retrieval, editing and project memory through MCP. Its README describes a default free language-server backend and a paid JetBrains backend with additional refactoring and debugging capabilities. An LLM in a separate client still orchestrates the work.

+218stars / 7d
Verdict

Serena merits a focused trial when your existing coding agent needs symbol relationships and targeted edits. Choose the backend around the operations you need, then verify your languages and MCP connection. Our September 28, 2026 run at 7a29683 completed dependency installation and the build, but the test command failed amid missing prerequisites and initialization errors. That result establishes an incomplete validation in this environment, not that Serena is broken or that current v2 workflows have been tested.

We ran it

Lab card: what happened when we ran serenaScreenshot of serena (oraios.github.io/serena)
Install✓ · 87s195 packages · 354 MB
Build✓ · 5s
Tests✗ · 674s1432 passed · 51 failed · 286 skipped · 149 errors of 1632 (pytest)
Known vulns6(pip-audit)
Repo1123 files~120,416 lines of source · 8.8 MB · 8 CI workflows · Dockerfile · tests dir

Answers from our run

Does serena build from source?

Dependencies installed in 87 seconds (195 packages), and the build succeeded in 5 seconds. We cloned commit 7a29683 into a clean Debian container with 3 CPUs and no project-specific setup.

Do serena's tests pass?

No. The project's own test command finished in 674 seconds and reported 1432 passed, 51 failed, 286 skipped, 149 collection errors (pytest).

Does serena have known vulnerabilities in its dependencies?

pip-audit flagged 6 known advisories in the dependency tree at the time of our run.

Who should not use serena?

Readers seeking a complete coding agent with a bundled model.

What are the alternatives to serena?

Claude Context, Graphify. Serena merits a focused trial when your existing coding agent needs symbol relationships and targeted edits.

Setup3/5Useful evidence with material limits: dependency installation and build succeeded at 7a29683 on September 28, 2026; CLI initialization and MCP connection were not verified, and the test tail reports missing prerequisites.
Docs4/5Detailed supplied documentation covers language prerequisites, client connection, backend differences and license boundaries. Instruction accuracy was not comprehensively tested.
Community2/5Limited evidence: the supplied sources show contribution mechanisms and dated issue reports, but do not establish adoption, maintainer response times or resolution quality.
Maturity3/5Useful evidence with material limits: build and test infrastructure is present and the recorded build succeeded. The test command failed in this environment, and the current v2 interface was not evaluated.

Discussed on

  1. hnFree to Use Alternative to Cursor, Claude Code, Cline etc.4 points

Who it’s for

Developers whose existing MCP coding client needs definitions, references and edits tied to symbol boundaries.
Teams prepared to verify language-server prerequisites on their own repositories.
JetBrains users evaluating the paid backend for moves, inline refactoring or interactive debugging.

Who it’s NOT for

Readers seeking a complete coding agent with a bundled model.
Teams expecting every listed language and operation to work after installing Python dependencies alone.
Rider or CLion users seeking the JetBrains backend: the README excludes both IDEs.
Organizations requiring a wholly permissive current distribution: the application is GPL-3.0-or-later, while SolidLSP remains MIT. Historical releases require a separate license check.

Setup reality

In our recorded run on September 28, 2026, at commit 7a29683, the dependency-install step succeeded in 87 seconds and recorded 195 packages and 354 MB. The build step succeeded in 5 seconds. These step results do not establish that an installed Serena CLI, MCP connection or coding workflow worked.

The test command exited 1 after 674 seconds of harness time. Its tail reported 1,432 passed, 51 failed, 286 skipped, 2 xfailed and 149 errors, with pytest reporting 662.34 seconds internally. The parser's total of 1,632 is not a verified exhaustive count of unique tests. The tail names missing .NET, Go and Node prerequisites and language-server initialization failures; it does not explain every failure.

The install tail identifies Python 3.12.12. The README quick start uses uv with Python 3.13 and then serena init. Our stored run does not record successful initialization or client verification. Pip-audit recorded 6 advisories across 3 packages; the number of packages scanned and the affected paths, severity and reachability are unknown.

Serena's main decision is whether your coding agent needs symbol-level tools enough to justify maintaining another server and its language dependencies. The README describes definitions, file outlines, references and edits around symbol boundaries. We did not measure coding accuracy, token savings or refactoring performance.

Choose the backend by the operation

The supplied README describes a free language-server backend and a paid JetBrains plugin with a free trial. Both list symbol lookup, references, diagnostics, symbol-body replacement and insertion before or after symbols. The language-server backend lists symbol rename; the plugin additionally lists file and directory rename, moves, inline refactoring, deletion propagation and interactive debugging.

Those are documented capabilities, not operations verified in our sandbox. Language-server support also varies: the README limits implementation lookup to some languages and warns that declaration lookup generally does not work for external dependencies. The language guide lists further differences and prerequisites. A list of more than 40 languages does not establish equal support for every operation.

The JetBrains backend excludes Rider and CLion. Check your IDE and required operations before choosing that path.

Keep current documentation separate from the recorded checkout

The current README announces Serena v2 and a new REPL-based agent interface. The supplied v1.7.0 release page identifies a separate release at commit 949a27e. Our recorded checkout was 7a29683, not that release tag. This review does not assign current backend features or licensing to v1.7.0.

The license documentation says the v2 application is GPL-3.0-or-later, SolidLSP remains MIT, and a combined distribution is subject to GPL-3.0-or-later. It also says releases and commits before the historical cutoff documented in LICENSE remain MIT. Verify the exact revision's license if historical licensing affects your choice.

What our September 28 run establishes

Our recorded run began on September 28, 2026, at 03:58:47.668 UTC against commit 7a2968335f2198b966864de1ce3655c8e485a653. The recorded configuration was 3 CPUs, 8 GB of RAM and image ghcr.io/astral-sh/uv:python3.12-bookworm. The install tail independently identifies Python 3.12.12.

The dependency-install step succeeded in 87 seconds, recording 195 packages and 354 MB. The build step succeeded in 5 seconds. The checkout contained 1,123 files, approximately 120,416 lines of source and 8.8 MB. Repository signals recorded 8 CI workflow files, a Dockerfile, a Compose file and a tests directory. These files describe repository infrastructure; they do not prove runtime reliability.

The test command exited 1 after 674 seconds of harness time. Its pytest tail reported 1,432 passed, 51 failed, 286 skipped, 2 xfailed, 9 warnings and 149 errors in 662.34 seconds. The two timings describe the harness step and pytest's own report. The stored parser also reports a total of 1,632, but no complete-log reconciliation verified exhaustive unique coverage. We therefore do not present a passing percentage or describe the result as a complete compatibility test.

The tail explicitly reports a missing .NET 10.0 runtime, missing Go and Node unavailable on PATH. Other entries report language-server initialization failures, including PHPantom and symbol-editing tests. Those observations explain named failures only. They do not establish that installing those prerequisites would clear every failure or error, nor that failures would recur in a correctly configured deployment.

Pip-audit recorded 6 advisories across 3 packages. The supplied record does not identify the affected packages, severity, reachable code paths or number of packages scanned. The 195 dependency count is not audit coverage. Reproduce the audit for the revision and environment you intend to use before making a security decision.

Verify installation, connection and useful work separately

The README quick start uses uv and Python 3.13, followed by serena init. Our successful dependency step used Python 3.12.12 and does not prove that this documented CLI installation or initialization completed. No installed-binary check, successful MCP connection or measured coding workload is recorded.

Serena still needs an LLM through a client. The client guide describes either a stdio subprocess launch command or an already-running HTTP/SSE endpoint. It also warns that a client may not discover the executable even when your shell can, and that environment variables may need explicit configuration.

For a useful trial, verify the executable in the client's environment, initialize the chosen backend, confirm the MCP connection and activate the intended project. Then use a representative repository to check symbol lookup, references and a reversible edit. These are recommended next steps, not completed checks from our run. Test each important language separately because its toolchain and server requirements differ.

How to read the scores

The scores are editorial assessments of the supplied evidence for this reader's decision. The rubric is 1 for little usable support, 2 for limited support with major unknowns, 3 for useful support with material limits, 4 for detailed support with bounded gaps and 5 for extensive evidence including relevant verification. They are not benchmarks, adoption measurements or compatibility guarantees. Unknowns limit confidence rather than prove poor product quality.

Setup receives 3 because dependency installation and build succeeded, while initialization, client connection and language prerequisites remain unresolved. Documentation receives 4 because the supplied guides explain prerequisites, client configuration, backend differences and licensing, although we did not verify every instruction. Community receives 2 because the extracts show contribution mechanisms and dated issue reports but do not establish adoption, response times or resolution quality. Maturity receives 3 because the repository has build and test infrastructure, while our failed test command and the untested v2 interface limit operational conclusions.

Use Serena when symbol relationships are central to the work your existing agent performs. Begin with the backend and language you actually need, and make a successful representative workflow the condition for broader adoption.

Alternatives

ProjectWhat it isPick it when
Claude ContextAn MCP service for indexing and searching code with hybrid BM25 and dense-vector retrieval.Choose it when indexed code retrieval is the main requirement. Its README lists several embedding providers and Milvus or Zilliz Cloud; OpenAI credentials belong to its documented quick start, rather than every deployment.
Graphify gh↗A tool that builds a persisted knowledge graph and supports query, path and explain commands.Choose it when you want to inspect relationships through a stored graph. Its README says code parsing runs locally with tree-sitter; documents and media have separate processing requirements.

Sources

  1. Serena README
  2. Serena language support guide
  3. Serena MCP client guide
  4. Serena license documentation
  5. Serena v1.7.0 release
  6. Serena open issues and pull requests

More ai tools reviews

pr-agent · agent-sprite-forge · KiroCrew · Orkas · hypit · Paradev · the whole board →