DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

aoye516 /

pack-Agent

Topic repository only

把任意 AI Agent 打包成可移植的 dsh 模式(preset)仓库 / Package any AI agent into a portable dsh preset repo

★ 0 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: main@4fc542f2

pack-Agent · Agent 打包工具

简体中文 | English

把任意 AI Agent 打包成可移植的 dsh 模式(preset)仓库。

打包结果是一个 GitHub 仓库,仓库本身就是 dsh preset:克隆到 ~/.dsh/.agent-presets/<id> 即可在 dsh 模式选择器中使用。

这是什么

pack_agent.py 把一个 AI Agent —— 来自 Claude Code、Codex、opencode、aider、Cursor、已安装的 dsh preset,或任意用 JSON/YAML manifest 描述的自定义 Agent —— 打包成可移植的 dsh preset 仓库:

路径 内容
agent.cordis.yml dsh 组装文件(基础 preset + MCP + 工具 + skills 接线)
preset.yml 模式名称 / 描述(模式选择器显示)
AGENTS.md 合并后的 Agent 指令 + memory
skills/ 收集到的 skills(每个 skill 一个目录)
tools/ 打包的自定义工具插件
assets/ 需要附带的其他文件
.env.example MCP token 占位符(绝不包含真实密钥)
install.sh 一键安装脚本
pack_agent.py 打包器本身,方便以后重新打包

特性

  • 多来源:dsh preset(--from-dsh)、Claude Code(~/.claude.json、skills、CLAUDE.md、项目 .mcp.json)、Codex(~/.codex/config.toml、memory、skills)、opencode / aider / Cursor(--source opencode|aider|cursor),或通用 manifest
  • MCP 脱敏:token/密钥自动替换为 process.env.AGENT_MCP_* 占位符并写入 .env.example,任何敏感信息都不会进仓库
  • memory 脱敏:--memory safe 既剔除赋值式密钥,也剔除行内形似凭据的 token(URL 和正常文本不受影响)
  • MCP 过滤:--mcp-include、--mcp-exclude、--exclude-local-mcp(剔除本机专用服务)
  • --dry-run 只预览不打任何文件;--verbose 打印详细发现过程
  • --push 自动 git init 并推送到 GitHub(有 gh 时直接建仓库)

环境要求

  • Python 3.9+
  • pip install pyyaml(Python < 3.11 解析 TOML 还需 pip install tomli)

快速开始

# 自动检测本机的 dsh / Claude Code / Codex / opencode / aider / Cursor,合并打包
python3 pack_agent.py --id my-agent --name "我的 Agent" --description "..." --out dist/my-agent

# 只打包某个已安装的 dsh preset
python3 pack_agent.py --from-dsh standard --id my-agent --out dist/my-agent

# 用 manifest 打包任意 Agent
python3 pack_agent.py --manifest agent.manifest.json --out dist/my-agent

# 先预览,不写任何文件
python3 pack_agent.py --manifest agent.manifest.json --out dist/my-agent --dry-run

# 只保留 github MCP、剔除本机服务
python3 pack_agent.py --id my-agent --mcp-include github --exclude-local-mcp --out dist/my-agent

# 打包并推送到 GitHub
python3 pack_agent.py --id my-agent --push --repo my-agent --public

命令行参考

参数 说明
--id 模式 id(kebab-case 目录名)。默认取 --out 或 my-agent
--name、--description 模式选择器里显示的名称 / 描述
--out 输出目录。默认 ./dist/<id>
--source auto(默认,合并所有检测到的来源)、dsh、claude、codex、opencode、aider、cursor、generic
--from-dsh <id> 以已安装的 dsh preset 为基底(隐含 --source dsh)
--manifest <path> 描述通用 Agent 的 JSON/YAML manifest
--skills [名称...] 要包含的 skill 名称/路径;不带值 = 一个都不包含。默认:全部发现的
--mcp-config <path> 额外的 MCP 配置文件(JSON/YAML/TOML,可重复)
--mcp-include <name> 只包含这些 MCP(可重复 / 逗号分隔)
--mcp-exclude <name> 排除这些 MCP(可重复 / 逗号分隔)
--exclude-local-mcp 剔除本机专用 MCP(home/本地路径、localhost URL)
--agent-md <path> 要包含的指令文件(可重复)
--memory auto(默认)/ full / safe / none
--memory-files <path> 额外的 memory 文件(可重复)
--extra-file <src:dst> 把额外文件/目录复制到 assets/<dst>(可重复)
--tool <path> 把自定义工具插件打包进 tools/(可重复)
--base-preset <id> 非 dsh 来源时的基底 preset。默认 standard
--dry-run 只打印计划,不写任何文件
--verbose 详细发现 / 脱敏输出
--push、--repo、--public、--private git init 并推送到 GitHub
--yes 跳过所有确认提示

Manifest 格式

{
  "id": "my-agent",
  "name": "My Agent",
  "description": "A packaged agent",
  "skills": ["/path/to/skill-dir", "skill-name-from-common-roots"],
  "mcp": {
    "github": {
      "transport": "stdio",
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": { "GITHUB_TOKEN": "ghp_xxx" }
    }
  },
  "agent_md": ["/path/to/AGENTS.md"],
  "memory": {
    "mode": "safe",
    "files": ["/path/to/memory.md"]
  },
  "tools": [
    "/path/to/tool.mjs",
    {"path": "/path/to/tool-dir", "id": "my-tool", "name": "./tools/tool-dir/index.mjs", "config": {}}
  ],
  "extra_files": [
    {"src": "/path/to/file", "dst": "notes/guide.md"}
  ]
}

安装打包结果

在目标机器上:

git clone --depth 1 https://github.com/you/my-agent ~/.dsh/.agent-presets/my-agent

或进入仓库运行:

./install.sh https://github.com/you/my-agent my-agent

然后重启 dsh,在模式选择器中选择新模式。MCP 需要的环境变量见 .env.example。

安全说明

  • MCP 的 token/密钥不会写入仓库,只生成 process.env.AGENT_MCP_* 占位符和 .env.example。
  • memory 默认 safe 模式,行内形似凭据的 token 也会被剔除;确实需要全量保留时用 --memory full。
  • 发布前建议检查 AGENTS.md、skills/、assets/ 里没有意外包含的敏感信息。

License

MIT © aoye516

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout
—/ 5

No ratings yet

Manifest verification required

Commit 4fc542f29270

Community comments

No comments yet. Be the first to write one.