
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 分