Use Google Jules, the asynchronous coding agent, from inside Claude Code. This plugin wraps the official Jules Tools CLI (@google/jules) in five slash commands, so you can hand a task to Jules, keep working locally with Claude, and pull the finished patch back when it's done.
The point is the workflow split: Claude Code is interactive and local, Jules is fire and forget on a Google cloud VM. Send Jules the well-scoped stuff ("write unit tests for the parser", "upgrade this dependency and fix what breaks") and it works alone while your session stays free. You can even fan out the same task to up to 5 parallel sessions and keep the best result.
- Claude Code
- Node.js (for the Jules CLI)
- A Google account with your repos connected at jules.google
First the Jules CLI, once per machine:
npm install -g @google/jules
jules login # Google OAuth in the browserThen the plugin, from inside Claude Code:
/plugin marketplace add prantikmedhi/jules-plugin-cc
/plugin install jules@jules-plugin-cc
Or from your shell:
claude plugin marketplace add prantikmedhi/jules-plugin-cc
claude plugin install jules@jules-plugin-ccRun /jules:setup afterwards. It checks the CLI is on PATH, you're logged in, and your repos are connected.
| Command | What it does |
|---|---|
/jules:new [--repo owner/name] [--parallel N] <task> |
Delegate a coding task to a Jules cloud session. --parallel runs 1 to 5 competing sessions on the same prompt. |
/jules:list [--repo] |
List your remote Jules sessions, or the repos connected to Jules. |
/jules:pull <id> [--apply] |
Show a session's patch for review. Add --apply to write it into your local repo. |
/jules:teleport <id> |
Clone the repo, check out the session's branch, and apply the patch in one step. |
/jules:setup |
Health check: install, login, connected repos. |
/jules:new --parallel 3 write unit tests for src/parser.ts covering the error paths
# ...Jules works on Google's VMs, you keep coding locally...
/jules:list
/jules:pull 123456 # read the patch first
/jules:pull 123456 --apply # then apply it
One detail worth knowing: Jules starts on a fresh VM with zero context from your conversation. Before sending, Claude enriches thin prompts with the file paths, error messages, and acceptance criteria it already knows, because a prompt that would confuse a new contributor will confuse Jules too.
--apply and teleport check for a dirty working tree first and stop if they find one, rather than stomping on your uncommitted work. Nothing ever commits automatically. The patch lands in your tree and the commit is yours to make.
Good fits: self-contained tasks, long-running work you want off your machine, and fan-out experiments where you want several attempts at the same problem. Bad fits: anything that needs local secrets or services, tight interactive iteration, or code that only exists in your uncommitted working tree. Jules only sees what's pushed to the connected repo.
The plugin also ships a jules-delegation skill, so Claude itself knows this boundary and can suggest delegating when a task fits, plus a jules-rescue subagent Claude can spawn directly for a delegation instead of shelling out inline.
scripts/jules-check.sh— the health check/jules:setupruns. Exit codes:0ready,1not installed,2not logged in.tests/test_jules_check.sh— self-check for the script, stubs a fakejulesbinary for all three states. Run it withbash tests/test_jules_check.sh.agents/jules-rescue.md— a thin subagent that forwards a task tojules remote newand hands back the session ID, for when Claude wants to delegate mid-conversation without a slash command.
Structure inspired by antigravity-plugin-cc, which does the same thing for the Google Antigravity CLI. Jules is a Google product; this plugin is an independent wrapper and isn't affiliated with Google.
MIT