# Summon CLI

> 通过统一配置启动外部 Agent CLI，完整传递任务并调用一个指定 Skill；也用于按已配置路由委派写作等任务。

- Skill: `cheshiremew/summon-cli` (Agent Skill, multi-file: 9 files)
- Install (CLI): `npx skillmds@latest add cheshiremew/summon-cli`
- Raw SKILL.md: https://api.skillmd.com/api/skills/cheshiremew/summon-cli/raw
- Safety review: pending (external: skill-scanner PASS, skillspector CAUTION)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: CheshireMew (https://skillmd.com/u/cheshiremew)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/cheshiremew/summon-cli

---


# Summon CLI

## 目标

把当前请求完整交给一个已配置的外部 Agent CLI。外部 Agent 可以是 Claude Code、Grok CLI、Gemini CLI、Codex CLI 或以后加入的其它 Agent；API、模型、前台或后台协议、启动参数和目标 Skill 都由本 Skill 内的配置决定，不写死在行为说明中。

用户明确调用 `$summon-cli` 时使用本 Skill。当前还配置了一条写作自动路线：Codex 识别出用户要创作短帖、文章、项目介绍或其它可发布文字时，读取 `writing` 任务配置并委派；这条自动路线同时由本机 `AGENTS.md` 授权，其它任务不会因为本 Skill 存在而自动委派。

## 工作方式

首次使用或把本 Skill 复制到另一台机器后，先在本 Skill 目录运行一次本机发现：

```powershell
& '<本 Skill 目录>\scripts\summon.ps1' setup
```

macOS、Linux 或 WSL 使用：

```sh
sh '<本 Skill 目录>/scripts/summon.sh' setup
```

`setup` 只发现当前系统上的 Python、Agent CLI、Skill 和图形终端，并把绝对路径写入本 Skill 内被 Git 忽略的 `config/config.local.json`；不会安装软件、移动密钥或修改公共配置。随后运行 `show` 和 `doctor` 检查结果。

根据用户点名的任务、profile 和 Skill 选择配置；用户没有点名时，根据任务说明选择已经配置的路线。一个任务可以不使用 Skill，也可以使用一个 Skill，不能在一次调用中向外部 Agent 传递多个 Skill。任务要求一个 Skill、但用户和默认配置都没有选定时，先询问用户本次使用哪个，不猜测，也不同时调用候选项。

### Codex 联网补充

任务配置的 `codex_web` 为 `supplement` 时，由当前 Codex 负责调用前的公开材料发现。先完整阅读现有请求、用户材料和本地对象，判断完成本次任务是否还缺公开材料；已有内容足够时直接交接，确有缺口时才联网。实际采用网页中的相关原文或必要上下文连同来源链接进入交接，保留其材料身份，不附加 Codex 提炼的中心句、推荐角度、叙事说明或预写内容。

Codex 判断现有内容或本次补充已经足够时，公开材料发现到此结束；外部 Agent 不再重复搜索，并按用户本轮要求执行目标 Skill 的当前阶段。用户要求先交付大纲、确认后再写正文时，本轮只执行大纲阶段，不提前准备案例、钩子、正文、检查或修改。只有完成当前阶段仍缺必要公开材料时，才把尚缺的具体材料交给外部 Agent 继续寻找。联网只用于补充材料，不逐项核查用户内容，也不生成事实核查报告。

用户明确禁止联网或要求只使用现有材料时跳过联网补充。其它任务只有在自己的配置明确启用时才由 Codex 处理公开材料发现。

### 交给外部 Agent

交给外部 Agent 的是当前仍需要它执行的用户原话和真实材料，不是整段纠错历史。后来的用户消息修正了先前方向时，直接移开已经失效的要求、角度和助手产物；其余用户原话、来源正文、顺序与来源身份保持不变。当前意思分布在多条消息中时，只选取仍然有效、且仍需要外部 Agent 执行的用户原句，不由 Codex 改写成简报、总结、中心句或叙事框架。

调用输入只包括：

- 当前仍需要外部 Agent 执行的用户原话和来源材料；
- 本次真正采用的 Codex 联网补充材料及链接；
- 必要的运行交接。

对于写作或内容委派，材料位于当前 Codex 可访问的历史任务、本地文件或项目时，由当前 Codex 在调用前读取实际需要的内容，并把采用的原文随交接发送。“阅读这段历史”“打开这些文件”“检查这个项目后取材”等已经由当前 Codex 完成的取材指令不再作为外部 Agent 的待办重复传递；用实际材料替代这类指令不属于改写用户的创作要求。不要让外部 Agent 再去阅读 Summon CLI 的 README、`SKILL.md`、配置说明、公共配置、测试或 Git 历史，也不要把“自行探索项目后找材料”写进交接。只有用户本轮明确要求外部 Agent 审查或修改某个项目时，才允许它检查该项目内与任务直接相关的文件。

运行交接只说明公开材料发现由哪一层继续处理，不宣告材料成文准备已经完成。它只供外部 Agent 决定是否继续调用联网工具，不进入目标 Skill 的工作材料、写作准备结果或成品。Codex 的分析过程、失败稿、纠错过程、内部路线判断、维护说明、事实核查、提纲和预写正文都留在当前任务。

将完整输入通过标准输入交给启动器：

```powershell
$input | & '<本 Skill 目录>\scripts\summon.ps1' run --task writing --skill content-writing --cwd '<当前任务目录>'
```

macOS、Linux 或 WSL 使用对应的 `summon.sh`。`--cwd` 是外部 Agent 实际打开的项目目录；不传时使用调用 Summon CLI 的当前目录，因此它不会固定指向某位开发者机器上的文件夹。

`summon.py` 会从本机配置解析唯一 profile，加载相应 API 环境，向外部 Agent 明确传递唯一目标 Skill 的名称和 `SKILL.md` 绝对路径，再使用该 CLI 为当前模式配置的协议启动进程。它不解释、摘要或改写输入。

默认运行模式是 `visible`。`claude-code` 执行器会在 Windows Terminal、macOS Terminal.app 或 Linux 已发现的图形终端中启动真正的 Claude Code 交互界面，不使用 `-p`，并以 Auto 权限模式开始；首轮完成时通过会话级 Stop Hook 把 Claude 的完整回答返回当前 Codex 任务，Claude 窗口继续停在输入框，可由用户直接追问或亲自关闭。用户本轮要求的完整交付必须放在外部 Agent 的最后一条回复中；用户明确要求分阶段确认时，只交付当前阶段，不提前执行后续阶段。如果外部 Agent 在完整结果后又补发了很短的完成摘要，Stop Hook 会从本轮会话记录中恢复此前的完整结果。启动前会沿用 Claude Code 现有的用户设置，并把首次初始化与当前工作目录信任状态准备好，因此不会停在 style、安全说明或目录确认页。没有图形桌面的机器会明确报告可见模式不可用，不会擅自改成后台。配置中的任务或 profile 可以把 `run_mode` 设为 `background`，这时使用 `-p` 在后台运行并捕获结果。显式调用时还可以用 `--run-mode` 临时覆盖。解析顺序是本次命令、任务配置、profile 配置、全局默认值。

显式调用时可以用 `--profile` 绕过任务默认 profile，也可以用 `--skill` 覆盖任务的默认 Skill。覆盖只作用于本次调用，不修改长期配置。

外部 CLI 返回成功结果后，完整交付该结果。调用失败时返回实际退出码、标准输出和错误输出；不更换 Agent、API 或 Skill，也不由 Codex 生成替代结果。

## 资源

- `scripts/summon.py`：跨平台核心程序，读取配置、解析任务与唯一 Skill、加载 profile 环境并启动外部 Agent CLI。
- `scripts/summon.ps1`、`scripts/summon.sh`：分别供 Windows 与 macOS/Linux/WSL 使用的便携入口。
- `config/config.json`：可随 Skill 迁移的公共执行协议、profile、任务与 Skill 名称，不保存本机绝对路径。
- `config/config.local.json`：由 `setup` 生成的本机 CLI、Skill 和终端路径；文件位于本 Skill 内并由 `.gitignore` 排除。
- `config/profiles/*.env`：对应 profile 的 API 环境；文件与其它配置一起放在本 Skill 内，并由 `.gitignore` 排除。
- `references/configuration.md`：说明配置和新增执行器、profile、任务、Skill 的方式。

## 输出与完成

默认在独立窗口显示外部 Agent 的真实交互界面或实时运行过程，并把其完整正文或结果返回当前任务，不额外添加 Codex 版本。结果返回不等待用户关闭窗口；原生交互窗口在首轮完成后继续保留，供用户查看和追问。外部 Agent 按用户请求生成文件时，文件属于用户明确指定的目标项目；可见模式用于首轮交接的临时文件在结果返回后立即清理，启动器不另存提示词、正文或运行日志。Claude Code 自身仍按其正常机制保存可恢复的交互会话。

只有外部 Agent 真实返回成功结果，才说明委派完成。配置可解析、可执行文件存在和命令能够启动分别只证明相应层级；缺少 API 密钥、目标 Skill 或兼容的非交互协议时，准确说明缺少项并停止。

