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-13.0.0.tar.gz (45.1 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-13.0.0-py3-none-any.whl (43.9 kB view details)

Uploaded Python 3

File details

Details for the file jules_cli-13.0.0.tar.gz.

File metadata

  • Download URL: jules_cli-13.0.0.tar.gz
  • Upload date:
  • Size: 45.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for jules_cli-13.0.0.tar.gz
Algorithm Hash digest
SHA256 c33d4fd6f94d0dd54e0aa45397812bbe926e3e72576a0b5f20b68a5645821dc2
MD5 8247409ccb20f2e345e11256d4c48df5
BLAKE2b-256 4fb0a6c03437df0b75be62850c5186e0f3b95b952fadd118e4da8713851fd3a1

See more details on using hashes here.

Provenance

The following attestation bundles were made for jules_cli-13.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-13.0.0-py3-none-any.whl.

File metadata

  • Download URL: jules_cli-13.0.0-py3-none-any.whl
  • Upload date:
  • Size: 43.9 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-13.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1e87e1d358e2a5d2e8df508522dec1ec7299ee0368606b31a5e1e23b8a01dad6
MD5 518a4ef8f113b67986937ffe328a401f
BLAKE2b-256 f30c83a756f747576eaf5f37acf604a18734841f310acf9b2ec435e815219678

See more details on using hashes here.

Provenance

The following attestation bundles were made for jules_cli-13.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