AI助手配置管理工具

DamnGood是一款集中管理AI编码助手MCP服务器、代理指令和技能的CLI工具,适用于多编辑器环境下的统一配置管理。

  • by gouthamk16
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 5LV10/damngood

使用说明

该死的好

用于管理的集中式CLI工具 MCP服务器, 代理人指示,以及 技能 跨多个AI编码助手。

文档: https://gouthamk16.github.io/damngood/

问题

跨不同编辑器管理AI工具配置是痛苦的:

  • 将相同的MCP服务器单独添加到每个工具中
  • 将相同的说明复制粘贴到每个工具的配置中
  • 逐个工具重新创建相同的斜线命令
  • 在JSON文件、Markdown文件和配置目录中手动保持所有内容同步

解决方案

DamnGood提供 集中管理 对于所有三个:

  1. MCP服务器 --存储在一个注册表中,同步到所有工具
  2. 说明 --写一次,推送到每个工具的全局指令文件(CLAUDE.md、GEMINI.md、global_rules.md等)
  3. 技能 --集中定义可重用的斜线命令,同步为本机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 <name>            # add via JSON editor
damngood edit <name>           # edit via JSON editor
damngood remove <name>         # remove from registry
damngood show <name>           # 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)

<!-- DAMNGOOD:START -->
<!-- Managed by damngood. Run 'damngood instructions sync' to update. -->

Always prefer TypeScript over JavaScript.
Use conventional commits for all commit messages.

<!-- DAMNGOOD:END -->

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 <name>        # add snippet (opens editor)
damngood instructions edit <name>       # edit snippet
damngood instructions remove <name>     # remove from registry
damngood instructions show <name>       # 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/<name>/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 <name>        # add skill (opens editor)
damngood skills edit <name>       # edit skill
damngood skills remove <name>     # remove from registry + delete SKILL.md files
damngood skills show <name>       # show content and metadata
damngood skills sync              # deploy to all assigned clients

客户目标

客户端 技能目录
claude ~/.claude/skills/<name>/SKILL.md
opencode ~/.config/opencode/skills/<name>/SKILL.md

客户管理

damngood client list                    # show all discovered clients and their status
damngood client enable <name>           # include client in all syncs
damngood client disable <name>          # exclude client from syncs
damngood client register <name> --path <path>   # add a custom MCP tool
damngood client remove <name>           # 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
    <name>.md                Snippet content (one file per snippet)
  skills/
    index.json               Skill metadata and client assignments
    <name>/
      content.md             Skill body

命令参考

MCP服务器

命令 描述
list 列出集中管理的服务器
add <name> 通过JSON编辑器添加服务器
edit <name> 通过JSON编辑器编辑服务器
remove <name> 从中心注册表中删除
show <name> 显示服务器详细信息
sync 将MCP服务器同步到所有分配的客户端
import 导入现有客户端配置

说明

命令 描述
instructions list 列出所有片段
instructions add <name> 通过编辑器添加代码段
instructions edit <name> 编辑代码段
instructions remove <name> 删除代码段
instructions show <name> 显示代码段详细信息
instructions sync 将片段推送到所有分配的客户端

技能

命令 描述
skills list 列出所有技能
skills add <name> 通过编辑器添加技能
skills edit <name> 编辑技能
skills remove <name> 删除技能+删除skill.md文件
skills show <name> 显示技能详细信息
skills sync 将技能部署到所有分配的客户

客户管理

命令 描述
client list 列出已注册的客户
client register <name> 注册新客户
client remove <name> 删除已注册的客户端
client enable <name> 启用客户端同步
client disable <name> 禁用客户端

单客户端模式(--client)

命令 描述
--client cursor list 列出Cursor的MCP服务器
--client cursor add <name> 仅添加到光标
--client cursor remove <name> 仅从光标中删除

提示

  • 自动发现:运行 damngood client list 安装新的AI工具后,它将被自动检测到
  • 选择性同步:使用 clients 数组,用于精确控制每个服务器/代码段/技能使用哪些工具
  • 非破坏性说明:DamnGood只管理其哨兵标记之间的内容——您在CLAUDE.md等中的个人笔记永远不会被触及
  • 快速编辑: damngood instructions edit <name> 使用预加载的现有内容重新打开编辑器
  • 迁移:使用 damngood import 将现有的MCP配置移动到中央注册表

为什么使用这个?

  • 真理的一个来源 --中央注册表消除了跨工具的配置漂移
  • 写一次 --指令和技能只需一个命令即可部署到任何地方
  • 安全 --受管理的部分永远不会覆盖用户内容;技能文件在覆盖之前检查托管标记
  • 没有新的依赖关系 --纯Python stdlib plus rich 对于终端UI
  • 跨平台 --自动处理Linux、macOS和Windows路径