✓ Verified
💻 Development
✓ Enhanced Data
Jules Api
Create and manage Google Jules AI coding sessions via the Jules REST API.
- Rating
- 4.8 (249 reviews)
- Downloads
- 1,684 downloads
- Version
- 1.0.0
Overview
Create and manage Google Jules AI coding sessions via the Jules REST API.
Complete Documentation
View Source →name: jules description: Create and manage Google Jules AI coding sessions via the Jules REST API. Start tasks, monitor progress, approve plans, send messages, list sources/repos, and retrieve session activities/artifacts. metadata: {"openclaw":{"requires":{"env":["JULES_API_KEY"],"bins":["curl"]},"primaryEnv":"JULES_API_KEY","emoji":"🤖","homepage":"https://jules.google/docs/api/reference/"}}
Jules API Skill
Interact with the Google Jules AI coding agent via its REST API. Jules can autonomously execute coding tasks on your GitHub repositories — writing code, fixing bugs, adding tests, and creating pull requests. Base URL:https://jules.googleapis.com/v1alpha
Auth: Pass your API key via the x-goog-api-key header. Get one at jules.google.com/settings.
List Sources (Connected Repositories)
Discover which GitHub repos are connected to your Jules account: ``bash
curl -s -H "x-goog-api-key: $JULES_API_KEY" \
"https://jules.googleapis.com/v1alpha/sources?pageSize=30"
`
With pagination:
`bash
curl -s -H "x-goog-api-key: $JULES_API_KEY" \
"https://jules.googleapis.com/v1alpha/sources?pageSize=10&pageToken=PAGE_TOKEN"
`
Filter specific sources:
`bash
curl -s -H "x-goog-api-key: $JULES_API_KEY" \
"https://jules.googleapis.com/v1alpha/sources?filter=name%3Dsources%2Fgithub-owner-repo"
`
Get a Source
Get details and branches for a specific repo:
`bash
curl -s -H "x-goog-api-key: $JULES_API_KEY" \
"https://jules.googleapis.com/v1alpha/sources/SOURCE_ID"
`
Example: sources/github-myorg-myrepo — replace with your actual source ID from List Sources.
Create a Session (Start a Coding Task)
Create a new Jules session to execute a coding task on a repo:
`bash
curl -s -X POST \
-H "x-goog-api-key: $JULES_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"prompt": "TASK_DESCRIPTION",
"title": "OPTIONAL_TITLE",
"sourceContext": {
"source": "sources/github-OWNER-REPO",
"githubRepoContext": {
"startingBranch": "main"
}
},
"requirePlanApproval": true
}' \
"https://jules.googleapis.com/v1alpha/sessions"
`
Parameters
| Parameter | Required | Description |
|---|---|---|
| prompt | Yes | The task description for Jules to execute |
| title | No | Optional title (auto-generated if omitted) |
| sourceContext.source | Yes | Source resource name (e.g. sources/github-owner-repo) |
| sourceContext.githubRepoContext.startingBranch | Yes | Branch to start from (e.g. main, develop) |
| requirePlanApproval | No | If true, plans need explicit approval before execution |
| automationMode | No | Set to AUTO_CREATE_PR to auto-create PRs when done |
Auto-approve + Auto-PR example
`bash
curl -s -X POST \
-H "x-goog-api-key: $JULES_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"prompt": "Add comprehensive unit tests for the auth module",
"sourceContext": {
"source": "sources/github-myorg-myrepo",
"githubRepoContext": { "startingBranch": "main" }
},
"automationMode": "AUTO_CREATE_PR"
}' \
"https://jules.googleapis.com/v1alpha/sessions"
`
List Sessions
List all your Jules sessions:
`bash
curl -s -H "x-goog-api-key: $JULES_API_KEY" \
"https://jules.googleapis.com/v1alpha/sessions?pageSize=10"
`
Paginate with pageToken:
`bash
curl -s -H "x-goog-api-key: $JULES_API_KEY" \
"https://jules.googleapis.com/v1alpha/sessions?pageSize=10&pageToken=NEXT_PAGE_TOKEN"
`
Get a Session
Retrieve a single session by ID (includes outputs like PRs if completed):
`bash
curl -s -H "x-goog-api-key: $JULES_API_KEY" \
"https://jules.googleapis.com/v1alpha/sessions/SESSION_ID"
`
Session States
| State | Meaning |
|---|---|
| QUEUED | Waiting to be processed |
| PLANNING | Jules is analyzing and creating a plan |
| AWAITING_PLAN_APPROVAL | Plan ready, waiting for user approval |
| AWAITING_USER_FEEDBACK | Jules needs additional input |
| IN_PROGRESS | Jules is actively working |
| PAUSED | Session is paused |
| COMPLETED | Task completed successfully |
| FAILED | Task failed to complete |
Approve a Plan
When a session is in AWAITING_PLAN_APPROVAL state, approve the plan:
`bash
curl -s -X POST \
-H "x-goog-api-key: $JULES_API_KEY" \
-H "Content-Type: application/json" \
-d '{}' \
"https://jules.googleapis.com/v1alpha/sessions/SESSION_ID:approvePlan"
`
Send a Message
Send feedback, answer questions, or give additional instructions to an active session:
`bash
curl -s -X POST \
-H "x-goog-api-key: $JULES_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"prompt": "YOUR_MESSAGE_HERE"
}' \
"https://jules.googleapis.com/v1alpha/sessions/SESSION_ID:sendMessage"
`
Use this when session state is AWAITING_USER_FEEDBACK or to provide additional guidance during IN_PROGRESS.
List Activities (Monitor Progress)
Get all events/progress for a session:
`bash
curl -s -H "x-goog-api-key: $JULES_API_KEY" \
"https://jules.googleapis.com/v1alpha/sessions/SESSION_ID/activities?pageSize=50"
`
Get activities after a specific timestamp (for polling):
`bash
curl -s -H "x-goog-api-key: $JULES_API_KEY" \
"https://jules.googleapis.com/v1alpha/sessions/SESSION_ID/activities?createTime=2026-01-17T00:03:53Z"
`
Activity Types
Activities will contain exactly one of these event fields:
| Event | Description |
|---|---|
| planGenerated | Jules created a plan (contains plan.steps[]) |
| planApproved | A plan was approved |
| userMessaged | User sent a message |
| agentMessaged | Jules sent a message |
| progressUpdated | Status update during execution |
| sessionCompleted | Session finished successfully |
| sessionFailed | Session encountered an error (contains reason) |
Artifacts
Activities may include artifacts:
- ChangeSet: Code changes with
gitPatch (unified diff, base commit, suggested commit message)
- BashOutput: Command output with
command, output, exitCode
- Media: Binary output with
mimeType and base64 data
Get a Single Activity
`bash
curl -s -H "x-goog-api-key: $JULES_API_KEY" \
"https://jules.googleapis.com/v1alpha/sessions/SESSION_ID/activities/ACTIVITY_ID"
`
Delete a Session
`bash
curl -s -X DELETE \
-H "x-goog-api-key: $JULES_API_KEY" \
"https://jules.googleapis.com/v1alpha/sessions/SESSION_ID"
`
Typical Workflow
- List sources to find the repo resource name
- Create a session with a prompt describing the task
- Poll the session (Get Session) to track state changes
- List activities to monitor progress and read Jules' messages
- If
requirePlanApproval was set, approve the plan when state is AWAITING_PLAN_APPROVAL
- If state is
AWAITING_USER_FEEDBACK, send a message with your response
- When
COMPLETED, get the session to find the output PR URL
Error Handling
| Code | Meaning |
|---|---|
| 200 | Success |
| 400 | Bad request (invalid parameters) |
| 401 | Unauthorized (invalid/missing API key) |
| 403 | Forbidden (insufficient permissions) |
| 404 | Not found |
| 429 | Rate limited |
| 500 | Server error |
Error responses return:
`json
{
"error": {
"code": 400,
"message": "Invalid session ID format",
"status": "INVALID_ARGUMENT"
}
}
`
Notes
- Get your API key from jules.google.com/settings
- Store it as the
JULES_API_KEY environment variable
- Sources (repos) are connected via the Jules web UI at jules.google — the API is read-only for sources
- Session resource names follow the pattern
sessions/{sessionId}
- Activity resource names follow
sessions/{sessionId}/activities/{activityId}
- All list endpoints support
pageSize (1-100) and pageToken` for pagination
Installation
Terminal bash
openclaw install jules-api
Copied!
Tags
#coding_agents-and-ides
#api
Quick Info
Category Development
Model Gemini 2.0
Complexity One-Click
Author arthbhalodiya
Last Updated 3/10/2026
🚀
Optimized for
Gemini 2.0
Ready to Install?
Get started with this skill in seconds
openclaw install jules-api
Related Skills
✓ Verified
💻 Development
4claw
4claw — a moderated imageboard for AI agents.
🧠 Claude-Ready
)}
★ 4.4 (118)
↓ 4,990
v1.0.0
✓ Verified
💻 Development
Aap Passport
Agent Attestation Protocol - The Reverse Turing Test.
🧠 Claude-Ready
)}
★ 4.3 (89)
↓ 4,621
v1.0.0
✓ Verified
💻 Development
Acestep Lyrics Transcription
Transcribe audio to timestamped lyrics using OpenAI Whisper or ElevenLabs Scribe API.
⚡ GPT-Optimized
)}
★ 3.8 (274)
↓ 17,648
v1.0.0
✓ Verified
💻 Development
Adaptive Suite
A continuously adaptive skill suite that empowers Clawdbot.
🧠 Claude-Ready
)}
★ 4.7 (88)
↓ 1,625
v1.0.0