
Jules Dispatch
io.github.Yuuqq由 GitHub 账号 Yuuqq 发布v1.3.2更新于 Oct 24, 2026
Batch-dispatch coding tasks to Google Jules: 50 parallel sessions, plan approval, PR collection.
概览
让助手把编码任务批量并行派发给 Google Jules,并监控会话、批准计划、收集拉取请求链接。
- 可以做什么
- 把 Google Jules 封装为 MCP 工具,助手可以用任务对象或 YAML/JSON 创建一个或多个编码会话,最多 50 个并发派发并可选限速,并轮询会话直到完成或需要处理。它可以查看会话的计划与活动时间线、批准计划、发送后续消息、取消失控会话,并列出已连接的仓库和近期会话。可选的 LLM 工具能把一句话意图扩展为多个任务草稿并直接派发。
- 适用场景
- 适合可拆分为独立、接近单个 PR 规模的任务场景,例如为多个模块补充测试,或在多个仓库推行统一的 CI 或安全基线。也适合需要在实施前保留人工审批环节,或希望由编码助手统筹派发、跟进与结果收集的工作流。
- 运行要求
- 以 npm 包形式在本地通过 stdio 运行,需要 Node.js 20+。需要 Google Jules 账号和 API 密钥,通过 JULES_API_KEY 提供,并需要一个已连接 Jules 的 GitHub 仓库;JULES_DEFAULT_SOURCE 和 JULES_DEFAULT_BRANCH 为可选默认值。可选的规划工具需要兼容 OpenAI 的 LLM 端点和密钥(如 LLM_API_KEY、LLM_BASE_URL、LLM_MODEL)。需要访问 Jules API 的网络连接。
安装
在 SourceWeft 中
- 打开 控制台中的 Jules Dispatch,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
jules-dispatch 🚀
Batch-dispatch tasks to Google Jules in parallel — and use it as an MCP tool inside Claude Code or OpenAI Codex CLI.
[npm version] [CI] [TypeScript] [MCP] [License: MIT]
🌐 Languages: English · 简体中文
🌐 Landing page & interactive docs
https://yuuqq.github.io/jules-dispatch/ — full onboarding guide and MCP integration examples
What Is This?
jules-dispatch is a CLI and an MCP server for the Google Jules API that lets you:
- Dispatch any number of Jules tasks with up to 50 concurrent session creations, optionally paced
- Define tasks as simple YAML files — title, repo, branch, prompt
- Poll for completion and collect generated PR links
- Approve plans, send follow-up messages, cancel runaway sessions, tail live activity
- Plug into Claude Code or Codex as an MCP server — your AI assistant calls Jules as a tool
It turns Jules from a "one task at a time" tool into a massively parallel coding workforce, controlled by either humans on the CLI or other AIs over MCP.
🏗 How It Works
✨ What's New in 1.2 — Optional AI Task Planning (BYO LLM)
Entirely optional. All core commands work without any LLM key. Skip this section if you only want raw dispatch.
Stop hand-writing task YAML. Give jules-dispatch one sentence and let an LLM expand it into N parallel Jules sessions.
Bring your own LLM — works with any OpenAI-compatible /chat/completions endpoint:
Configure via env vars (LLM_API_KEY, LLM_BASE_URL, LLM_MODEL) or per-invocation flags (--llm-key, --llm-base-url, --llm-model). OPENAI_API_KEY and OPENROUTER_API_KEY are also recognised as fallbacks.
✨ What's New in 1.1
- 🧰 MCP server (
jules-dispatch mcp) — 8 always-registered tools, plus 2 optional planning tools when an LLM key is configured, and 7 opt-in legacy aliases - 🤖
--jsonmode — machine-readable output on every command for AI agents and shell pipelines - ✅ Plan approval workflow —
plan,approvecommands +requirePlanApproval: truetask option - 📡 Live tailing —
tail <id>streams activity events as they happen - ❌ Cancel sessions —
cancel <id>aborts runaway runs - 🔍 Direct lookup —
get <id>,status --idsno longer limited to the recent page - 🛡️ Real failure detection — uses session.state, fails fast, distinct exit codes
- ⚡ Smart retries — exponential backoff with jitter, honours
Retry-After - 📥 Stdin input —
dispatch -reads YAML/JSON from a pipe - 🔑
--api-keyflag — pass keys per-invocation, no .env required
✨ Key Features
💡 Five Common Use Cases
jules-dispatch works best when a change can be split into independent, PR-sized tasks. If tasks edit the same files or depend on earlier output, dispatch them in separate waves instead of running them concurrently.
1. Add test coverage across several modules
Suppose the auth, billing, users, and audit modules all need tests. Put one self-contained task file per module in a dedicated directory, then dispatch the directory as a batch:
Each Jules session owns one module. With AUTO_CREATE_PR enabled, the result is a set of focused PRs that can be reviewed and merged independently. A failed task can be retried without restarting the rest.
Why it helps: independent test work runs at the same time without turning into one large, hard-to-review change.
2. Break a large migration into executable tasks
For a goal such as migrating an Express API to Fastify, use the optional LLM planner to identify independent routes, middleware, startup code, and test work:
auto shows the proposed tasks and asks for confirmation before dispatching them. Use plan-tasks instead when you want to save and edit the generated YAML before anything is sent to Jules.
Why it helps: the planner reduces the cost of decomposing a broad goal while keeping the task boundaries visible and reviewable.
3. Roll out the same change across multiple repositories
To add a shared CI check, security baseline, or contribution policy across several Jules-connected repositories, give each task its own source:
Place the task file in a dedicated batch directory and dispatch it with controlled concurrency and launch pacing:
Why it helps: one command coordinates the rollout while preserving a separate session and PR for each repository plus an audit log for the batch.
4. Keep a human approval gate for risky changes
Authentication, authorization, and database migrations often need review before implementation begins. Require Jules to stop after planning:
Inspect the plan, send corrections if needed, approve it, and then continue monitoring:
Why it helps: you keep control of high-impact decisions without giving up delegated execution.
5. Let Claude Code or Codex orchestrate the whole run
After configuring the MCP server, describe the outcome instead of operating each session yourself:
Analyze this repository, split its test gaps into independent tasks, and dispatch them to Jules. Ask me before approving plans or answering feedback requests. When every session finishes, summarize the outcome and PR URL for each task.
The coding assistant can call jules_dispatch, wait with jules_monitor, inspect action-required sessions with jules_interact, and return a final PR summary.
Why it helps: you manage the goal and the important decisions while the assistant handles dispatch, follow-up, and result collection.
🤖 Use Inside Claude Code or Codex (MCP)
The MCP server exposes Jules as a set of tools your coding AI can call directly.
Install for Claude Code
Full setup guide (including GSD integration): docs/MCP-INTEGRATION.md
Add to ~/.config/claude-code/mcp.json (or use claude mcp add):
Then in Claude Code: "Dispatch 5 Jules tasks to add tests to the auth, payments, users, sessions, and audit modules." Claude calls jules_dispatch, monitors them with jules_monitor, and uses jules_interact when it needs full context or PR output.
Install for OpenAI Codex CLI
Add to ~/.codex/config.toml:
Install as an Agent Skill
This repository also ships a lightweight skill wrapper at skills/jules-dispatch/. The skill teaches Claude Code, Codex, or any Agent Skills-compatible host when and how to use the jules-dispatch MCP tools.
For Codex, copy or install the folder as jules-dispatch in your Codex skills directory, then restart Codex:
For Agent Skills-compatible hosts that use a shared skills directory, copy the same folder into that host's skills directory. The skill is only the instruction layer; you still need the MCP server configured with jules-dispatch mcp and a valid JULES_API_KEY.
MCP Tools Exposed
Consolidated tools (recommended)
The server registers 8 tools by default: 3 recommended consolidated tools and 5 utility tools. Two additional planning tools are registered when an LLM key is configured. Seven deprecated aliases are available behind --legacy-tools / JULES_MCP_LEGACY_TOOLS=1 but are not registered by default, so they cost no context unless you need them.
jules_dispatch — Create one or more sessions
Accepts a single task object, an array of tasks, or a YAML/JSON string.
Parameters:
Dispatch uses a continuously replenished worker pool rather than fixed waves: whenever one task finishes creating its session, the next queued task can start. paceMs applies globally across all workers, so consecutive creation starts are separated by at least that interval while result order still matches task order.
jules_monitor — Check status or wait for the next resolution point
Parameters:
Action-required states are AWAITING_PLAN_APPROVAL, AWAITING_USER_FEEDBACK, and PAUSED. When the result includes actionRequired, inspect those sessions with jules_interact, approve the plan or send feedback as appropriate, then call jules_monitor again for the unresolved IDs.
jules_interact — Inspect a session in full context
Returns session details, derived status, the globally latest plan, activity timeline, and PR output in one call. The server scans the complete oldest-first activity feed, then returns the newest activityCount entries in chronological order plus activityTotal for the full feed.
Parameters:
Utility tools
Optional LLM-powered tools (requires LLM key)
Response format
All tools return:
Errors return:
Legacy tools (deprecated aliases, opt-in)
jules_dispatch_task, jules_dispatch_batch, jules_get_session, jules_list_activities, jules_get_plan, jules_status, and jules_wait_for_completion remain functional for compatibility but are not registered by default. Enable them with either:
New integrations should use the consolidated tools.
🚀 Quick Start (Plain CLI)
Prerequisites
- Node.js 20+
- A Google Jules account and API key
- A GitHub repository connected to Jules
1. Install
2. Set up (interactive wizard)
The wizard prompts for your API key, default source, and branch. It writes a .env file.
For CI/scripts (non-interactive):
3. Validate your setup
4. Write a task
5. Dispatch it
6. Batch-dispatch a whole directory
That's it — 6 steps from install to your first PR.
📖 CLI Reference
Global flags
Commands
Exit codes (for shell scripts and agents)
Monitoring error behavior
status reports session or activity lookup failures explicitly as status: "error" and exits nonzero instead of fabricating a Jules failure or trusting a potentially stale state. Polling commands retry only network, rate-limit, and server errors; invalid requests, authentication failures, and missing sessions fail immediately with the affected session ID in the error context.
dispatch examples
batch examples
batch and auto both use the same continuously replenished worker pool. --parallel caps in-flight session creation and --pace-ms sets the global minimum spacing between creation starts; it does not add a delay separately inside each worker.
wait example
tail example
🔄 Session Lifecycle
jules-dispatch tracks every Jules session through its full lifecycle and surfaces each state through the CLI / MCP:
For compatibility, jules-dispatch also normalizes legacy API states: PENDING, RUNNING, AWAITING_USER_INPUT, CANCELLED, and CANCELED. Cancellation is sent with the Jules DELETE /sessions/{id} operation.
📄 Task File Format
Field Reference
YAML example
Multiple tasks in one file (YAML --- separators)
JSON format
JSON array (for batch dispatch via MCP):
🤖 AI-Orchestrated Parallel Development
The killer use case: combine jules-dispatch with Claude Code or Codex.
"I have a Node.js backend that needs to be migrated from Express to Fastify. Analyse the codebase, split the work into independent migration units, and dispatch them all to Jules in parallel using the jules-dispatch MCP tools. Then poll for completion and report back the PR URLs."
With the MCP server installed, your assistant will:
- Analyse your codebase
- Commit and push the target branch, because Jules works from the remote source branch rather than unpushed local changes
- Call
jules_dispatchwith N task definitions - Call
jules_monitorwithwait: true; if action is required, inspect withjules_interact, approve or send feedback, and monitor again - Use
jules_interactto collect terminal context and PR URLs
You get N parallel coding agents orchestrated by one strategic agent, hands-free.
📁 Project Structure
🛠 Development
📜 License
MIT — see LICENSE
Built to make Google Jules actually scale.
来源:README.md,提交 52b152f
工具
0版本历史
1- v1.3.2最新Sep 16, 2026
评分
已满足适用检查项的 50%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分