serena

Locate symbol definitions and references across 30+ languages via LSP.

1|Updated Feb 22, 2026
One-click install
npx skills add https://github.com/rudironsoni/dotnet-agent-harness --skill serena-rudironsoni
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: serena
Source: https://github.com/rudironsoni/dotnet-agent-harness/tree/main/.rulesync/skills/serena
Command: npx skills add https://github.com/rudironsoni/dotnet-agent-harness --skill serena-rudironsoni

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

This Skill provides IDE-like code understanding and navigation capabilities, allowing users to precisely locate, analyze, and refactor code at the symbol level, overcoming the limitations of text-based or AST-based searches.

Core Features & Use Cases

  • Symbol Discovery: Find definitions of classes, functions, variables, and types across many languages.
  • Reference Tracking: Identify all locations where a symbol is used, imported, or referenced.
  • Precise Code Insertion: Add or modify code at specific symbol locations with semantic awareness.
  • Use Case: When refactoring a function, use Serena to find all its call sites, understand the impact of the change, and then precisely insert new error-handling logic after each call.

Quick Start

Use the serena skill to find the definition of the 'UserService' class.

Frequently Asked Questions about serena

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I find all references to a function across different programming languages?

To find all references to a function across different programming languages, you need semantic code navigation using Language Server Protocol (LSP) integration. This approach tracks all locations where a symbol is used, imported, or referenced across over 30 supported languages.

What is the best way to locate class definitions for code refactoring?

The best way to locate class definitions for code refactoring is symbol-level code discovery. By using semantic analysis instead of text-based searches, you can precisely find definitions of classes, functions, variables, and types to understand the impact of changes.

Does LSP integration support precise code insertion at specific symbol locations?

Yes, LSP integration supports precise code insertion at specific symbol locations. Semantic awareness allows you to add or modify code directly at the definition of classes or functions, ensuring accurate refactoring and error-handling logic insertion.

Can I use symbol search for code understanding in large multi-language repositories?

You can use symbol search for code understanding in large multi-language repositories. Semantic analysis through various LSP servers overcomes the limitations of text-based or AST-based searches by providing IDE-like reference tracking across more than 30 languages.

Why does text-based search fail at tracking symbol references during code refactoring?

Text-based search fails at tracking symbol references during code refactoring because it lacks semantic awareness. Symbol-level code understanding uses LSP integration to analyze the actual code structure, ensuring you find all call sites and understand the true impact of changes.

When do I need Language Server Protocol integration for code navigation?

You need Language Server Protocol integration for code navigation when you require precise code manipulation, reference tracking, and symbol discovery. It is essential when overcoming the limitations of text-based searches to accurately locate and analyze code across many languages.