serena

Locate symbol definitions and references across languages using LSP.

Updated Apr 20, 2026
One-click install
npx skills add https://github.com/Anders-planck/opencode-config --skill serena-anders-planck
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: serena
Source: https://github.com/Anders-planck/opencode-config/tree/main/skills/serena
Command: npx skills add https://github.com/Anders-planck/opencode-config --skill serena-anders-planck

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Symbol-level code understanding and navigation is often hard when exploring large codebases; Serena provides IDE-like capabilities to locate symbol definitions, track references, and perform precise edits across languages.

Core Features & Use Cases

  • Symbol Discovery: Find classes, functions, variables, and types across languages using Language Server Protocol (LSP) powered analysis.
  • Reference Tracking: Identify all usages and call sites to understand impact and dependencies.
  • Precise Editing: Insert or modify code at symbol locations with contextual awareness for safe refactoring.

Quick Start

Identify a symbol's definition with find_symbol, then locate all references with find_referencing_symbols to begin a precise refactor.

Frequently Asked Questions about serena

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

FAQPage Schema
How do I find symbol definitions and track references across a multi-language codebase?

You can find symbol definitions and track references across multiple languages using LSP-powered symbol navigation. It provides IDE-like capabilities to locate classes, functions, and variables, then identifies all usages and call sites to understand dependencies.

Can I perform precise refactoring by inserting code at specific symbol locations?

Yes, you can perform precise refactoring by inserting or modifying code at symbol locations. It uses contextual awareness of symbol definitions to ensure safe edits across languages using operations like insert_after_symbol.

Do I need LSP-enabled tooling to use symbol-level code navigation?

Yes, LSP-enabled tooling is required for symbol-level code navigation. The Skill relies on Language Server Protocol powered analysis to support symbol discovery, reference tracking, and precise editing across multiple languages.

What is the best way to locate all call sites for a function during code exploration?

The best way to locate call sites is by using reference tracking. After finding a target symbol's definition, you can identify all usages and call sites to understand the impact and dependencies of that function across the codebase.

How does symbol search work for understanding large codebases without an IDE?

Symbol search works by leveraging Language Server Protocol analysis to provide IDE-like symbol discovery. It locates classes, functions, variables, and types across multiple languages, solving the difficulty of understanding large codebases without a full IDE.