A developer CLI for Jules API automation
Project description
jules-cli
A fully automated developer assistant CLI built on the Jules API (Googleโs experimental code automation system).
jules-cli lets you run tests, fix bugs, apply patches, refactor code, and even create GitHub pull requests โ all from your terminal.
Designed for real-world workflows, CI pipelines, and local debugging sessions.
๐ Features
๐ง Automated Test Fixer
- Runs pytest
- Sends failures to the Jules API
- Receives automated patches or PRs
- Applies patches locally
- Re-runs tests
- Optional auto-push + auto-PR via GitHub
๐ค AI-Powered Development Assistant
Issue natural-language commands:
jules task "refactor the user login service" jules task "add test coverage for payment workflows" jules task "fix NullPointer bug in auth module"
Jules performs the work in a dedicated session and returns patches or PRs.
๐ Stateful Interactive REPL
Run:
jules
And access a full command shell:
auto task "..." apply commit push pr create session list session show last exit
๐ GitHub Integration
- Auto-creates branches
- Auto-commits and auto-pushes
- Automatically creates PRs using
GITHUB_TOKEN
๐ Trusted Auth
Uses Google's Jules API with the X-Goog-Api-Key header.
Secure, isolated, and simple.
๐ฆ Installation
From PyPI (recommended)
pip install jules-cli
From source (editable)
git clone https://github.com/dhruv13x/jules-cli cd jules-cli pip install -e .
โ๏ธ Environment Setup
Before using the CLI, set:
1. Jules API Key
export JULES_API_KEY="your_key_here"
2. GitHub Token (optional, for PR creation)
export GITHUB_TOKEN="ghp_xxx..."
(Optional) Set your Git identity:
git config --global user.name "Your Name" git config --global user.email "you@example.com"
3. Configuration File (optional)
You can also store your API key and other settings in a configuration file located at ~/.config/jules/config.toml.
[jules]
api_key = "your_key_here"
[github]
token = "ghp_xxx..."
๐งช Usage
Open the REPL
jules
Youโll see:
Jules Interactive CLI โ fully immersive developer assistant.
Commands: auto task "instruction" apply commit push pr create session list ...
๐ Command Guide
๐ฅ auto โ Automatic pytest debugging
Runs pytest โ detects failures โ sends to Jules โ applies patch or PR.
jules> auto
๐ task "<instruction>" โ Tell Jules anything
Examples:
jules> task "refactor utils.py to remove duplicated logic" jules> task "add unit tests for create_dump function" jules> task "fix failing integration test for redis manager"
๐ฉน apply โ Apply the last patch Jules returned
jules> apply
๐ฟ commit โ Auto-create branch & commit patch
jules> commit
๐ push โ Push current branch
jules> push
๐ pr create โ Create GitHub pull request
Requires GITHUB_TOKEN.
jules> pr create
๐ session list โ View recent Jules sessions
jules> session list
๐ session show <id> โ Inspect a session
jules> session show 1234567890
๐ฆ last โ Show last session + result
jules> last
๐ฉบ doctor โ Check your environment
Verifies that your environment is correctly configured to run jules-cli. Checks for:
JULES_API_KEYGITHUB_TOKEN(optional)- Git installation
- Internet connectivity
๐งฉ Example Workflow
Fix test failure automatically
jules
jules> auto
jules> apply
jules> commit
jules> push
jules> pr create
Request refactor
jules> task "Refactor bot_platform/init_manager for clarity"
jules> apply
Add tests
jules> task "Add pytest tests for projectclone cli"
---
๐ Project Structure
jules-cli/
โ
โโโ src/
โ โโโ jules_cli/
โ โโโ cli.py
โ โโโ __init__.py
โ
โโโ pyproject.toml
โโโ README.md
โโโ .github/workflows/publish.yml
---
๐ Release Workflow (PyPI Trusted Publisher)
To publish a new version:
1. Update version in pyproject.toml
version = "1.1.0"
2. Commit and push
git add .
git commit -m "Release 1.1.0"
git push
3. Create tag
git tag v1.1.0
git push origin v1.1.0
GitHub Actions will automatically build & publish to PyPI.
---
๐ก License
This project is licensed under the MIT License.
See LICENSE for details.
---
๐ค Contributing
Contributions, bug reports, and feature requests are welcome.
1. Fork the repo
2. Create a feature branch
3. Add your changes
4. Submit a PR
---
โญ Support the Project
If you like this tool:
โญ Star the repo
๐ฃ Share ideas
๐งช Open issues and feature requests
---
๐ฌ Feedback Welcome
Feel free to open an issue or reach out anytime โ the goal is to make jules-cli the most powerful local automation assistant for developers.
---
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file jules_cli-11.0.2.tar.gz.
File metadata
- Download URL: jules_cli-11.0.2.tar.gz
- Upload date:
- Size: 36.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b68a35bd082c7b0535d58618f4cbeae956d3c51c4bfb72f6d9aa7c2ea4e98c12
|
|
| MD5 |
9940a3131a3d1b338c1975a005f00e87
|
|
| BLAKE2b-256 |
67d877903531d5c1b364a93e728178cb1a02a56175a06d3cc1d5f3377ae75df8
|
Provenance
The following attestation bundles were made for jules_cli-11.0.2.tar.gz:
Publisher:
publish.yml on dhruv13x/jules-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
jules_cli-11.0.2.tar.gz -
Subject digest:
b68a35bd082c7b0535d58618f4cbeae956d3c51c4bfb72f6d9aa7c2ea4e98c12 - Sigstore transparency entry: 721926497
- Sigstore integration time:
-
Permalink:
dhruv13x/jules-cli@0c0c6de61595694786d24a88a26745beb4897319 -
Branch / Tag:
refs/tags/v11.0.2 - Owner: https://github.com/dhruv13x
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@0c0c6de61595694786d24a88a26745beb4897319 -
Trigger Event:
push
-
Statement type:
File details
Details for the file jules_cli-11.0.2-py3-none-any.whl.
File metadata
- Download URL: jules_cli-11.0.2-py3-none-any.whl
- Upload date:
- Size: 37.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5eb70ef6796c7cbff4dbb9c2dc29ddd6d0fc547a27a393abf99fd697945b5795
|
|
| MD5 |
1c0f9ed4e0ce561cf663ac4b4fa10b06
|
|
| BLAKE2b-256 |
eb370466094aeb51187e3b0940ba41596ecb66c01f39207584d5006322206f7f
|
Provenance
The following attestation bundles were made for jules_cli-11.0.2-py3-none-any.whl:
Publisher:
publish.yml on dhruv13x/jules-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
jules_cli-11.0.2-py3-none-any.whl -
Subject digest:
5eb70ef6796c7cbff4dbb9c2dc29ddd6d0fc547a27a393abf99fd697945b5795 - Sigstore transparency entry: 721926617
- Sigstore integration time:
-
Permalink:
dhruv13x/jules-cli@0c0c6de61595694786d24a88a26745beb4897319 -
Branch / Tag:
refs/tags/v11.0.2 - Owner: https://github.com/dhruv13x
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@0c0c6de61595694786d24a88a26745beb4897319 -
Trigger Event:
push
-
Statement type: