jules-cli
The AI-Powered Developer Assistant.
Automate tests, refactoring, and feature development with a single command.
⚡ Quick Start (The "5-Minute Rule")
Prerequisites
- Python 3.8 or higher.
- Git installed and configured.
- pip package manager.
Install
Install the package in editable mode or from source:
pip install .
Run
Initialize your credentials and configuration (interactive wizard):
jules init
Demo
Fix a bug, run tests, and create a PR in seconds:
# 1. Ask Jules to fix a bug
jules task "Fix the NullReferenceError in user_login function"
# 2. Verify the fix
jules auto --runner pytest
# 3. Create a Pull Request
jules pr create --title "Fix: Handle null user in login"
✨ Features (The "Why")
Core Capabilities
- Automated Bug Fixing:
jules autodetects test failures and attempts to fix them automatically. - Task Execution:
jules task "Implement feature X"writes code, tests, and docs from natural language. - Refactoring:
jules refactormodernizes legacy codebases safely. - Test Generation:
jules testgencreates unit and integration tests for existing code. - Proactive Suggestions:
jules suggestaudits your code for technical debt and security risks.
Performance & Experience
- Smart Caching: Local caching of session artifacts to minimize API latency.
- Async Core: Built for speed with asynchronous I/O operations.
- TUI Mode: A rich terminal user interface (
jules tui) for complex sessions.
Security
- Secure Storage: API keys are stored in the system keyring, never in plain text.
- Safe Patching: Review patches before applying them to your local file system.
- Local Processing: Supports
.julesignoreto keep sensitive files out of the context window.
🛠️ Configuration (The "How")
Environment Variables
| Name | Description | Default | Required |
|---|---|---|---|
JULES_API_KEY |
Your Jules API Key. | None | Yes |
GITHUB_TOKEN |
Token for creating PRs and interacting with GitHub. | None | No (for PRs) |
CLI Arguments
Global arguments available for every command:
| Flag | Description |
|---|---|
--debug |
Enable debug logging for detailed troubleshooting. |
--verbose |
Enable verbose output. |
--json |
Output results in JSON format (useful for scripting). |
--pretty |
Pretty-print JSON output. |
--no-color |
Disable colored output. |
Configuration File
Settings are stored in ~/.config/jules/config.toml. You can manage them via CLI:
# Set a value
jules config set core.logging_level DEBUG
# Get a value
jules config get core.default_branch
🏗️ Architecture
Directory Tree
.
├── src/jules_cli
│ ├── commands/ # CLI command implementations (auto, task, pr...)
│ ├── core/ # Jules API client interaction
│ ├── git/ # Git VCS wrappers
│ ├── patch/ # Patch application and conflict resolution
│ ├── testing/ # Test runner integration (pytest, unittest)
│ ├── tui/ # Textual-based TUI
│ └── utils/ # Shared utilities (logging, config, crypto)
└── tests/ # Pytest suite
Data Flow
- Input: User runs
jules task "...". - Process:
- CLI parses args and loads
configviasrc/jules_cli/utils/config.py. coresends prompt + context (filtered by.julesignore) to Jules API.- Jules API returns a
Patch.
- CLI parses args and loads
- Output:
patchmodule applies changes to local files.testingvalidates changes viapytestorunittest.- Results displayed via
richconsole ortextualTUI.
🐞 Troubleshooting
Common Issues
| Error Message | Solution |
|---|---|
JulesError: Unauthorized |
Run jules auth login to refresh credentials. |
FileNotFoundError: config.toml |
Run jules init to create default config. |
DatabaseLocked |
Ensure no other jules process is running. |
Command not found: jules |
Ensure the virtual environment is activated and installed (pip install .). |
Debug Mode
To see detailed logs for issue reporting:
jules --debug task "Verify setup"
Logs are written to stderr and can be captured:
jules --debug task "..." 2> jules_debug.log
🤝 Contributing
We welcome contributions! Please follow these steps to set up your development environment.
Dev Setup
-
Clone the repository:
git clone https://github.com/dhruv13x/jules-cli.git cd jules-cli
-
Install in editable mode with dev dependencies:
pip install -e ".[dev]"
-
Run Tests:
pytest
-
Linting:
ruff check . black .
See CONTRIBUTING.md for more detailed guidelines.
🗺️ Roadmap
Phase 1: Foundation (Current)
- Core CLI structure & Session management.
- Auto-fixing & Patch application.
- TUI & Secure Auth.
Phase 2: The Standard
-
jules doctor& Interactiveinit. - Context-aware suggestions (
jules suggest).
Phase 3: The Ecosystem (Upcoming)
- CI/CD Templates.
- IDE Extensions (VS Code, JetBrains).
- Plugin Architecture.
Phase 4: The Vision (Future)
- Multi-Agent Orchestration.
- Autonomous Bug Hunting.
For a detailed view, check ROADMAP.md.
Metadata
Release files for jules-cli 17.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| jules_cli-17.0.1.tar.gz | 54.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| jules_cli-17.0.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 105.9 kB
Release files / jules_cli-17.0.1.tar.gz
| Download URL | jules_cli-17.0.1.tar.gz |
|---|---|
| Size | 54.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
096c44631cc8fcea9032207324c0a90b25ea3de10ed54ce918babc7d86e1d458
|
|
BLAKE2b-256 checksum How to use checksums |
6947e7db5606de7dbb462c8a866dd851ae4edb1ccc601057a2147442d1f390dc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Dec 15, 2025.
Transparency logRelease files / jules_cli-17.0.1-py3-none-any.whl
| Download URL | jules_cli-17.0.1-py3-none-any.whl |
|---|---|
| Size | 51.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0d2783e0c4dbb3bb98e230df6a86a36e165ce01bf6542b810b65afabbb6d2e0e
|
|
BLAKE2b-256 checksum How to use checksums |
d508ad16b922c8596992d2ae5935139bfc2f7ee2b79cbc172763101bcc5b0483
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Dec 15, 2025.
Transparency log