[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-2292":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":23,"hasPages":25,"topics":26,"createdAt":10,"pushedAt":10,"updatedAt":39,"readmeContent":40,"aiSummary":41,"trendingCount":16,"starSnapshotCount":16,"syncStatus":42,"lastSyncTime":43,"discoverSource":44},2292,"serena","oraios\u002Fserena","oraios","A powerful MCP toolkit for coding, providing semantic retrieval and editing capabilities  - the IDE for your agent","https:\u002F\u002Foraios.github.io\u002Fserena",null,"Python",25242,1688,83,78,0,37,312,1150,201,44.68,"MIT License",false,"main",true,[27,28,29,30,31,32,33,34,35,36,37,38],"agent","ai","ai-coding","claude","claude-code","codex","ide","jetbrains","language-server","mcp-server","programming","vibe-coding","2026-06-12 02:00:39","\u003Cp align=\"center\" style=\"text-align:center;\">\n  \u003Cimg src=\"resources\u002Fserena-logo.svg#gh-light-mode-only\" style=\"width:500px\">\n  \u003Cimg src=\"resources\u002Fserena-logo-dark-mode.svg#gh-dark-mode-only\" style=\"width:500px\">\n\u003C\u002Fp>\n\n\u003Ch3 align=\"center\">\n    The IDE for Your Coding Agent\n\u003C\u002Fh3>\n\n\u003Cdiv align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fdiscord.com\u002Finvite\u002FcVUNQmnV4r\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fdiscord-join-5865F2?style=flat-square&labelColor=0a0e14&logo=discord&logoColor=5865F2\" alt=\"discord\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Foraios\u002Fserena\u002Fmain\u002FLICENSE\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-MIT-b0e8ff?style=flat-square&labelColor=0a0e14\" alt=\"license\">\u003C\u002Fa>\n\u003C\u002Fdiv>\n\u003Cbr>\n\n\n* Serena provides essential **semantic code retrieval, editing, refactoring and debugging 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\u002FLLM 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> [!IMPORTANT]\n> Do not install Serena via an MCP or plugin marketplace! They contain outdated and suboptimal installation commands. \n> Instead, follow our [Quick Start](#quick-start) instructions.\n\n## Quick Demo\n\nhttps:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F8d11646e-b80e-4723-b9d7-32d6101b5f58\n\n:tv: Longer video: [Introduction to Serena in 5 Minutes (YouTube)](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=5QN7gN1KYLA)\n\n## What Our \"End Users\" Say\n\nWhile it is humans who download and set up Serena, our end users are essentially AI agents.\nAs the ones actually applying Serena's tools, they are in the best position to evaluate Serena.\n\nWe crafted an unbiased evaluation prompt that leads the agent to perform ~20 routine coding tasks, \nrepresentative of everyday development work, \nin order to estimate the value added by Serena's tools when used alongside its own built-ins. \n\nHere's a one-sentence summary of what the agents had to say:\n\n**Opus 4.6 (high) in Claude Code on a large Python codebase:**\n> \"Serena's IDE-backed semantic tools are the single most impactful addition to my toolkit – cross-file renames, moves, and reference lookups that\nwould cost me 8–12 careful, error-prone steps collapse into one atomic call, and I would absolutely ask any developer I work with to set them up.\"\n\n**GPT 5.4 (high) in Codex CLI on a Java codebase:**\n> \"As a coding AI agent, I would ask my owner to add Serena because it gives me the missing IDE-level understanding of symbols, references, and\nrefactorings, turning fragile text surgery into calmer, faster, more confident code changes where semantics matter.\"\n\n**GPT 5.4 (medium) in Copilot CLI on a large, multi-language monorepo:**\n> \"As a coding agent, I’d absolutely ask my owner to add Serena because it makes me noticeably sharper and calmer on\nreal code – especially symbol-aware navigation, cross-file refactors, and monorepo dependency jumps – while I still lean\non built-ins for tiny text edits and non-code work.\"\n\nDifferent agents in different settings independently converge on the same verdict.\n\n_Give your agent the tools it has been asking for and add Serena MCP to your client!_\n\nSee our [documentation](https:\u002F\u002Foraios.github.io\u002Fserena\u002F04-evaluation\u002F000_evaluation-intro.html) for the full methodology and much more detailed evaluation results, or run your own evaluation on a project of your choice.\n \n\n## How Serena Works\n\nSerena provides the necessary [tools](https:\u002F\u002Foraios.github.io\u002Fserena\u002F01-about\u002F035_tools.html) for coding workflows, \nbut an LLM is required to do the actual work, orchestrating tool use.\n\nSerena can extend the functionality of your existing AI client via the **model context protocol (MCP)**.\nMost modern AI chat clients directly support MCP, including\n* terminal-based clients like Claude Code, Codex, OpenCode, or Gemini-CLI,\n* IDEs and IDE assistant plugins for VSCode, Cursor and JetBrains IDEs (Copilot, Junie, JetBrains AI Assistant, etc.),\n* desktop and web clients like Claude Desktop, Codex App, or OpenWebUI.\n\n\u003Cimg src=\"resources\u002Fserena-block-diagram.svg\">\n\n:tv: See also: [Introduction to Serena in 5 Minutes (YouTube)](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=5QN7gN1KYLA)\n\nTo connect the Serena MCP server to your client, you either\n  * provide the client with a launch command that allows it to start the MCP server, or\n  * start the Serena MCP server yourself in HTTP mode and provide the client with the URL.\n\nSee the [Quick Start](#quick-start) section below for information on how to get started.\n\n## Programming Language Support & Semantic Analysis Capabilities\n\nSerena provides a set of versatile code querying and editing functionalities\nbased on symbolic understanding of the code.\nEquipped with these capabilities, your agent discovers and edits code just like a seasoned developer\nmaking use of an IDE's capabilities would.\nSerena can efficiently find the right context and do the right thing even in very large and\ncomplex projects!\n\nThere are two alternative technologies powering these capabilities:\n\n* **Language servers** implementing the language server protocol (LSP) — the free\u002Fopen-source alternative \n  which is used by default.\n* **The Serena JetBrains Plugin**, which leverages the powerful code analysis and editing\n  capabilities of your JetBrains IDE (paid plugin; free trial available).\n\nYou can choose either of these backends depending on your preferences and requirements.\n\n### Language Servers\n\nSerena incorporates a powerful abstraction layer for the integration of language servers that implement the language server protocol (LSP). \nThe underlying language servers are typically open-source projects or at least freely available for use.\n\nWhen using Serena's language server backend, we provide **support for over 40 programming languages**, including\nAL, Angular, Ansible, Bash, C#, C\u002FC++, Clojure, Crystal, Dart, Elixir, Elm, Erlang, Fortran, F#, GLSL, Go, Groovy, Haskell, Haxe, HLSL, HTML, Java, JavaScript, JSON, Julia, Kotlin, Lean 4, Lua, Luau, Markdown, MATLAB, mSL, Nix, OCaml, Perl, PHP, PowerShell, Python, R, Ruby, Rust, Scala, SCSS \u002F Sass \u002F CSS, Solidity, Swift, TOML, TypeScript, WGSL, YAML, and Zig.\n\n### The Serena JetBrains Plugin\n\nThe paid Serena JetBrains Plugin (free trial available)\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:\u002F\u002Fplugins.jetbrains.com\u002Fplugin\u002F28946-serena\u002F\">\u003Cimg src=\"docs\u002F_static\u002Fimages\u002Fjetbrains-marketplace-button.png\">\u003C\u002Fa>\n\nSee our [documentation page](https:\u002F\u002Foraios.github.io\u002Fserena\u002F02-usage\u002F025_jetbrains_plugin.html) for further details and instructions on how to apply the plugin.\n\n## Features\n\nSerena provides a wide range of tools for efficient code retrieval, editing and refactoring, as well as \na memory system for long-lived agent workflows.\n\nGiven its large scope, Serena adapts to your needs by offering a multi-layered configuration system.\n\n\u003Cdetails>\n\u003Csummary>Details\u003C\u002Fsummary>\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*             | yes              |\n| find implementations             | yes**            | yes              |\n| query external projects          | yes              | yes              |\n| diagnostics\u002Finspections          | yes              | yes              |\n\n*: Will generally not work for declarations in external dependencies. \u003Cbr>\n**: Only available for some languages, limited by the language server functionality.\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### Interactive Debugging\n\nExclusive to the JetBrains plugin, Serena supports a highly general debugging tool,\nwhich allows an agent to set breakpoints, inspect variables, evaluate expressions and control execution flow \nvia a persistent REPL-style interface.\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` \u002F `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\u003C\u002Fdetails>\n\n## Quick Start\n\n**Prerequisites**. Serena is managed by *uv*, and [installing uv](https:\u002F\u002Fdocs.astral.sh\u002Fuv\u002Fgetting-started\u002Finstallation\u002F) is the only required prerequisite.\n\n> [!NOTE]\n> When using the language server backend, some additional dependencies may need to be installed to support certain languages;\n> see the [Language Support](https:\u002F\u002Foraios.github.io\u002Fserena\u002F01-about\u002F020_programming-languages.html) page for details.\n\n**Install Serena**. Serena is installed via uv as follows:\n\n```bash\nuv tool install -p 3.13 serena-agent@latest --prerelease=allow\n```\n\nAfter successful installation, the command `serena` should be available in your shell.\n\n**Initialise Serena**. To initialise Serena and verify that your setup works correctly, simply run:\n\n```bash\nserena init\n```\n\nBy default, this will set up Serena to use the language server backend. To use the JetBrains backend instead, add the parameters `-b JetBrains` \n(see the [JetBrains Plugin documentation page](https:\u002F\u002Foraios.github.io\u002Fserena\u002F02-usage\u002F025_jetbrains_plugin.html) for additional usage details).  \nEither way, you should receive a success message indicating that Serena has been initialised successfully.\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:\u002F\u002Foraios.github.io\u002Fserena\u002F02-usage\u002F030_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> [!TIP]\n> While getting started quickly is easy, Serena is a powerful toolkit with many configuration options.\n> We highly recommend reading through the [user guide](https:\u002F\u002Foraios.github.io\u002Fserena\u002F02-usage\u002F000_intro.html) to get the most out of Serena.\n> \n> Specifically, we recommend to read about ...\n>   * [Serena's project-based workflow](https:\u002F\u002Foraios.github.io\u002Fserena\u002F02-usage\u002F040_workflow.html) and\n>   * [configuring Serena](https:\u002F\u002Foraios.github.io\u002Fserena\u002F02-usage\u002F050_configuration.html).\n\n## User Guide\n\nPlease refer to the [user guide](https:\u002F\u002Foraios.github.io\u002Fserena\u002F02-usage\u002F000_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","Serena 是一个强大的MCP工具包，为编码提供语义检索和编辑能力，旨在成为您的AI代理的IDE。它通过符号级别的操作利用关系结构，提供了关键的代码检索、编辑、重构和调试工具，这些功能与传统IDE的功能相媲美。Serena采用以代理为中心的设计理念，使用高级抽象而非依赖于行号或基本搜索模式等低级概念，从而使得代理在处理大型复杂代码库时运行得更快、更高效且更可靠。该项目适合需要提高开发效率、简化代码维护流程以及增强代码理解能力的各种开发场景。",2,"2026-06-11 02:49:17","top_language"]