【免费下载链接】juggler
The Juggler Code Agent
Juggler 是一款开源的 AI 编码代理可视工作台,而Juggler 自定义斜杠命令是它最容易被低估的实用功能:把你反复粘贴的高频 Prompt 存成一个 Markdown 文件,它就会立刻出现在斜杠命令菜单里,一条/快捷键直接复用。整个过程不需要写任何代码,保存即热加载,还能通过 git 分享给整个团队。
什么是自定义斜杠命令?
自定义斜杠命令本质上是一个"提示词模板文件":
- 每个命令 = 一个
.md文件,放在commands/目录下 - 文件名(去掉
.md)就是命令名,比如review-pr.md→/review-pr - 文件内容 = YAML frontmatter(少量选项)+ 提示词正文模板
- 保存的瞬间自动热加载,无需重启 Juggler
官方文档的完整说明见 docs/custom-commands.md。如果命令需要真正的程序逻辑(调 API、变换文档、加工具),才需要写扩展;自定义命令就是位于扩展之下的"无代码层"。
创建自定义命令的 3 种方式(零代码)
三种方式完全等价,最终写入的是同一个文件,按习惯选一种即可:
方式一:直接输入不存在的命令名
在输入框输入/standup,如果这个命令还不存在,菜单会出现一行置顶的"New command '/standup'…",点开就是预填好的编辑器,边写边看效果。
方式二:打开命令管理器
斜杠菜单顶部的"Edit custom slash commands…"按钮(键盘输入/commands效果相同)会打开命令管理器:
- 按作用域(scope)分组列出你所有的自定义命令
- New command…新建一个
- 已有命令可直接编辑或删除
按钮旁边的"Browse built-in commands…"则打开内置命令清单,方便你了解 Juggler 自带的能力。编辑器的交互实现可以在 web/js/components/command-editor-dialog.js 中找到。
方式三:让 AI 助手帮你写
直接把 Prompt 发给助手,然后说一句"Make that a slash command"(把它变成斜杠命令)。它会调用define_command工具,先向你展示完整定义、经你批准后才写入文件——整个过程依然是零代码。相关实现见 web/extensions/juggler-core/context-items/define-command-context-item.js。
命令文件结构速览
一个命令文件长这样(frontmatter + 模板正文):
--- description: Review a PR and report findings # 必填,菜单里显示的描述 argsHint: <pr-number> # 可选,输入命令后的参数提示 run: subthread # 运行模式:send | draft | subthread strategy: read-only # 可选,仅 subthread 生效 provider: anthropic # 可选,仅 subthread 生效 model: claude-haiku-... # 可选,仅 subthread 生效 thinking: high # 可选,仅 subthread 生效 serviceTier: priority # 可选,仅 subthread 生效 goal: PR review # 可选,线程 UI 上的短标签 icon: icon-eye # 可选,菜单图标 --- Review PR $1. Check out the branch, read the diff, and report each finding as `file:line — description`. $ARGUMENTS字段校验逻辑(比如命令名必须是"小写字母开头 + 字母数字连字符"、description必填)实现在 cmd/juggler/core/user_commands.go;文件解析故意采用扁平结构,不认识的字段直接忽略,这对导入第三方格式非常友好。
3 个占位符就够了
| 占位符 | 展开为 |
|---|---|
$1…$9 | 命令名后第 1~9 个按空白切分的参数 |
$ARGUMENTS | 命令名后的全部内容,原样保留(含换行) |
$$ | 一个字面量$($$1就是文本$1,不会被当参数) |
小贴士:$ARGUMENTS会保留你输入时的换行,所以标题、列表、代码块等多行描述能原样送达提示词;而$1~$9只取按空格切分后的单词。模板即使用了占位符但没给参数也照样发送——模型会自己向你要缺的东西。
三种运行模式怎么选?
run:字段决定命令被触发后发生什么:
| 模式 | 行为 | 适用场景 |
|---|---|---|
send(默认) | 展开模板,直接作为你的下一条消息发送 | 最常用的快捷 Prompt |
draft | 展开到输入框,可先编辑再发送 | 模板只是"草稿起点"时 |
subthread | 在隔离的子线程中运行,结果回到主对话 | 保持主对话上下文干净;仅此模式支持strategy、模型字段和goal |
项目级 vs 用户级:命令放在哪?
| 作用域 | 存放位置 | 生效范围 |
|---|---|---|
| 项目 | <项目>/.juggler/commands/*.md | 仅当前项目,可随 git 共享 |
| 用户 | ~/.juggler/commands/*.md | 你的所有项目 |
- 同名命令冲突时,项目级优先
- 自定义命令不能覆盖内置命令(如
/clear、/compact):这类文件仍会加载,但会在/commands管理器中标记为无效并说明原因,绝不会静默覆盖
用户目录下各子目录(含commands/)的完整说明见 docs/config-directory.md。
团队共享与安全边界
项目级命令随仓库走:你git clone一个项目,别人写好的命令也会一起到位。不过 Juggler 画了清晰的安全线:
- ✅ 命令只在你主动触发时才会执行,从不自动运行
- ✅ 菜单和管理器中都有作用域徽标,随时可见命令来源
- ✅ 命令本身不能执行 shell、不能读文件——它只是发送一段提示词,后续动作仍受你正常的审批规则约束
从 Claude Code 迁移?直接拷贝即可
Juggler 的格式刻意贴近 Claude Code 的.claude/commands/*.md。Juggler 不会自动扫描.claude/目录,只需把文件拷贝进commands/目录即可:argument-hint会被识别为argsHint,其余不认识的键自动忽略,开箱即用。
相关模块路径
| 内容 | 路径 |
|---|---|
| 官方文档 | docs/custom-commands.md |
| 命令存储与校验源码 | cmd/juggler/core/user_commands.go |
| HTTP API | cmd/juggler/server/handlers/user_commands_api.go |
| 斜杠菜单提供器 | web/js/components/slash-command-provider.js |
| 命令编辑器对话框 | web/js/components/command-editor-dialog.js |
小结
Juggler 自定义斜杠命令的精髓就是:高频 Prompt = 一个 Markdown 文件。三种创建方式任选其一,保存即生效;用项目级目录放进 git 就能全团队共享。下次再打那段"帮我审查 PR 并输出 file:line 格式的问题清单"时,一个/review-pr就足够了。
【免费下载链接】juggler
The Juggler Code Agent
相关推荐
forgecode 斜杠命令入门:用 YAML Frontmatter 定义可复用 Prompt 的自定义命令
forgecode 斜杠命令入门:用 YAML Frontmatter 定义可复用 Prompt 的自定义命令 导读 本文围绕 forgecode(面向 Cla
人工智能AI Agent代码智能体交互助手工具调用MCP ClientsCLI开发工具Kode-CLI 自定义命令系统详解:从 Markdown 文件到可复用斜杠命令的完整实现
Kode CLI 自定义命令系统详解:从 Markdown 文件到可复用斜杠命令的完整实现 本文以 Kode CLI 的 Custom Commands Sys
AI 应用开发工具AI AgentCLI把重复劳动做成一条命令:斜杠命令 + Hooks 自动化实战
把重复劳动做成一条命令:斜杠命令 + Hooks 自动化实战 最近科技圈又炸开一个话题:有人在网上晒出自己用 Claude Code 干活,把平时要折腾十几分钟
开发工具AI 应用人工智能AI Agent
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考