关于 serena-config
用于配置 Serena 全局设置和项目设置的 Skill,面向 Serena 用户。它帮助选择配置层级、排查语言服务器与索引问题,并验证配置修改。
主要功能
- 01全局及项目配置指导
- 02定位相关配置参考文档
- 03排查语言和工作区设置
- 04通过系统提示词和符号查询验证配置
- 05缓存清理及 MCP 服务重启建议
适用场景
- 01为仓库配置语言和忽略规则
- 02设置全局上下文、模式或工具集
- 03排查符号查询和语言服务器错误
MCP 相关
Serena 可通过 `serena start-mcp-server` 作为 MCP 服务运行。此 Skill 涵盖其启动参数的配置选项,并说明何时可能需要重启服务。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ paulnsorensen/ skillz-that-grillz --skill serena-config安装后在 Claude Code 中输入/serena-config确认已加载。
附带文件references/global-config.mdreferences/project-config.md
详细介绍
serena-config
在两个层级配置 Serena:机器范围的全局配置和仓库的项目配置。
Serena 采用分层配置,每层都会覆盖或扩展上一层:
- 全局 —
~/.serena/serena_config.yml。适用于所有项目的默认设置:语言后端、默认工具/模式、全局忽略规则、语言服务器调优。 - 项目 —
<repo>/.serena/project.yml。适用于单个仓库的设置:语言、忽略规则、写入权限、单体仓库工作区文件夹、添加的模式。 - 上下文与模式 — 可组合的工具集/提示词预设,可在全局、项目级别设置,也可在启动时设置。
- CLI 参数,传递给
serena start-mcp-server— 覆盖或扩展以上所有设置。
<certain>许多project.yml键会扩展或覆盖serena_config.yml。 将机器范围的默认设置放在全局文件中;项目文件中只放仓库特定的内容。
查阅相应参考文档
| 用户想要…… | 阅读 |
|---|---|
调整单个仓库:语言错误、单体仓库交叉引用、忽略 vendor//生成目录、只读仓库、仓库级 LSP 路径 | references/project-config.md |
创建/索引/激活项目;了解 project.local.yml 本地覆盖设置 | references/project-config.md |
| 设置机器范围的默认值:语言后端、默认工具/模式、全局忽略规则、日志记录 | references/global-config.md |
选择或更改上下文(claude-code、ide、desktop-app 等) | references/global-config.md |
添加/覆盖模式(planning、editing、no-memories、query-projects 等) | references/global-config.md |
将 Serena 指向自行安装的语言服务器(ls_path)或固定 LSP 版本 | references/global-config.md |
移动数据目录(SERENA_HOME)或每个项目的 .serena 文件夹 | references/global-config.md |
何时需要操作(以及何时不需要)
Serena 会自动创建这两个配置文件,并填入合理的默认值:首次运行时创建全局配置,首次激活仓库时创建项目配置。**大多数仓库无需修改。**只有在出现以下情况之一时才修改配置:
| 现象 | 层级 | 修复项 |
|---|---|---|
| LSP 无法解析跨包边界的符号(单体仓库) | 项目 | additional_workspace_folders |
find_symbol 返回错误语言的结果,或 LSP 在启动时出错 | 项目 | languages: |
符号搜索结果被 vendor/、node_modules/、dist/ 或生成代码淹没 | 项目 | ignored_paths: |
| 仓库仅供审查,Serena 不应写入 | 项目 | read_only: true |
| 工具集不适合当前宿主程序(例如 Claude Code 中重复提供内置工具) | 全局 | --context |
| 需要仅规划或不使用记忆的行为 | 全局 | 模式 |
| 自行安装 LSP,或需要固定 LSP/运行时版本 | 两者均可 | ls_specific_settings |
如果以上情况都不适用,请保持配置不变——引导配置是正确的。
**唯一值得主动设置的例外——ignored_paths。**与上表中的情况不同,对于提交了 vendored 或生成代码(vendor/、已提交至版本控制的 dist/、生成的客户端、快照测试夹具)的仓库,值得在遇到问题前设置此项。默认会遵循 .gitignore,但已提交的杂项会污染 find_symbol/get_symbols_overview 的结果(还可能拖慢 LSP 的初始索引)。参见 references/project-config.md §“ignored_paths — 在大多数非简单仓库中设置此项”。相比之下,ls_path 仍是应急选项——建议默认优先使用托管方案(见 references/global-config.md)。
编辑规范
- 切勿从头手动创建配置。 先让 Serena 初始化配置(项目配置使用
serena project create,全局文件则在首次运行时生成),然后再编辑。生成的文件带有内联文档注释和较新版本新增的字段,请保留这些内容。 - 编辑后进行验证。
serena print-system-prompt "$(pwd)"会呈现解析后的配置;请确认项目名称、语言列表、启用的模式和排除的工具符合预期。然后针对一个已知符号调用find_symbol,测试 LSP:记录干净表示语言解析成功;LSP 启动错误则表示languages:或ls_specific_settings:配置有误。 - 更改后遇到 LSP 异常时,删除
.serena/cache/以强制重建;某些服务还需要重启 MCP 服务才能彻底重置。
参考资料
- 项目配置架构(模板):https://github.com/oraios/serena/blob/main/src/serena/resources/project.template.yml
- 全局配置架构(模板):https://github.com/oraios/serena/blob/main/src/serena/resources/serena_config.template.yml
- 语言枚举(
languages:/ls_specific_settings的有效键):https://github.com/oraios/serena/blob/main/src/solidlsp/ls_config.py - 工作流文档:https://oraios.github.io/serena/02-usage/040_workflow.html
- 配置文档:https://oraios.github.io/serena/02-usage/050_configuration.html