diff --git a/Hermes/yunzhi/claude-code调用方法总结.md b/Hermes/yunzhi/claude-code调用方法总结.md index 07c186ea..a1c8d61e 100644 --- a/Hermes/yunzhi/claude-code调用方法总结.md +++ b/Hermes/yunzhi/claude-code调用方法总结.md @@ -21,19 +21,20 @@ TASK_END ```bash tmux new-session -d -s claude-work -x 140 -y 40 -tmux send-keys -t claude-work 'claude --dangerously-skip-permissions' Enter -sleep 5 && tmux send-keys -t claude-work Enter # 信任目录 -sleep 3 && tmux send-keys -t claude-work Down && tmux send-keys -t claude-work Enter # 权限确认 -sleep 2 && tmux send-keys -t claude-work 'cat /tmp/task.txt' Enter # 从文件读取任务 +tmux send-keys -t claude-work 'claude --permission-mode bypassPermissions' Enter +sleep 8 && tmux capture-pane -t claude-work -p # 确认已启动后即可发送任务 ``` +> 用 `--permission-mode bypassPermissions` 可直接跳过信任目录 + bypass 权限确认两步,不需要额外的 sleep + send-keys 模拟交互。 + --- ## 关键参数说明 | 参数 | 作用 | |------|------| -| `--dangerously-skip-permissions` | 跳过文件写入、网络等操作的确认提示 | +| `--permission-mode bypassPermissions` | 直接设置 bypass 模式,跳过所有交互确认(包括信任目录、bypass 权限提示) | +| `--dangerously-skip-permissions` | 同上,但通过 CLI 界面内部触发,可能仍需交互确认 | | `--add-dir <路径>` | 添加可访问目录,可多次使用 | | `--max-turns N` | 最大迭代次数,建议 20-30 | | `--bare` | 跳过插件/MCP/CLAUDE.md 加载,最快启动 | @@ -89,7 +90,7 @@ SKILL.md 中定义的触发条件(自然语言模式匹配)会在对话中 ## 常见坑点 -1. **不写 `--dangerously-skip-permissions`** → 文件写入被阻塞,任务卡住 +1. **不写 bypass 参数** → 文件写入被阻塞,任务卡住(优先用 `--permission-mode bypassPermissions`) 2. **命令行参数直接传任务**(`claude -p "任务"`)→ 特殊字符(括号、引号)引发 shell 转义错误 3. **max-turns 太小** → 任务没跑完就超时,建议复杂任务设 25-30 4. **用管道不用参数** → `echo '任务' | claude -p print` 比 `claude -p "任务"` 更可靠 @@ -107,6 +108,8 @@ claude auth status --text ## 完整模板 +### Print Mode + ```bash cat << 'TASK_END' | claude -p print \ --dangerously-skip-permissions \ @@ -119,6 +122,24 @@ cat << 'TASK_END' | claude -p print \ TASK_END ``` +### TMUX 交互模式 + +```bash +# 创建 session 并直接进入 bypass 模式 +tmux new-session -d -s -x 140 -y 40 +tmux send-keys -t 'cd <项目目录> && claude --permission-mode bypassPermissions' Enter +sleep 8 && tmux capture-pane -t -p # 确认 Claude Code 已就绪 + +# 向 session 发送任务 +tmux send-keys -t '[任务描述]' Enter + +# 查看输出 +tmux capture-pane -t -p + +# 附加交互(可选) +tmux attach -t +``` + 输出后检查 stdout 是否包含 `done: 文件路径`,然后用 `MEDIA:/路径` 将文件发送给用户。 ---