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.
๐ Quick Start (User View)
Prerequisites
- Python 3.8+
pip
One-command installation
pip install jules-cli
Usage Example
jules auto
โจ Key Features
- Automated Test Fixer: Runs pytest, sends failures to the Jules API, receives automated patches, applies them locally, and re-runs tests.
- AI-Powered Development Assistant: Issue natural-language commands to refactor code, add test coverage, or fix bugs.
- Stateful Interactive REPL: Access a full command shell for an immersive development experience.
- GitHub Integration: Automatically create branches, commits, and pull requests.
- Structured Logging: Debug-friendly logs with
--debug,--verbose, and--jsonsupport for better observability. - Context Management: Use
.julesignoreto filter out sensitive files and directories (like.env,node_modules/) from being sent to the AI. - Trusted Auth: Uses Google's Jules API with the
X-Goog-Api-Keyheader for secure and isolated sessions.
โ๏ธ Configuration & Advanced Usage (Dev View)
Environment Variables
JULES_API_KEY: Your Jules API key.GITHUB_TOKEN: Your GitHub token for PR creation.
CLI/API Table
| Command | Description | Arguments | Options |
|---|---|---|---|
init |
Interactive setup wizard. | ||
auto |
Run pytest and auto-fix failures. | ||
testgen |
Generate tests for a given file. | file_path |
--type, -t |
refactor |
Run a repository-wide refactor. | instruction |
|
task |
Ask Jules to perform an arbitrary dev task. | prompt |
|
approve |
Approve the plan for the current or specified session. | session_id |
|
reject |
Reject the plan for the current or specified session. | session_id |
|
session list |
List sessions. | ||
session show |
Show session details. | session_id |
|
history list |
List all sessions. | ||
history view |
Show session details by id. | session_id |
|
apply |
Apply last patch received. | ||
commit |
Commit & create branch after apply. | --message, -m, --type, -t |
|
push |
Push branch to origin. | ||
pr create |
Create a GitHub PR from last branch. | --title, -t, --body, -b, --draft, --labels, -l, --reviewers, -r, --assignees, -a, --issue, -i |
|
stage |
Interactively stage changes. | ||
doctor |
Run environment validation checks. | ||
suggest |
Proactively scan the codebase and suggest improvements. | --focus, -f, --security, --tests, --chore |
|
interact |
Start an interactive chat session with Jules. | prompt |
๐๏ธ Architecture
jules-cli/
โ
โโโ src/
โ โโโ jules_cli/
โ โโโ commands/
โ โ โโโ auto.py
โ โ โโโ task.py
โ โ โโโ ...
โ โโโ core/
โ โโโ git/
โ โโโ patch/
โ โโโ pytest/
โ โโโ utils/
โ โโโ cli.py
โ โโโ __init__.py
โ โโโ ...
โ
โโโ tests/
โโโ pyproject.toml
โโโ README.md
The jules-cli is a Python-based command-line interface powered by the typer library. The core logic is organized into several modules within the src/jules_cli directory, including commands for CLI command definitions, core for Jules API interaction, git for Git utilities, patch for patch management, pytest for test integration, and utils for shared helpers. The main entry point of the application is cli.py, which defines the CLI commands and their arguments.
๐บ๏ธ Roadmap
Upcoming
- Multi-repo workspace automation
- AI-powered merge conflict resolver
Completed
- Automated test fixer
- AI-powered development assistant
- Stateful interactive REPL
- GitHub integration
๐ค Contributing & License
Contributions, bug reports, and feature requests are welcome. Please refer to the FEATURE_PROPOSAL_TEMPLATE for more information.
This project is licensed under the MIT License. See LICENSE for details.
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-12.0.0.tar.gz.
File metadata
- Download URL: jules_cli-12.0.0.tar.gz
- Upload date:
- Size: 44.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7cb2d36bed08948ebbee61d73dd1484e6d35507700c220f1aeec6039755b4a14
|
|
| MD5 |
9b432db244ea1eac5c9f71b568f2a1de
|
|
| BLAKE2b-256 |
3626fb0037e36ccea3e461dfff2942b126336e79d1a477633aef73a07448c8be
|
Provenance
The following attestation bundles were made for jules_cli-12.0.0.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-12.0.0.tar.gz -
Subject digest:
7cb2d36bed08948ebbee61d73dd1484e6d35507700c220f1aeec6039755b4a14 - Sigstore transparency entry: 738191890
- Sigstore integration time:
-
Permalink:
dhruv13x/jules-cli@88cbcee114429fc590533e7fcf4f381c0e237676 -
Branch / Tag:
refs/tags/v12.0.0 - Owner: https://github.com/dhruv13x
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@88cbcee114429fc590533e7fcf4f381c0e237676 -
Trigger Event:
push
-
Statement type:
File details
Details for the file jules_cli-12.0.0-py3-none-any.whl.
File metadata
- Download URL: jules_cli-12.0.0-py3-none-any.whl
- Upload date:
- Size: 43.5 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 |
4c86f1785635426a0b55bed279a5d0a10874dc883350f7a66b420dbddefe2f91
|
|
| MD5 |
91dd26296ababe39616f1cb4a11f6328
|
|
| BLAKE2b-256 |
4082b46bc68c0771ae0d464b4b244827c943825e2bdda61868410315432301ba
|
Provenance
The following attestation bundles were made for jules_cli-12.0.0-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-12.0.0-py3-none-any.whl -
Subject digest:
4c86f1785635426a0b55bed279a5d0a10874dc883350f7a66b420dbddefe2f91 - Sigstore transparency entry: 738191891
- Sigstore integration time:
-
Permalink:
dhruv13x/jules-cli@88cbcee114429fc590533e7fcf4f381c0e237676 -
Branch / Tag:
refs/tags/v12.0.0 - Owner: https://github.com/dhruv13x
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@88cbcee114429fc590533e7fcf4f381c0e237676 -
Trigger Event:
push
-
Statement type: