该死的好
用于管理的集中式CLI工具 MCP服务器, 代理人指示,以及 技能 跨多个AI编码助手。
文档: https://gouthamk16.github.io/damngood/
问题
跨不同编辑器管理AI工具配置是痛苦的:
- 将相同的MCP服务器单独添加到每个工具中
- 将相同的说明复制粘贴到每个工具的配置中
- 逐个工具重新创建相同的斜线命令
- 在JSON文件、Markdown文件和配置目录中手动保持所有内容同步
解决方案
DamnGood提供 集中管理 对于所有三个:
- MCP服务器 --存储在一个注册表中,同步到所有工具
- 说明 --写一次,推送到每个工具的全局指令文件(CLAUDE.md、GEMINI.md、global_rules.md等)
- 技能 --集中定义可重用的斜线命令,同步为本机SKILL.md文件
支持的客户
自动发现的客户端:
| 客户 | MCP | 说明 | 技能 |
|---|---|---|---|
| 克劳德代码 | ✓ ~/.claude.json | ✓ ~/.claude/CLAUDE.md | ✓ ~/.claude/skills/ |
| 双子星命令行工具 | ✓ ~/.gemini/settings.json | ✓ ~/.gemini/GEMINI.md | — |
| 光标 | ✓ ~/.cursor/mcp.json | ✓ ~/.cursor/rules/damngood-instructions.mdc | — |
| 帆板运动 | — | ✓ ~/.codeium/windsurf/memories/global_rules.md | — |
| 开源代码 | ✓ ~/.config/opencode/opencode.json | ✓ ~/.config/opencode/AGENTS.md | ✓ ~/.config/opencode/skills/ |
| Continue.dev | — | ✓ ~/.continue/rules/damngood.md | — |
| 克劳德桌面 | ✓ 平台应用程序数据 | -- | -- |
另外,注册任何自定义的MCP兼容工具。
安装
git clone https://github.com/5LV10/damngood.git
cd damngood
pip install -e .
damngood --help快速开始
# See which AI tools are installed
damngood client list
# --- MCP Servers ---
damngood import # pull existing MCP configs into the registry
damngood add filesystem # add a new server (opens $EDITOR)
damngood sync # push to all assigned clients
# --- Agent Instructions ---
damngood instructions add coding-style # write a snippet (opens $EDITOR)
damngood instructions sync # push to CLAUDE.md, GEMINI.md, etc.
# --- Skills ---
damngood skills add review-pr # create a skill (opens $EDITOR)
damngood skills sync # deploy to ~/.claude/skills/ etc.______________________________________________________________________
MCP服务器
运作原理
服务器存储在 ~/.damngood/registry.jsonThe clients 阵列控制哪些工具同步接收每个服务器。
{
"servers": {
"filesystem": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem"],
"env": {},
"clients": ["cursor", "gemini"]
}
}
}命令
damngood list # list servers in central registry
damngood add # add via JSON editor
damngood edit # edit via JSON editor
damngood remove # remove from registry
damngood show # show details
damngood sync # push to all assigned clients
damngood import # import from existing client configs示例
$ damngood add github
# Editor opens with template — fill in command, args, env, clients
Added server 'github' to central registry
$ damngood sync
✓ cursor → 2 server(s) (~/.cursor/mcp.json)
✓ gemini → 1 server(s) (~/.gemini/settings.json)______________________________________________________________________
代理说明
编写一次markdown指令片段,并将其推送到每个工具的全局指令文件中。每个工具在启动时都会自动读取这些文件。
运作原理
片段存储在 ~/.damngood/instructions/同步时,damngood插入一个 管理部门 在每个工具的指令文件中使用HTML注释哨兵:
# My personal notes (not touched by damngood)
Always prefer TypeScript over JavaScript.
Use conventional commits for all commit messages.
More personal notes (also untouched)- 哨兵之上/之下的用户内容是 从未修改
- 运行两次同步 幂等
- 从客户端删除所有代码段 彻底清除哨兵
添加代码段
$ damngood instructions add coding-style您的编辑器将打开一个模板:
---
description: "Brief description of this instruction snippet"
clients: [claude, gemini, cursor, windsurf, opencode, continue]
enabled: true
---
Write your instruction content here in plain Markdown.编辑frontmatter以设置哪些客户端接收此代码段,在正文中编写指令,保存并关闭。
命令
damngood instructions list # list all snippets
damngood instructions add # add snippet (opens editor)
damngood instructions edit # edit snippet
damngood instructions remove # remove from registry
damngood instructions show # show content and metadata
damngood instructions sync # push to all assigned clients客户目标
| 客户端 | 指令文件 |
|---|---|
claude | ~/.claude/CLAUDE.md |
gemini | ~/.gemini/GEMINI.md |
cursor | ~/.cursor/rules/damngood-instructions.mdc (始终应用规则) |
windsurf | ~/.codeium/windsurf/memories/global_rules.md |
opencode | ~/.config/opencode/AGENTS.md |
continue | ~/.continue/rules/damngood.md |
风帆笔记:Windsurf总共有12000个字符的限制。DamnGood警告如果你接近它。
______________________________________________________________________
技能
集中定义可重用的斜线命令,并将其作为本机命令同步 SKILL.md 将文件转换为Claude Code和OpenCode。
运作原理
技能存储在 ~/.damngood/skills//content.md同步时,damngood编写本地 SKILL.md 每个客户的技能目录。由damngood编写的文件用托管头标记,这样它们就不会被意外覆盖。
添加技能
$ damngood skills add review-pr您的编辑器将打开一个模板:
---
description: "What this skill does"
user-invocable: true
allowed-tools: [Read, Grep, Bash]
clients: [claude, opencode]
enabled: true
---
# review-pr
Review a pull request for correctness, style, and potential issues.
## Steps
1. Read the diff with `git diff`
2. Check for security issues
3. Summarize findings命令
damngood skills list # list all skills
damngood skills add # add skill (opens editor)
damngood skills edit # edit skill
damngood skills remove # remove from registry + delete SKILL.md files
damngood skills show # show content and metadata
damngood skills sync # deploy to all assigned clients客户目标
| 客户端 | 技能目录 |
|---|---|
claude | ~/.claude/skills//SKILL.md |
opencode | ~/.config/opencode/skills//SKILL.md |
______________________________________________________________________
客户管理
damngood client list # show all discovered clients and their status
damngood client enable # include client in all syncs
damngood client disable # exclude client from syncs
damngood client register --path
# add a custom MCP tool
damngood client remove # remove a custom registration______________________________________________________________________
配置文件
所有配置都存在 ~/.damngood/:
~/.damngood/
registry.json MCP server registry
clients.json Registered AI tool clients
instructions/
index.json Snippet metadata and client assignments
.md Snippet content (one file per snippet)
skills/
index.json Skill metadata and client assignments
/
content.md Skill body______________________________________________________________________
命令参考
MCP服务器
| 命令 | 描述 |
|---|---|
list | 列出集中管理的服务器 |
add | 通过JSON编辑器添加服务器 |
edit | 通过JSON编辑器编辑服务器 |
remove | 从中心注册表中删除 |
show | 显示服务器详细信息 |
sync | 将MCP服务器同步到所有分配的客户端 |
import | 导入现有客户端配置 |
说明
| 命令 | 描述 |
|---|---|
instructions list | 列出所有片段 |
instructions add | 通过编辑器添加代码段 |
instructions edit | 编辑代码段 |
instructions remove | 删除代码段 |
instructions show | 显示代码段详细信息 |
instructions sync | 将片段推送到所有分配的客户端 |
技能
| 命令 | 描述 |
|---|---|
skills list | 列出所有技能 |
skills add | 通过编辑器添加技能 |
skills edit | 编辑技能 |
skills remove | 删除技能+删除skill.md文件 |
skills show | 显示技能详细信息 |
skills sync | 将技能部署到所有分配的客户 |
客户管理
| 命令 | 描述 |
|---|---|
client list | 列出已注册的客户 |
client register | 注册新客户 |
client remove | 删除已注册的客户端 |
client enable | 启用客户端同步 |
client disable | 禁用客户端 |
单客户端模式(--client)
| 命令 | 描述 |
|---|---|
--client cursor list | 列出Cursor的MCP服务器 |
--client cursor add | 仅添加到光标 |
--client cursor remove | 仅从光标中删除 |
______________________________________________________________________
提示
- 自动发现:运行
damngood client list安装新的AI工具后,它将被自动检测到 - 选择性同步:使用
clients数组,用于精确控制每个服务器/代码段/技能使用哪些工具 - 非破坏性说明:DamnGood只管理其哨兵标记之间的内容——您在CLAUDE.md等中的个人笔记永远不会被触及
- 快速编辑:
damngood instructions edit使用预加载的现有内容重新打开编辑器 - 迁移:使用
damngood import将现有的MCP配置移动到中央注册表
为什么使用这个?
- 真理的一个来源 --中央注册表消除了跨工具的配置漂移
- 写一次 --指令和技能只需一个命令即可部署到任何地方
- 安全 --受管理的部分永远不会覆盖用户内容;技能文件在覆盖之前检查托管标记
- 没有新的依赖关系 --纯Python stdlib plus
rich对于终端UI - 跨平台 --自动处理Linux、macOS和Windows路径
