Skip to main content

A developer CLI for Jules API automation

Project description

jules-cli logo

PyPI version Python Wheel Release

Build status Codecov Test Coverage Code style: black Ruff Security

Downloads PyPI Downloads OS Python Versions

License: MIT

Docs

jules-cli

PyPI Version Python Versions License GitHub Workflow Status

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 --json support for better observability.
  • Context Management: Use .julesignore to 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-Key header 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jules_cli-12.0.0.tar.gz (44.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

jules_cli-12.0.0-py3-none-any.whl (43.5 kB view details)

Uploaded Python 3

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

Hashes for jules_cli-12.0.0.tar.gz
Algorithm Hash digest
SHA256 7cb2d36bed08948ebbee61d73dd1484e6d35507700c220f1aeec6039755b4a14
MD5 9b432db244ea1eac5c9f71b568f2a1de
BLAKE2b-256 3626fb0037e36ccea3e461dfff2942b126336e79d1a477633aef73a07448c8be

See more details on using hashes here.

Provenance

The following attestation bundles were made for jules_cli-12.0.0.tar.gz:

Publisher: publish.yml on dhruv13x/jules-cli

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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

Hashes for jules_cli-12.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4c86f1785635426a0b55bed279a5d0a10874dc883350f7a66b420dbddefe2f91
MD5 91dd26296ababe39616f1cb4a11f6328
BLAKE2b-256 4082b46bc68c0771ae0d464b4b244827c943825e2bdda61868410315432301ba

See more details on using hashes here.

Provenance

The following attestation bundles were made for jules_cli-12.0.0-py3-none-any.whl:

Publisher: publish.yml on dhruv13x/jules-cli

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page