From my-serena
Guides through the full Serena project registration and initial activation workflow. Triggers on 'register a Serena project', 'init Serena', 'set up Serena for this project', 'add project to Serena', 'configure Serena', or when encountering 'No source files found' errors during project registration.
npx claudepluginhub bartekck/bartek-marketplace --plugin my-serenaThis skill uses the workspace's default tool permissions.
Initialize and activate a Serena project so that semantic coding tools (symbol search, code navigation, file editing, codebase exploration) become available via MCP.
Provides IDE-like semantic symbol operations for large codebases: find/rename/refactor symbols, cross-file reference tracking, project memory, multi-language navigation.
Encodes repositories into Forgetful knowledge base using Serena's LSP-powered symbol analysis to create memories, entities, patterns, features, and docs for onboarding and refreshing codebase understanding.
Encodes repositories into Forgetful knowledge base using Serena's LSP-powered symbol analysis across 12 phases: discovery, symbols, patterns, features, decisions, and docs. Use for onboarding or refreshing codebase understanding.
Share bugs, ideas, or general feedback.
Initialize and activate a Serena project so that semantic coding tools (symbol search, code navigation, file editing, codebase exploration) become available via MCP.
activate_projectSerena must be available as an MCP server. Verify the .mcp.json configuration includes a Serena entry using uvx with start-mcp-server.
Determine the primary programming language(s) of the project. Scan for source files to identify the language if not already known.
Supported languages (common ones):
python, typescript, rust, go, java, kotlin, ruby, swift, cpp, csharp, dart, php, bash, markdown, yaml, toml
For the full list, consult references/supported-languages.md.
Important notes:
typescriptcppmarkdown--language multiple timesRun the Serena CLI to create the project configuration:
uvx --from "git+https://github.com/oraios/serena" serena project create <project-path> --name <project-name> --language <language>
Parameters:
<project-path> — absolute path to the project root--name — human-readable project name (defaults to directory name)--language — programming language (can be repeated for multi-language projects)--index — (optional) index the project immediately after creationThis creates a .serena/project.yml configuration file in the project directory.
Add .serena to the project's .gitignore to prevent committing Serena's local configuration. If .gitignore does not exist, create it.
Before appending, verify .serena is not already listed to avoid duplicates.
# Check if .serena is already in .gitignore
grep -qxF ".serena" <project-path>/.gitignore 2>/dev/null || echo ".serena" >> <project-path>/.gitignore
Use the activate_project MCP tool to activate the registered project:
activate_project(project="<project-path>")
Pass either the project path or the registered project name. On success, all Serena semantic tools become available for the project.
After activation, optionally run onboarding to let Serena analyze the project structure:
onboarding()
This identifies project structure, build systems, and testing frameworks, storing the results for future reference.
The project has no files matching any supported language. Fix by explicitly specifying the language:
uvx --from "git+https://github.com/oraios/serena" serena project create <path> --language <language>
The activate_project tool must be called before using any other Serena tools. The execute_shell_command tool also requires an active project. For per-session activation of an already-registered project, use the serena-project-activate skill.
If .serena/project.yml already exists, activate_project will use it directly. To re-register, delete the existing config and run project create again.
The generated .serena/project.yml contains settings for:
For the full configuration reference, consult references/project-config.md.
references/supported-languages.md — Complete list of supported languages with notesreferences/project-config.md — Full project.yml configuration reference