名称: jules-cli
描述: 通过 Jules CLI 管理异步编码会话。此技能仅适用于复杂、独立的、能从远程虚拟机中获益的任务,请谨慎使用。
binaries:
- jules
- python3
env:
- HOME
此技能使智能体能够与 jules CLI 交互。它支持任务分配、会话监控和结果集成。
为防止过度和不恰当的会话创建,必须遵守以下规则:
为确保 CLI 命令的安全执行,必须遵守以下安全实践:
owner/repo 格式(仅限字母数字、点、连字符和下划线)。"<repo>")。python3 -c)。使用环境变量安全传递此类数据。jules remote new:因为这会创建远程会话/虚拟机。jules remote pull --apply:因为这会修改本地代码库。jules teleport:因为这会克隆并修改环境。jules remote list --session,以确保没有同一仓库的待处理会话。jules login,向用户解释原因,并在获得确认后再继续。建议直接使用 CLI 以保持对情况的了解。
验证仓库访问权限和格式。
jules remote list --repo
注意:确保仓库格式为 GITHUB_USERNAME/REPO。
创建会话并捕获会话 ID。
# 捕获输出以获取 ID
# 将 <repo> 和任务描述替换为已验证的输入
jules remote new --repo "<repo>" --session "详细的任务描述" < /dev/null
列出会话并查找你的 ID。使用这个健壮的一行命令来检查状态(它能处理带空格的状态,如“进行中”):
检查状态(安全方法):
# 使用环境变量将会话 ID 安全地传递给 Python
export JULES_SESSION_ID="<SESSION_ID>"
jules remote list --session | python3 -c "
import sys, re, os
session_id = os.environ.get('JULES_SESSION_ID', '')
if not session_id: sys.exit(0)
for line in sys.stdin:
line = line.strip()
if line.startswith(session_id):
# 提取状态(多个空格后的最后一列)
print(re.split(r'\s{2,}', line)[-1])
"
unset JULES_SESSION_ID
一旦状态变为 已完成,拉取并应用更改。
# 将 <SESSION_ID> 替换为已验证的会话 ID
jules remote pull --session "<SESSION_ID>" --apply < /dev/null
jules remote list --repo 验证格式。必须与 GitHub 路径匹配。jules 命令进行非交互式自动化时,始终使用 < /dev/null。HOME 或运行 jules login。| 命令 | 用途 |
|---|---|
jules remote list --repo |
验证可用仓库及其确切名称。 |
jules remote list --session |
列出活动及历史会话以检查状态。 |
jules remote new |
创建新的编码任务。 |
jules remote pull |
应用已完成会话的更改。 |
jules teleport "<id>" |
克隆并应用更改(适用于新环境)。 |