ワンクリックで
serena
Serena provides IDE-like semantic code retrieval and editing tools for coding agents, enabling efficient symbol-level code operations
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Serena provides IDE-like semantic code retrieval and editing tools for coding agents, enabling efficient symbol-level code operations
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Python import style guidelines for absolute and relative imports
Python naming conventions for variables, constants, files, and directories
Python pathlib usage guidelines for file and directory operations
Python refactoring triggers and guidelines for code size limits
UV command-line usage patterns for Python project management
UV command automation and project lifecycle management patterns powered by the uv-mcp server
| name | serena |
| description | Serena provides IDE-like semantic code retrieval and editing tools for coding agents, enabling efficient symbol-level code operations |
| license | MIT |
| compatibility | opencode |
| metadata | {"related_mcp_servers":"For MCP server integration patterns, use skill `mcp-servers`","related_coding_principles":"For code quality and best practices, use skill `coding-principles`"} |
Serena transforms LLMs into powerful coding agents that work directly on your codebase. Unlike basic tools that read entire files or perform string-based searches, Serena provides semantic code understanding at the symbol level, making code operations more efficient and accurate.
| Tool Category | Tools | Purpose |
|---|---|---|
| Symbol Discovery | find_symbol, get_symbols_overview, find_referencing_symbols | Find and understand code entities |
| Symbol Editing | insert_after_symbol, insert_before_symbol, replace_symbol_body, rename_symbol | Modify code at symbol level |
| File Operations | read_file, create_text_file, replace_content, replace_lines, delete_lines | Standard file manipulation |
| Project Management | activate_project, remove_project, onboarding, check_onboarding_performed | Project setup and management |
| Memory | write_memory, read_memory, list_memories, delete_memory | Project-specific knowledge storage |
| Analysis | search_for_pattern, list_dir, find_file | Codebase exploration |
1. Project Creation: Configure project settings (language detection, indexing)
2. Project Activation: Make Serena aware of your project
3. Onboarding: Serena learns project structure and creates memories
4. Coding Tasks: Use semantic tools for efficient code operations
Use this skill when:
# Find all symbols matching a pattern
symbols = find_symbol(
name_path_pattern="function_name",
relative_path="src/",
include_kinds=[12] # Function kind
)
# Get overview of file structure
overview = get_symbols_overview(
relative_path="src/main.py",
depth=1 # Include methods/fields
)
# Find all references to a symbol
references = find_referencing_symbols(
name_path="ClassName/method_name",
relative_path="src/file.py"
)
# Insert after a symbol definition
insert_after_symbol(
body="\n def new_method(self):\n pass",
name_path="ClassName/existing_method",
relative_path="src/file.py"
)
# Rename symbol throughout codebase
rename_symbol(
name_path="OldClassName",
new_name="NewClassName",
relative_path="src/"
)
# Replace entire symbol body
replace_symbol_body(
body="def updated_function(param: Type) -> ReturnType:\n new implementation",
name_path="function_name",
relative_path="src/file.py"
)
# Store project knowledge
write_memory(
memory_file_name="architecture",
content="""# Project Architecture
This project uses a layered architecture with:
- Data layer for persistence
- Service layer for business logic
- Presentation layer for UI
Key patterns: Repository, Service, Factory"""
)
# Recall project knowledge
memories = list_memories()
architecture = read_memory(memory_file_name="architecture")
# Read specific file
content = read_file(relative_path="src/module.py")
# Create or update file
create_text_file(
relative_path="new_file.py",
content="# New module\n\ndef main(): pass"
)
# Replace content with pattern matching
replace_content(
needle="old_function\(\)",
repl="new_function()",
mode="regex",
relative_path="src/file.py"
)
find_symbol and symbol-based edits over file reading and string replacementmcp-servers for MCP integration patternscoding-principles for code quality during editsknowledge-management for cross-project knowledge sharing