Serena logo

Serena

by oraios

Serena is a free and open-source coding agent toolkit that turns an LLM into a fully-featured agent working directly on your codebase. It provides semantic code retrieval and editing tools akin to an IDE, enhancing LLM capabilities without subscription fees.

View on GitHub

Last updated: N/A

What is Serena?

Serena is a coding agent toolkit that equips LLMs with tools for understanding and manipulating codebases. It uses language servers and the Model Context Protocol (MCP) to enable LLMs to perform coding tasks autonomously.

How to use Serena?

Serena can be integrated with LLMs through the MCP server (e.g., with Claude Desktop or IDEs), the Agno agent framework (for model-agnostic usage), or by incorporating its tools into other agent frameworks. Configuration involves setting up project-specific YAML files and adjusting client settings.

Key features of Serena

  • Semantic code retrieval and editing

  • Integration with multiple LLMs and IDEs

  • Free and open-source

  • Support for multiple programming languages (Python, Java, TypeScript, etc.)

  • Tools for code analysis, planning, design, and refactoring

Use cases of Serena

  • Automated code analysis and refactoring

  • Autonomous implementation of new features

  • Bug fixing and testing

  • Code generation and documentation

  • Integration with existing development workflows

FAQ from Serena

What is the Model Context Protocol (MCP)?

MCP is a protocol that allows LLMs to interact with external tools and services, enabling them to perform tasks beyond simple text generation.

What is Agno?

Agno is a model-agnostic agent framework that allows you to turn virtually any LLM into a coding agent, whether it's provided by Google, OpenAI or Anthropic (with a paid API key) or a free model provided by Ollama, Together or Anyscale.

Which programming languages are supported?

Serena provides direct support for Python, Java, and TypeScript. Indirect support (may require code changes) is available for Ruby, Go, C#, Rust, Kotlin, Dart, and C/C++.

How does Serena compare to subscription-based coding agents?

Serena offers similar functionality to subscription-based agents like Windsurf and Cursor but is free and open-source. It also provides greater flexibility in terms of LLM and IDE integration.

How do I handle potential issues with the execute_shell_command tool?

The execute_shell_command tool allows for arbitrary code execution. When using Serena as an MCP Server, clients will typically ask the user for permission before executing a tool, so as long as the user inspects execution parameters beforehand, this should not be a problem. You may choose to disable certain tools for your setup in your Serena project's configuration file (.yml).