Find named symbols, file outlines and references across a codebase.
Good to know
Requires a supported language server; results depend on its language support.
Written by @iluxav from the project's code and releases, not by its maintainers. Last updated for v1.7.0 (2026-08-09), so it may lag behind newer releases.
Connect a coding agent to your projects to find symbols and references, edit code, and retain project knowledge between sessions.
Requires a supported language server; results depend on its language support.
Requires supported language analysis; generated edits still need review.
Tool availability depends on context; regex replacement is excluded from the Codex and IDE contexts by default.
The agent chooses which memories to read; files are stored in the project's memory directory.
Configuration is YAML-based and may be global, per-project or per-client.
Remote access requires configuring the listen address and explicitly allowing the hostname.
Requires an LLM; shell execution is optional and context-dependent.
Auto-detection enables only the most prominent language; add others in project configuration or the dashboard.
LSP symbolic queries start project servers; JetBrains queries require open IDE projects.
Requires rename support in the selected language server.
Requires the separate Serena JetBrains plugin and a supported IDE; Rider and CLion are unsupported.
Requires lean and lake installed via elan.
Requires opam and ocaml-lsp-server; cross-file references require OCaml 5.2+.
Requires fortls.
Uses LanguageServer.jl.
Requires HLS, discovered through ghcup, stack or PATH; supports Stack and Cabal.
Uses Metals and requires manual setup.
Uses FsAutoComplete/Ionide.
Requires the Elm compiler.
Uses Perl::LanguageServer for .pl, .pm and .t files.
Requires the VS Code AL extension for Business Central.
Requires the R languageserver package.
Uses ZLS; cross-file references may not fully work on Windows.
Uses lua-language-server.
Requires nixd; Windows is unsupported.
Uses Taplo with automatic binary download.
Requires pwsh on PATH; reference support is within-file.
Requires MATLAB R2021b+ and Node.js; configure MATLAB_PATH or matlab_path.
Requires Pascal Language Server.
Language server is automatically installed through npm.
Automatic setup is available only for supported clients.
Requires client-specific hook configuration.
Requires Haxe 3.4.0+ and Node.js; configure or discover the Haxe language server.
Requires the Crystalline language server.
Uses Serena's custom mSL language server.
Requires the JetBrains backend and Serena plugin.
Availability depends on the language server.
Requires a language server that supplies diagnostics.
Requires the JetBrains backend and Serena plugin.
Requires npm; the Svelte server subsumes TypeScript/JavaScript support.
ALS binaries download automatically for supported Linux, macOS and Windows architectures.
Requires BSL Language Server.
Requires the Godot editor's TCP language server on port 6008; initial workspace scans can be slow.
Requires the official cue CLI with its `cue lsp` mode.
Set `jdtls_path` and `lombok_path`; requires system JDK 21+.
Dry runs expose occurrence IDs; selected or guarded replacements reject stale IDs or unexpected match counts.
Requires Qt 6 with qmlls or qmlls6 on PATH.
Requires a trusted project; failures and timeouts are logged without aborting activation.
Requires Grok Build and client-specific hook configuration.
Requires the Gleam compiler's bundled gleam lsp.
Requires Java 17+; the language-server JAR downloads automatically.
Requires Mathematica 13.0+ or Wolfram Engine 12.1+ and LSPServer; references are within-file.
Partial support; requires a user-provided language-server JAR.
Uses yaml-language-server; experimental support.
Uses archived erlang_ls; may hang or be slow.
Uses vscode-json-languageserver; experimental support.
Requires Node.js, npm and @angular/core installed in the project; experimental.
Experimental; cross-file references are not meaningful for HTML.
Uses some-sass-language-server; experimental support.
Uses texlab; experimental support.
Experimental; explicitly select deno and install the Deno CLI on PATH. It is not auto-detected.
New language servers and client integration expand project support. Configuration naming, ignored-file access, health-check exit codes, Codex cleanup hooks and macOS dashboard defaults change.
Also: Add Gleam, Nextflow, Wolfram and experimental Deno support; recover after timeouts and surface health-check failures.
Serena v1.7.0 via uv with Python 3.11–3.14. Language-specific runtimes apply; Codex SessionEnd hooks require Codex 0.145.0+.
Seeded by @iluxav with Codex
`replace_in_files` adds dry-run previews and occurrence selection. Project settings gain trust controls and workspace options; v1.6.1 fixes stale external edits and Go declaration replacements.
Also: Trust project-specific settings explicitly, restrict indexing folders, and recover accurate references after external edits.
Serena v1.6.0–v1.6.1 via uv. Some JetBrains dependency-file operations require plugin 2023.3.3+.
Seeded by @iluxav with Codex
v1.5.2 adds the `serena-agent` entry point, installs Python and Fortran language servers on demand, and adds dashboard host validation. v1.5.3 adds registry metadata only.
Serena v1.5.2–v1.5.3 via uv; language-server installation may need downloads.
Seeded by @iluxav with Codex
New LSP tools expose declarations, implementations and diagnostics, while memory references use `mem:<name>`. Project mode settings change and the separate onboarding-check tool is removed.
Also: Link project memories, inspect code with JetBrains, and add support for web, Ada, Godot and CUE projects.
Serena v1.3.0–v1.5.1; uv and applicable language dependencies. The v1.5.1 hotfix restores onboarding.
Seeded by @iluxav with Codex
The JetBrains `debug` tool controls breakpoints, variables, expression evaluation and execution. Pattern-search line numbers and memory-name validation change.
Also: Use per-session HTTP prompts, choose a dashboard interface, and navigate JSON.
Serena v1.2.0; install serena-agent with uv. Language-specific dependencies and backend requirements still apply.
Seeded by @iluxav with Codex
`serena init`, `serena setup` and `serena-hooks` provide setup and client integration. Legacy entry points and dynamic mode switching are removed.
Also: Add client hooks, disable usage reporting, and navigate Haxe, Crystal or mSL code.
Serena v1.1.2; install serena-agent with uv. Language-specific dependencies and backend requirements still apply.
Seeded by @iluxav with Codex
Project configuration accepts multiple languages and local overrides. New tools query other projects and rename symbols; `replace_content` replaces `replace_regex`.
Also: Query other projects, rename symbols, use a JetBrains backend and share memories across projects.
Serena v1.0.0 via uv; Python 3.11–3.14. JetBrains capabilities require the separate plugin and a supported IDE.
Seeded by @iluxav with Codex
This baseline records capabilities available before the release-history window: symbol lookup, reference search, symbolic editing, file tools, project memories and configurable MCP integration.
Serena v0.1.4; uv, Python 3.11 and an LLM client. Language-specific dependencies may be needed.
Seeded by @iluxav with Codex