7.1 CLI 模式
本节目标
认识 dsh 的命令行玩法:一次运行、自定义配置、插件可插拔的功能模块,dsh 的一切能力都通过插件装配。管理,脱离图形界面也能用。
图形界面之外,还有命令行
整本书都在讲 Web UI,但 dsh 不只有图形界面。dsh 命令本身是一个多模式启动器,除了 dsh web,还有几个有意思的模式。
四种入口模式
| 命令 | 干什么 | 适合 |
|---|---|---|
dsh web | 启动图形界面(整本书的主角) | 日常交互 |
dsh --profile headless "任务" | 跑一次任务,打印结果后退出 | 自动化、脚本、CI |
dsh --profile <名字> | 启动指定配置档案 | 自定义场景 |
dsh plugin --profile <名字> <参数> | 管理该档案的插件 | 插件安装维护 |
0.1.6-alpha.2 起,profile 名还能当命令用:dsh 后面紧跟的第一个参数如果不是选项、也不是 plugin,就展开成 --profile <名字>。dsh headless "任务" 和 dsh --profile headless "任务" 完全等价,自定义 profile 也一样(dsh myprofile);plugin 保留为命令优先,想启动同名 profile 就写显式的 dsh --profile plugin。
headless:一句话跑完一个任务
最有意思的是 headless 模式。它不需要界面,一条命令把任务干完就退出:
dsh --profile headless "总结当前目录下这个项目的结构"跑完后终端命令行窗口,agent 通过它执行命令。里直接打印 agent 的回答,适合写进脚本、定时任务、CI 流水线。可以把它理解成 dsh 的"命令行版"。
profile:你的专属配置档案
dsh 用 profile 管理不同的运行配置。每个 profile 是一套独立的插件组合和配置:
web和headless是内置的,首次使用自动初始化- 其他 profile 通过
dsh plugin命令创建 - 每个 profile 有自己的插件可插拔的功能模块,dsh 的一切能力都通过插件装配。、补丁和配置,互不干扰
运行 headless 需要什么
和图形界面一样需要模型提供智能的大模型服务,dsh 负责调度它来思考与生成。密钥。headless 模式通过环境变量读取:
export DEEPSEEK_API_KEY="你的密钥"
dsh --profile headless "任务"机器可读输出:给脚本和监督进程用
0.1.6-alpha.1 起,headless 新增了一组给程序消费的开关,默认用法完全不变:
dsh --profile headless [--json] [--session-id <id>] ["任务" | -]--json:stdout 从「最终一条回答」换成逐行 JSON 事件流,依次输出session(会话 ID)、status(轮次/步骤边界与用量)、text(助手文本块)、thinking(推理块)、tool_call/tool_result(工具调用与结果)、final(最后回答)。推理过程变成一条事件,不再刷 stderr。脚本可以按行解析,精确掌握 agent 每一步干了什么--session-id <id>:指定要续接的会话。它只采用已存在的持久化会话,ID 写错或不存在会直接报错,不会悄悄开出一段空历史;不带该参数时照旧新建随机会话,会话 ID 在第一条session事件里告诉你。外部监督进程把第一轮拿到的 ID 存下来,后续每轮传回去,就实现了多轮连续自动化- stdin 传任务:位置参数写成
-或者干脆不传任务,任务文本就从标准输入读取。长提示词(超出命令行参数长度的那种)走管道最稳妥
最小示例
跑一轮拿会话 ID,第二轮续上:
out=$(dsh --profile headless --json "整理这个仓库的 TODO")
sid=$(echo "$out" | head -1 | jq -r .sessionId)
dsh --profile headless --json --session-id "$sid" - <<'EOF'
继续刚才的任务,把 TODO 按优先级排序
EOF每行事件都有固定结构,jq、Python、Node 都能直接消费。
启动失败时看哪里
0.1.6-alpha.2 起,CLI 的启动诊断更完整:启动失败时,完整的诊断信息会保存到 $DSH_HOME 下的日志目录,终端上把失败按「出错的服务」和「还在等待的服务」分组展示,不用再从一屏滚动日志里扒线索。报障或排查时,把日志目录里最新的诊断文件带上,一眼就能定位是哪个插件或服务没起来。
常见问题
问:图形界面和 CLI 能同时用吗?
能。它们共用同一套 dsh 安装,只是入口不同。
问:CLI 适合新手吗?
日常干活用图形界面更直观。CLI 是给自动化和进阶场景的,先知道有这些模式就行,用到再学。
小结
dsh是四模式启动器:web、headless、自定义 profile、插件管理- 0.1.6-alpha.2 起 profile 名可直接当命令用(
dsh headless "任务"等价dsh --profile headless "任务") - headless 一条命令跑完任务打印结果,适合自动化
- 0.1.6-alpha.1 起headless 支持
--json事件流、--session-id会话续接和 stdin 任务,监督进程可以精确接管多轮运行 - 启动失败时完整诊断落盘
$DSH_HOME日志目录,终端按服务分组报错 - profile 是一套独立的配置档案,web 和 headless 是内置的
CLI 了解了,下一节把权限agent 能执行的操作范围,由沙箱和审批策略共同决定。和沙箱限制命令文件系统效果的隔离机制,可设为只读、工作区写或完全访问。的底层讲透。