osfeed.dev
Projects/oraios / serena

Serena

Semantic code navigation and editing tools for coding agents

Get it on GitHub
Unclaimed

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.

Are you @oraios?Claim it, and your coding agent keeps it current with each release
v1.7.0 · 61 things you can do 47 changes to know before upgrading
Follow GitHub

Connect a coding agent to your projects to find symbols and references, edit code, and retain project knowledge between sessions.

What you can do with Serena

Find named symbols, file outlines and references across a codebase.

Present at v0.1.4
Good to know

Requires a supported language server; results depend on its language support.

Replace a symbol definition or insert code before or after it.

Present at v0.1.4
Good to know

Requires supported language analysis; generated edits still need review.

Search project files with regular expressions and read or replace file content.

Present at v0.1.4
Good to know

Tool availability depends on context; regex replacement is excluded from the Codex and IDE contexts by default.

Save project knowledge in memory files and read it in later conversations.

Present at v0.1.4
Good to know

The agent chooses which memories to read; files are stored in the project's memory directory.

Choose contexts, modes and enabled tools for a coding workflow.

Present at v0.1.4
Good to know

Configuration is YAML-based and may be global, per-project or per-client.

Inspect session logs and tool usage through a local web dashboard.

Present at v0.1.4
Good to know

Remote access requires configuring the listen address and explicitly allowing the hostname.

Connect an LLM client to project navigation, editing and optional shell tools through MCP.

Present at v0.1.4
Good to know

Requires an LLM; shell execution is optional and context-dependent.

Navigate and edit code in a project containing multiple programming languages.

Since v1.0.0
Good to know

Auto-detection enables only the most prominent language; add others in project configuration or the dashboard.

Show all 61

Query code in other projects without changing the active project.

Since v1.0.0
Good to know

LSP symbolic queries start project servers; JetBrains queries require open IDE projects.

Rename a symbol across its codebase.

Since v1.0.0
Good to know

Requires rename support in the selected language server.

Navigate and refactor code using a JetBrains IDE's analysis.

Since v1.0.0
Good to know

Requires the separate Serena JetBrains plugin and a supported IDE; Rider and CLion are unsupported.

Navigate symbols in Lean 4 code.

Since v1.0.0
Good to know

Requires lean and lake installed via elan.

Navigate symbols in OCaml code.

Since v1.0.0
Good to know

Requires opam and ocaml-lsp-server; cross-file references require OCaml 5.2+.

Navigate symbols in Fortran code.

Since v1.0.0
Good to know

Requires fortls.

Navigate symbols in Julia code.

Since v1.0.0
Good to know

Uses LanguageServer.jl.

Navigate symbols in Haskell code.

Since v1.0.0
Good to know

Requires HLS, discovered through ghcup, stack or PATH; supports Stack and Cabal.

Navigate symbols in Scala code.

Since v1.0.0
Good to know

Uses Metals and requires manual setup.

Navigate symbols in F# code.

Since v1.0.0
Good to know

Uses FsAutoComplete/Ionide.

Navigate symbols in Elm code.

Since v1.0.0
Good to know

Requires the Elm compiler.

Navigate symbols in Perl code.

Since v1.0.0
Good to know

Uses Perl::LanguageServer for .pl, .pm and .t files.

Navigate symbols in AL code.

Since v1.0.0
Good to know

Requires the VS Code AL extension for Business Central.

Navigate symbols in R code.

Since v1.0.0
Good to know

Requires the R languageserver package.

Navigate symbols in Zig code.

Since v1.0.0
Good to know

Uses ZLS; cross-file references may not fully work on Windows.

Navigate symbols in Lua code.

Since v1.0.0
Good to know

Uses lua-language-server.

Navigate symbols in Nix code.

Since v1.0.0
Good to know

Requires nixd; Windows is unsupported.

Navigate symbols in TOML code.

Since v1.0.0
Good to know

Uses Taplo with automatic binary download.

Navigate symbols in PowerShell code.

Since v1.0.0
Good to know

Requires pwsh on PATH; reference support is within-file.

Navigate symbols in MATLAB code.

Since v1.0.0
Good to know

Requires MATLAB R2021b+ and Node.js; configure MATLAB_PATH or matlab_path.

Navigate symbols in Pascal code.

Since v1.0.0
Good to know

Requires Pascal Language Server.

Navigate symbols in Solidity code.

Since v1.0.0
Good to know

Language server is automatically installed through npm.

Initialize Serena and register it with supported coding clients from the command line.

Since v1.1.2
Good to know

Automatic setup is available only for supported clients.

Use client hooks to activate projects and integrate Serena into coding sessions.

Since v1.1.2
Good to know

Requires client-specific hook configuration.

Navigate symbols in Haxe code.

Since v1.1.2
Good to know

Requires Haxe 3.4.0+ and Node.js; configure or discover the Haxe language server.

Navigate symbols in Crystal code.

Since v1.1.2
Good to know

Requires the Crystalline language server.

Navigate symbols, references and definitions in mIRC scripts.

Since v1.1.2
Good to know

Uses Serena's custom mSL language server.

Set breakpoints, inspect variables and control program execution through the IDE debugger.

Since v1.2.0
Good to know

Requires the JetBrains backend and Serena plugin.

Find symbol declarations and implementations of interfaces or abstract methods.

Since v1.5.1
Good to know

Availability depends on the language server.

Retrieve errors and warnings for a file or symbol.

Since v1.5.1
Good to know

Requires a language server that supplies diagnostics.

List IDE inspections and run them on a file.

Since v1.5.1
Good to know

Requires the JetBrains backend and Serena plugin.

Navigate symbols in Svelte components and their TypeScript or JavaScript code.

Since v1.5.1
Good to know

Requires npm; the Svelte server subsumes TypeScript/JavaScript support.

Navigate symbols in Ada and SPARK code.

Since v1.5.1
Good to know

ALS binaries download automatically for supported Linux, macOS and Windows architectures.

Navigate symbols in 1C and OneScript code.

Since v1.5.1
Good to know

Requires BSL Language Server.

Navigate symbols in Godot GDScript projects.

Since v1.5.1
Good to know

Requires the Godot editor's TCP language server on port 6008; initial workspace scans can be slow.

Navigate symbols in CUE files.

Since v1.5.1
Good to know

Requires the official cue CLI with its `cue lsp` mode.

Use an existing upstream JDTLS installation without downloading Serena's bundled Java tooling.

Since v1.5.1
Good to know

Set `jdtls_path` and `lombok_path`; requires system JDK 21+.

Preview and apply literal or regex replacements across multiple files.

Since v1.6.1
Good to know

Dry runs expose occurrence IDs; selected or guarded replacements reject stale IDs or unexpected match counts.

Navigate symbols in QML files.

Since v1.6.1
Good to know

Requires Qt 6 with qmlls or qmlls6 on PATH.

Run a project preparation command before language analysis starts.

Since v1.6.1
Good to know

Requires a trusted project; failures and timeouts are logged without aborting activation.

Connect Grok Build to Serena with a dedicated context, setup command and hooks.

Since v1.7.0
Good to know

Requires Grok Build and client-specific hook configuration.

Navigate symbols in Gleam code.

Since v1.7.0
Good to know

Requires the Gleam compiler's bundled gleam lsp.

Navigate symbols in Nextflow projects.

Since v1.7.0
Good to know

Requires Java 17+; the language-server JAR downloads automatically.

Inspect symbols and diagnostics in Wolfram Language files.

Since v1.7.0
Good to know

Requires Mathematica 13.0+ or Wolfram Engine 12.1+ and LSPServer; references are within-file.

Navigate symbols in Groovy code.

ExperimentalSince v1.0.0
Good to know

Partial support; requires a user-provided language-server JAR.

Navigate symbols in YAML code.

ExperimentalSince v1.0.0
Good to know

Uses yaml-language-server; experimental support.

Navigate symbols in Erlang code.

ExperimentalSince v1.0.0
Good to know

Uses archived erlang_ls; may hang or be slow.

Navigate JSON using a JSON language server.

ExperimentalSince v1.2.0
Good to know

Uses vscode-json-languageserver; experimental support.

Navigate between Angular templates and component classes.

ExperimentalSince v1.5.1
Good to know

Requires Node.js, npm and @angular/core installed in the project; experimental.

Inspect symbols for HTML elements and IDs.

ExperimentalSince v1.5.1
Good to know

Experimental; cross-file references are not meaningful for HTML.

Navigate Sass definitions and references and inspect SCSS, Sass or CSS symbols.

ExperimentalSince v1.5.1
Good to know

Uses some-sass-language-server; experimental support.

Navigate symbols in LaTeX documents.

ExperimentalSince v1.6.1
Good to know

Uses texlab; experimental support.

Navigate Deno code with its module imports and built-in globals understood.

ExperimentalSince v1.7.0
Good to know

Experimental; explicitly select deno and install the Deno CLI on PATH. It is not auto-detected.

Before you upgrade Serena

Newest first
v1.7.0

Project `languages` is renamed to `language_servers`; existing configurations migrate automatically. `ls_priorities` controls language-server selection during project creation; Python can use `python_basedpyright`.

Behavior changedAffects: Project configuration users. Users customizing automatic language-server selection.
Read the evidence
v1.7.0

Explicit `read_file`, `create_text_file` and `replace_content` calls can access ignored files; traversal tools expose `skip_ignored_files`.

Behavior changedAffects: Users relying on ignored paths to constrain file tools.
Read the evidence
v1.7.0

macOS now uses the `tray_manager` dashboard interface by default.

Behavior changedAffects: macOS users who have not chosen a dashboard interface.
Read the evidence
Show 44 older
v1.7.0

Handle exit code 1 from `serena project health-check` on failure; an empty `find_symbol` result now fails the check.

Action requiredAffects: Scripts and CI invoking the health-check command.
Read the evidence
v1.7.0

Scala build imports are now answered automatically; `ls_specific_settings.scala.auto_import_build: false` opts out.

Behavior changedAffects: Scala users; multiple-build choices are still dismissed.
Read the evidence
v1.7.0

Java `intellicode_version`, `intellicode_xmx` and `intellicode_xms` remain accepted but are ignored. Rust disables rust-analyzer cache priming and Cargo autoreload while preserving diagnostics.

Behavior changedAffects: Java configurations using retired IntelliCode settings. Rust projects.
Read the evidence
v1.7.0

Prompt templates now run in a sandbox and can embed memory contents with `embed_memory`.

Behavior changedAffects: Users customizing project prompts and mode templates.
Read the evidence
v1.7.0

Wildcard-only symbol searches are disallowed; file overview requests are delegated to the overview tool.

Behavior changedAffects: JetBrains symbol-tool clients.
Read the evidence
v1.6.1

Add intended project roots to global `trusted_project_path_patterns` before relying on project-level `ls_specific_settings` or `activation_command`.

Action requiredAffects: Projects defining language-server settings or activation commands locally.
Read the evidence
v1.6.1

Tool-call failures now surface as MCP protocol errors; structured output can be set per context and is disabled for Claude Code.

Behavior changedAffects: Clients interpreting tool results.
Read the evidence
v1.6.1

Use relative memory names without empty path segments; absolute names and empty segments are now rejected.

Action requiredAffects: Users with absolute or malformed memory names.
Read the evidence
v1.6.1

Svelte's companion TypeScript server now reports readiness or indexing timeouts as failures instead of returning partial results.

Behavior changedAffects: Svelte projects; timeouts are configurable.
Read the evidence
v1.5.1

Replace project-level `base_modes` with `added_modes` to add modes; project configurations can no longer override base modes.

Action requiredAffects: Projects setting `base_modes` in `project.yml`.
Read the evidence
v1.5.1

Java symbol tools include Lombok-generated methods by default; `lombok_show_generated` can disable them.

Behavior changedAffects: Java projects using Lombok.
Read the evidence
v1.5.1

TypeScript can resolve cross-package references with `additional_workspace_folders`.

Behavior changedAffects: TypeScript projects spanning packages.
Read the evidence
v1.5.1

References use `mem:<name>` and update on rename; `serena memories` can list, read, write and check references. Onboarding asks whether to proceed and seeds a memory-maintenance entry; a global entry takes precedence.

Behavior changed
Read the evidence
v1.5.1

Remove calls and tool-list entries for `check_onboarding_performed`; onboarding status is supplied in the project activation message.

Action requiredAffects: Custom clients or configurations using the deleted tool.
Read the evidence
v1.2.0

Choose browser, native app with tray, or multi-instance tray manager through `web_dashboard_interface`.

Behavior changedAffects: Dashboard users; available interfaces depend on the OS.
Read the evidence
v1.2.0

MCP connection provides a short bootstrap; the full manual is loaded on demand with `initial_instructions`.

Behavior changedAffects: MCP clients.
Read the evidence
v1.2.0

Adjust consumers of `search_for_pattern` results to use zero-based line numbers instead of one-based numbers.

Action requiredAffects: Scripts or clients interpreting pattern-search line numbers.
Read the evidence
v1.2.0

Rename memories containing `..`; these names are now rejected to prevent access outside memory directories.

Action requiredAffects: Users with memory names containing `..`.
Read the evidence
v1.2.0

`insert_after_symbol` now rejects assignments and similar symbols whose ranges cannot be determined reliably.

Behavior changedAffects: Clients inserting after assignments.
Read the evidence
v1.2.0

`query_project` accepts a project root, and `list_queryable_projects` returns names and roots.

Behavior changedAffects: Users querying other projects.
Read the evidence
v1.1.2

Single-project contexts now apply mode-defined tool exclusions, reducing exposed tools.

Behavior changedAffects: Users of single-project contexts.
Read the evidence
v1.0.0

Memories can now be shared globally; `read_only_memory_patterns` protects entries and `ignored_memory_patterns` hides them.

Behavior changedAffects: Users sharing or filtering project knowledge.
Read the evidence
v1.0.0

The dashboard now supports viewing configuration, cancelling executions, editing memories and downloading logs.

Behavior changedAffects: Dashboard users.
Read the evidence
v1.0.0

Replace calls and custom tool lists naming `replace_regex` with `replace_content`; it supports literal and regex matching without escaping replacement text.

Action requiredAffects: Custom integrations and configurations using `replace_regex`.
Read the evidence
v1.0.0

Overloaded symbol name paths now contain indexes such as `myOverloadedFunction[2]`; symbol results include hover and documentation information.

Behavior changedAffects: Users retrieving overloaded symbols.
Read the evidence
Serena release history 8
v1.7.0

Use Serena with Grok Build through its dedicated context, setup and hooks.

Details

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+.

Added: Connect Grok Build to Serena with a dedicated conte…Added: Navigate symbols in Gleam code.Added: Navigate symbols in Nextflow projects.Added: Inspect symbols and diagnostics in Wolfram Language…Added: Navigate Deno code with its module imports and buil…Behavior changed: Choose contexts, modes and enabled tools for a codi…Behavior changed: Search project files with regular expressions and r…Behavior changed: Inspect session logs and tool usage through a local…Action required: Use client hooks to activate projects and integrate…Action required: Connect an LLM client to project navigation, editin…Now works: Connect an LLM client to project navigation, editin…Now works: Retrieve errors and warnings for a file or symbol.Now works: Navigate symbols in Erlang code.Now works: Navigate symbols in Svelte components and their Typ…Now works: Navigate symbols in Scala code.Behavior changed: Navigate symbols in Scala code.Now works: Find named symbols, file outlines and references ac…Now works: Search project files with regular expressions and r…Behavior changed: Find named symbols, file outlines and references ac…Behavior changed: Connect an LLM client to project navigation, editin…Behavior changed: Choose contexts, modes and enabled tools for a codi…Behavior changed: Navigate and refactor code using a JetBrains IDE's…

Seeded by @iluxav with Codex

Read the evidence
v1.6.1
with v1.6.0

Preview and apply text replacements across several files in one operation.

Details

`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+.

Added: Preview and apply literal or regex replacements acr…Added: Navigate symbols in LaTeX documents.Added: Navigate symbols in QML files.Added: Run a project preparation command before language a…Action required: Choose contexts, modes and enabled tools for a codi…Behavior changed / inferred: Navigate and edit code in a project containing mult…Limit lifted: Inspect session logs and tool usage through a local…Now works: Connect an LLM client to project navigation, editin…Now works: Choose contexts, modes and enabled tools for a codi…Behavior changed: Connect an LLM client to project navigation, editin…Behavior changed: Query code in other projects without changing the a…Behavior changed: Find named symbols, file outlines and references ac…Behavior changed: Navigate and refactor code using a JetBrains IDE's…Now works: List IDE inspections and run them on a file.Action required: Save project knowledge in memory files and read it…Now works: Find named symbols, file outlines and references ac…Now works: Replace a symbol definition or insert code before o…Now works: Navigate symbols in Erlang code.Now works: Search project files with regular expressions and r…Now works: Navigate symbols in Julia code.Behavior changed: Navigate symbols in Svelte components and their Typ…

Seeded by @iluxav with Codex

Read the evidence
v1.5.3
with v1.5.2

Start Serena directly with `uvx serena-agent`.

Details

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.

Behavior changed: Connect an LLM client to project navigation, editin…Behavior changed: Find named symbols, file outlines and references ac…Action required / inferred: Inspect session logs and tool usage through a local…

Seeded by @iluxav with Codex

Read the evidence
v1.5.1
with v1.3.0, v1.5.0

Find declarations, implementations and diagnostics while exploring a codebase.

Details

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.

Added: Find symbol declarations and implementations of int…Added: Retrieve errors and warnings for a file or symbol.Added: List IDE inspections and run them on a file.Added: Navigate symbols in Svelte components and their Typ…Added: Navigate symbols in Ada and SPARK code.Added: Navigate between Angular templates and component cl…Added: Inspect symbols for HTML elements and IDs.Added: Navigate Sass definitions and references and inspec…Added: Navigate symbols in 1C and OneScript code.Added: Navigate symbols in Godot GDScript projects.Added: Navigate symbols in CUE files.Action required: Choose contexts, modes and enabled tools for a codi…Behavior changed: Choose contexts, modes and enabled tools for a codi…Now works: Connect an LLM client to project navigation, editin…Now works: Find named symbols, file outlines and references ac…Behavior changed: Find named symbols, file outlines and references ac…Added: Use an existing upstream JDTLS installation without…Behavior changed: Navigate and edit code in a project containing mult…Behavior changed: Save project knowledge in memory files and read it…Now works: Save project knowledge in memory files and read it…Action required: Save project knowledge in memory files and read it…Behavior changed: Search project files with regular expressions and r…

Seeded by @iluxav with Codex

Read the evidence
v1.2.0

Debug a running program through the JetBrains IDE from a coding agent.

Details

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.

Added: Set breakpoints, inspect variables and control prog…Added: Navigate JSON using a JSON language server.Behavior changed: Inspect session logs and tool usage through a local…Now works: Connect an LLM client to project navigation, editin…Behavior changed: Connect an LLM client to project navigation, editin…Action required: Search project files with regular expressions and r…Action required: Save project knowledge in memory files and read it…Behavior changed: Replace a symbol definition or insert code before o…Now works: Rename a symbol across its codebase.Now works: Navigate symbols in Lean 4 code.Now works: Find named symbols, file outlines and references ac…Behavior changed: Query code in other projects without changing the a…

Seeded by @iluxav with Codex

Read the evidence
v1.1.2
with v1.1.0, v1.1.1

Set up Serena for supported coding clients with its initialization and setup commands.

Details

`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.

Added: Initialize Serena and register it with supported co…Added: Use client hooks to activate projects and integrate…Added: Navigate symbols in Haxe code.Added: Navigate symbols in Crystal code.Added: Navigate symbols, references and definitions in mIR…Action required / inferred: Connect an LLM client to project navigation, editin…Action required / inferred: Choose contexts, modes and enabled tools for a codi…Behavior changed: Connect an LLM client to project navigation, editin…Behavior changed: Choose contexts, modes and enabled tools for a codi…Now works: Replace a symbol definition or insert code before o…Now works: Find named symbols, file outlines and references ac…Behavior changed: Navigate and refactor code using a JetBrains IDE's…

Seeded by @iluxav with Codex

Read the evidence
v1.0.0

Navigate projects that contain several programming languages.

Details

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.

Added: Navigate and edit code in a project containing mult…Added: Query code in other projects without changing the a…Added: Rename a symbol across its codebase.Added: Navigate and refactor code using a JetBrains IDE's…Behavior changed: Save project knowledge in memory files and read it…Behavior changed: Inspect session logs and tool usage through a local…Behavior changed / inferred: Choose contexts, modes and enabled tools for a codi…Action required: Search project files with regular expressions and r…Action required: Find named symbols, file outlines and references ac…Behavior changed: Find named symbols, file outlines and references ac…Behavior changed / inferred: Connect an LLM client to project navigation, editin…Behavior changed / inferred: Search project files with regular expressions and r…Added: Navigate symbols in Lean 4 code.Added: Navigate symbols in OCaml code.Added: Navigate symbols in Fortran code.Added: Navigate symbols in Groovy code.Added: Navigate symbols in Julia code.Added: Navigate symbols in Haskell code.Added: Navigate symbols in Scala code.Added: Navigate symbols in F# code.Added: Navigate symbols in Elm code.Added: Navigate symbols in Perl code.Added: Navigate symbols in AL code.Added: Navigate symbols in R code.Added: Navigate symbols in Zig code.Added: Navigate symbols in Lua code.Added: Navigate symbols in Nix code.Added: Navigate symbols in YAML code.Added: Navigate symbols in TOML code.Added: Navigate symbols in Erlang code.Added: Navigate symbols in PowerShell code.Added: Navigate symbols in MATLAB code.Added: Navigate symbols in Pascal code.Added: Navigate symbols in Solidity code.

Seeded by @iluxav with Codex

Read the evidence
v0.1.4
Starting point

Let a coding agent locate and edit named symbols in an existing project.

Details

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.

Added: Find named symbols, file outlines and references ac…Added: Replace a symbol definition or insert code before o…Added: Search project files with regular expressions and r…Added: Save project knowledge in memory files and read it…Added: Choose contexts, modes and enabled tools for a codi…Added: Inspect session logs and tool usage through a local…Added: Connect an LLM client to project navigation, editin…

Seeded by @iluxav with Codex

Read the evidence