{"id":26995062,"url":"https://github.com/oraios/serena","last_synced_at":"2026-04-03T16:01:37.335Z","repository":{"id":285652685,"uuid":"953683578","full_name":"oraios/serena","owner":"oraios","description":"A powerful coding agent toolkit providing semantic retrieval and editing capabilities (MCP server \u0026 other integrations)","archived":false,"fork":false,"pushed_at":"2026-03-31T09:35:39.000Z","size":8164,"stargazers_count":22300,"open_issues_count":94,"forks_count":1486,"subscribers_count":78,"default_branch":"main","last_synced_at":"2026-03-31T10:26:45.716Z","etag":null,"topics":["agent","ai","ai-coding","claude","claude-code","language-server","llms","mcp-server","programming","vibe-coding"],"latest_commit_sha":null,"homepage":"https://oraios.github.io/serena","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/oraios.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"oraios"}},"created_at":"2025-03-23T22:35:24.000Z","updated_at":"2026-03-31T09:55:04.000Z","dependencies_parsed_at":"2026-03-15T00:06:00.865Z","dependency_job_id":null,"html_url":"https://github.com/oraios/serena","commit_stats":null,"previous_names":["oraios/serena"],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/oraios/serena","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oraios%2Fserena","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oraios%2Fserena/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oraios%2Fserena/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oraios%2Fserena/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/oraios","download_url":"https://codeload.github.com/oraios/serena/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oraios%2Fserena/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31362680,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-03T15:19:21.178Z","status":"ssl_error","status_checked_at":"2026-04-03T15:19:20.670Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agent","ai","ai-coding","claude","claude-code","language-server","llms","mcp-server","programming","vibe-coding"],"created_at":"2025-04-04T01:01:45.269Z","updated_at":"2026-04-03T16:01:37.299Z","avatar_url":"https://github.com/oraios.png","language":"Python","readme":"\u003cp align=\"center\" style=\"text-align:center;\"\u003e\n  \u003cimg src=\"resources/serena-logo.svg#gh-light-mode-only\" style=\"width:500px\"\u003e\n  \u003cimg src=\"resources/serena-logo-dark-mode.svg#gh-dark-mode-only\" style=\"width:500px\"\u003e\n\u003c/p\u003e\n\n\u003ch3 align=\"center\"\u003e\n    Serena is the IDE for your coding agent.\n\u003c/h3\u003e\n\n* Serena provides essential **semantic code retrieval, editing and refactoring tools** that are akin to an IDE's capabilities,\n  operating at the symbol level and exploiting relational structure.\n* It integrates with any client/LLM via the model context protocol (**MCP**).\n\nSerena's **agent-first tool design** involves robust high-level abstractions, distinguishing it from\napproaches that rely on low-level concepts like line numbers or primitive search patterns.\n\nPractically, this means that your agent operates **faster, more efficiently and more reliably**, especially in larger and\nmore complex codebases.\n\n## Features\n\nSerena supports two code intelligence backends:\n\n* **Language servers** implementing the language server protocol (LSP) — the free/open-source alternative.\n* **The Serena JetBrains Plugin**, which leverages the capabilities of your JetBrains IDE.\n\nLanguage Servers, while very powerful, have inherent limitations.\nThe JetBrains variant is the more advanced solution, as detailed below. It is also more memory-efficient, especially in\nmulti-agent scenarios.\n\n### Language Support\n\n#### Language Servers\n\nWhen using Serena's language server backend, we provide **support for over 40 programming languages**, including\nAL, Ansible, Bash, C#, C/C++, Clojure, Dart, Elixir, Elm, Erlang, Fortran, F# (currently with some bugs), GLSL, Go, Groovy (partial support), Haskell, HLSL, Java, Javascript, Julia, Kotlin, Lean 4, Lua, Luau, Markdown, MATLAB, Nix, OCaml, Perl, PHP, PowerShell, Python, R, Ruby, Rust, Scala, Solidity, Swift, TOML, TypeScript, WGSL, YAML, and Zig.\n\n#### The Serena JetBrains Plugin\n\nThe [Serena JetBrains Plugin](https://plugins.jetbrains.com/plugin/28946-serena/)\nleverages the powerful code analysis capabilities of your JetBrains IDE.\nThe plugin naturally supports all programming languages and frameworks that are supported by JetBrains IDEs,\nincluding IntelliJ IDEA, PyCharm, Android Studio, WebStorm, PhpStorm, RubyMine, GoLand, and potentially others (Rider and CLion are unsupported though).\n\n\u003ca href=\"https://plugins.jetbrains.com/plugin/28946-serena/\"\u003e\u003cimg src=\"docs/_static/images/jetbrains-marketplace-button.png\"\u003e\u003c/a\u003e\n\nSee our [documentation page](https://oraios.github.io/serena/02-usage/025_jetbrains_plugin.html) for further details and instructions on how to apply the plugin.\n\n### Retrieval\n\nSerena's retrieval tools allow agents to explore codebases at the symbol level, understanding structure and relationships\nwithout reading entire files.\n\n| Capability                       | Language Servers | JetBrains Plugin |\n|----------------------------------|------------------|------------------|\n| find symbol                      | yes              | yes              |\n| symbol overview (file outline)   | yes              | yes              |\n| find referencing symbols         | yes              | yes              |\n| search in project dependencies   | --               | yes              |\n| type hierarchy                   | --               | yes              |\n| find declaration                 | --               | yes              |\n| find implementations             | --               | yes              |\n| query external projects          | yes              | yes              |\n\n### Refactoring\n\nWithout precise refactoring tools, agents are forced to resort to unreliable and expensive search and replace operations.\n\n| Capability                                | Language Servers   | JetBrains Plugin                  |\n|-------------------------------------------|--------------------|-----------------------------------|\n| rename                                    | yes (only symbols) | yes (symbols, files, directories) |\n| move (symbol, file, directory)            | --                 | yes                               |\n| inline                                    | --                 | yes                               |\n| propagate deletions (remove unused code)  | --                 | yes                               |\n\n### Symbolic Editing\n\nSerena's symbolic editing tools are less error-prone and much more token-efficient than typical alternatives.\n\n| Capability             | Language Servers  | JetBrains Plugin |\n|------------------------|-------------------|------------------|\n| replace symbol body    | yes               | yes              |\n| insert after symbol    | yes               | yes              |\n| insert before symbol   | yes               | yes              |\n| safe delete            | yes               | yes              |\n\n### Basic Features\n\nBeyond its semantic capabilities, Serena includes a set of basic utilities for completeness.\nWhen Serena is used inside an agentic harness such as Claude Code or Codex, these tools are typically disabled by default,\nsince the surrounding harness already provides overlapping file, search, and shell capabilities.\n\n- **`search_for_pattern`** – flexible regex search across the codebase \n- **`replace_content`** – agent-optimised regex-based and literal text replacement\n- **`list_dir` / `find_file`** – directory listing and file search\n- **`read_file`** – read files or file chunks\n- **`execute_shell_command`** – run shell commands (e.g. builds, tests, linters)\n\n### Memory Management\n\nA memory system is elemental to long-lived agent workflows, especially when knowledge is to be shared across\nsessions, users and projects.\nDespite its simplicity, we received positive feedback from many users who tend to combine Serena's memory management system with their\nagent's internal system (e.g., `AGENTS.md` files).\nIt can easily be disabled if you prefer to use something else.\n\n### Configurability\n\nActive tools, tool descriptions, prompts, language backend details and many other aspects of Serena\ncan be flexibly configured on a per-case basis by simply adjusting a few lines of YAML.\nTo achieve this, Serena offers multiple levels of (composable) configuration:\n\n* global configuration\n* MCP launch command (CLI) configuration\n* per-project configuration (with local overrides)\n* execution context-specific configuration (e.g. for particular clients)\n* dynamically composable configuration fragments (modes)\n\n## Serena in Action\n\n#### Demonstration 1: Efficient Operation in Claude Code\n\nA demonstration of Serena efficiently retrieving and editing code within Claude Code, thereby saving tokens and time. Efficient operations are not only useful for saving costs, but also for generally improving the generated code's quality. This effect may be less pronounced in very small projects, but often becomes of crucial importance in larger ones.\n\nhttps://github.com/user-attachments/assets/ab78ebe0-f77d-43cc-879a-cc399efefd87\n\n#### Demonstration 2: Serena in Claude Desktop\n\nA demonstration of Serena implementing a small feature for itself (a better log GUI) with Claude Desktop.\nNote how Serena's tools enable Claude to find and edit the right symbols.\n\nhttps://github.com/user-attachments/assets/6eaa9aa1-610d-4723-a2d6-bf1e487ba753\n\n## Quick Start\n\n**Prerequisites**. Serena is managed by *uv*. If you don’t already have it, you need to [install uv](https://docs.astral.sh/uv/getting-started/installation/) before proceeding.\n\n\u003e [!NOTE]\n\u003e Some language servers require additional dependencies to be installed; see the [Language Support](https://oraios.github.io/serena/01-about/020_programming-languages.html) page for details.\n\n**Starting the MCP Server**. The easiest way to start the Serena MCP server is by running the latest version from GitHub using uvx.\nIssue this command to see available options:\n\n```bash\nuvx -p 3.13 --from git+https://github.com/oraios/serena serena start-mcp-server --help\n```\n\n**Configuring Your Client**. To connect Serena to your preferred MCP client, you typically need to [configure a launch command in your client](https://oraios.github.io/serena/02-usage/030_clients.html).\nFollow the link for specific instructions on how to set up Serena for Claude Code, Codex, Claude Desktop, MCP-enabled IDEs and other clients (such as local and web-based GUIs). \n\n\u003e [!TIP]\n\u003e While getting started quickly is easy, Serena is a powerful toolkit with many configuration options.\n\u003e We highly recommend reading through the [user guide](https://oraios.github.io/serena/02-usage/000_intro.html) to get the most out of Serena.\n\u003e \n\u003e Specifically, we recommend to read about ...\n\u003e   * [Serena's project-based workflow](https://oraios.github.io/serena/02-usage/040_workflow.html) and\n\u003e   * [configuring Serena](https://oraios.github.io/serena/02-usage/050_configuration.html).\n\n## User Guide\n\nPlease refer to the [user guide](https://oraios.github.io/serena/02-usage/000_intro.html) for detailed instructions on how to use Serena effectively.\n\n## Acknowledgements\n\nA significant part of Serena, especially support for various languages, was contributed by the open source community.\nWe are very grateful for the many contributors who made this possible and who played an important role in making Serena\nwhat it is today.\n\n","funding_links":["https://github.com/sponsors/oraios"],"categories":["MCP Servers \u0026 Tools","AI Agents","Python","HarmonyOS","CI/CD \u0026 DevOps Pipelines","Development Tools Mcp Servers","Claude Code Ecosystem","Agentic Programming","agent","Repos","📚 Projects (1974 total)","代码 Coding","context management","MCP Ecosystem","MCP 服务器精选列表","Developer \u0026 Coding Assistants","サーバー実装","Code Execution","Coding Agents","programming","Containerised MCP Servers","A01_文本生成_文本对话","MCP Servers \u0026 Integrations","📦 Other","MCP Servers","Productivity Tools","Resources","Code \u0026 Developer Tools","Ecosystem","Dev Tools (26)"],"sub_categories":["Security \u0026 Research","Code Assistants","Windows Manager","🤖 Coding Agents","Development \u0026 Code Tools","Frameworks and Tools","MCP Servers","collection","Servers","💻 开发与代码执行","Code Generation \u0026 Refactoring","🤖 \u003ca name=\"coding-agents\"\u003e\u003c/a\u003eコーディングエージェント","How to Submit","AI \u0026 Machine Learning","大语言对话模型及数据","Other IDEs","Software Development","MCP Servers \u0026 Integrations","🧰 Tools \u0026 Frameworks","Code and Development","Quick Setup with cc-safe-setup"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foraios%2Fserena","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foraios%2Fserena","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foraios%2Fserena/lists"}