Serena: Coding agent toolkit with semantic capabilities
Coding agent toolkit with semantic code retrieval and editing for LLMs via MCP server.
Learn more about Serena
Serena is a coding agent toolkit that transforms LLMs into code-aware agents through semantic analysis and editing capabilities. The system operates through multiple integration methods including Model Context Protocol (MCP) servers, OpenAPI connections, and direct framework integration. It provides symbol-level code operations like find_symbol, find_referencing_symbols, and insert_after_symbol rather than basic text manipulation. The toolkit supports over 30 programming languages through LSP integration and JetBrains IDE plugin architecture.
Symbol-Level Operations
Performs code analysis and editing at the symbol level using semantic understanding rather than text-based search and replace operations.
Multiple Backend Support
Supports both Language Server Protocol (LSP) integration for 30+ languages and JetBrains IDE plugin architecture for enhanced code analysis.
Framework Agnostic
Provides decoupled tool implementations that can integrate with various LLMs, agent frameworks, and client interfaces through MCP, OpenAPI, or direct integration.
# Use Serena's semantic tools to find symbols and their references
# Instead of grep-like searches or reading entire files
# Find a specific symbol in your codebase
find_symbol("MyClass")
# Find all symbols that reference a particular symbol
find_referencing_symbols("my_function")
# Insert code after a specific symbol
insert_after_symbol("class MyClass", "\n def new_method(self):\n pass")This likely is the last release before the stable version 1.0.0 which will come together with the JetBrains IDE extension.
- –Initial instructions no longer need to be loaded by the user**
- –Significantly extended CLI
- –Removed `replace_regex` tool from `ide-assistant` and `codex` contexts.
- –Configuration:
- –Simplify customization of modes and contexts, including CLI support.
This is the first release of Serena to pypi. Since the last release, we have greatly improved
- –Reduce the use of asyncio to a minimum**, improving stability and reducing the need for workarounds
- –Switch to newly developed fully synchronous LSP library `solidlsp` (derived from `multilspy`),
- –Switch from fastapi (which uses asyncio) to Flask in the Serena dashboard
- –The MCP server is the only asyncio-based component now, which resolves cross-component loop contamination,
- –Improved editing tools**: The editing logic was simplified and improved, making it more robust.
PHP support, fixed various small issues
- –PHP support, fixed various small issues Java LS doesn't seem to run on macos in this version
See how people are using Serena
Top in Developer Tools
Related Repositories
Discover similar tools and frameworks used by developers
Go
Statically typed, compiled language by Google focused on simplicity, concurrency, and fast compilation.
VVV
Vagrant configuration creating local development environments for WordPress development.
Lima
Linux VM launcher with automatic file sharing, port forwarding, and container engine support.
imgui
Immediate mode GUI library for 3D applications.
json
Header-only C++ library for JSON with STL-like containers.