A comprehensive Rust toolkit for Jules AI - the autonomous coding agent. Pure SDK, CLI tools, and MCP server in one modular ecosystem.
Gules provides three ways to interact with Jules AI:
- π§ SDK (
jules-rs) - Pure 1:1 Rust SDK for Jules API (independently publishable) - π» CLI (
jules-cli/gules) - Command-line interface with extended features - π MCP (
jules-mcp) - Model Context Protocol server for AI assistants
All components implement 100% pure 1:1 SDK mapping - every Jules API method is available.
Gules uses feature flags to let you build exactly what you need:
# CLI only (default) - Extended CLI, no MCP
cargo build -p gules
# CLI + Basic MCP - Extended CLI + 9 SDK MCP tools
cargo build -p gules --features mcp
# CLI + Extended MCP - Extended CLI + 11 MCP tools (SDK + extended)
cargo build -p gules --features extended-mcp
# Pure SDK CLI - Minimal, 9 core commands only
cargo build -p jules-cli
# Pure SDK MCP - Independently usable MCP server
cargo build -p jules-mcpSee FEATURE_FLAGS.md for complete details.
# From source (requires Rust 1.70+)
git clone https://github.com/kiwina/gules
cd gules
# Install with extended MCP support (recommended)
cargo install --path crates/gules --features extended-mcp
# Or CLI-only (faster build, smaller binary)
cargo install --path crates/gules
# Verify installation
gules --versionCreate ~/.config/gules/config.toml:
api_key = "your-jules-api-key-here"Get your API key from jules.google.com/settings
# Create a Jules session
gules create "Fix the authentication bug" --source "sources/github/owner/repo"
# Watch progress
gules watch <session-id>
# Check status
gules session <session-id>This workspace contains multiple crates for different use cases:
gules/
βββ crates/
β βββ jules-rs/ # Pure Jules API SDK (9 methods, 100% coverage)
β βββ jules-core/ # Shared utilities (config, display)
β βββ jules-cli/ # Basic CLI commands (9 pure SDK commands)
β βββ jules-mcp/ # MCP server (9 SDK tools + 2 extended)
β βββ gules/ # Extended CLI (all features + conveniences)
βββ tests/ # Integration tests
jules-rs β Pure 1:1 SDK (10 API methods, independently publishable)
β
jules-cli β Pure SDK exposure (13 commands)
β
jules-mcp β Pure SDK MCP server (9 tools)
β
gules β Extended features (17 commands, or 11 MCP tools with extended-mcp)
# Session Management
gules sessions [--state STATE] [--limit N] # List sessions
gules session <SESSION_ID> # Get session details
gules active [--limit N] # List active sessions
gules completed [--limit N] # List completed sessions
gules failed [--limit N] # List failed sessions
gules create <PROMPT> --source <SOURCE> # Create session
gules send-message <SESSION_ID> <MESSAGE> # Send message
gules approve-plan <SESSION_ID> # Approve plan
# Source Management
gules sources [--filter FILTER] [--limit N] # List sources
gules source <SOURCE_ID> # Get source details
# Activity Management
gules activities <SESSION_ID> [--limit N] # List activities
gules activity <SESSION_ID> <ACTIVITY_ID> # Get activity details
# Configuration
gules config show # Show config
gules config init # Initialize config
gules config set <KEY> <VALUE> # Set config value
gules activity <SESSION_ID> <ACTIVITY_ID> # Get activity# Convenience Filters
gules active # Show active sessions
gules completed # Show completed sessions
gules failed # Show failed sessions
# Monitoring
gules watch <SESSION_ID> # Monitor session until complete
gules monitor # Monitor all active sessions
# GitHub Integration (requires gh CLI)
gules issue-status <ISSUE> --owner <OWNER> --repo <REPO>
gules pr-status <SESSION_ID>Run gules as an MCP server for AI assistants like Claude Desktop or VS Code Copilot:
gules --mcpPure SDK Tools (9):
create_session- Create new Jules sessionget_session- Get session detailslist_sessions- List all sessionssend_message- Send message to sessionapprove_plan- Approve session planlist_sources- List available sourcesget_source- Get source detailslist_activities- List session activitiesget_activity- Get activity details
Extended Tools (2):
watch_session- Monitor session until completionissue_status- Check GitHub issue status
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"gules": {
"command": "/path/to/gules",
"args": ["--mcp"],
"env": {
"JULES_API_KEY": "your-api-key-here"
}
}
}
}See docs/MCP.md for complete MCP setup guide.
Use jules-rs in your Rust projects:
use jules_rs::JulesClient;
#[tokio::main]
async fn main() -> anyhow::Result<()> {
// Create client
let client = JulesClient::new("your-api-key");
// List sessions
let response = client.list_sessions(Some(10), None).await?;
println!("Found {} sessions", response.sessions.len());
// Get session details
let session = client.get_session("session-id").await?;
println!("Session state: {:?}", session.state);
// Create new session
let request = CreateSessionRequest {
prompt: "Fix authentication bug".to_string(),
source_context: SourceContext {
source: "sources/github/owner/repo".to_string(),
github_repo_context: Some(GitHubRepoContext {
starting_branch: "main".to_string(),
}),
},
title: Some("Fix auth bug".to_string()),
require_plan_approval: None,
automation_mode: None,
};
let session = client.create_session(request).await?;
Ok(())
}SDK Features:
- β 100% Jules API coverage (9 methods)
- β Pure 1:1 API mapping
- β Type-safe with full Rust types
- β Async/await with tokio
- β Comprehensive error handling
- β Independently publishable
| Component | SDK Coverage | Status |
|---|---|---|
| jules-rs (SDK) | 9/9 (100%) | β Complete |
| jules-cli | 9/9 (100%) | β Complete |
| jules-mcp | 9/9 (100%) | β Complete |
| gules (Extended) | 9/9 + extras | β Complete |
All layers implement 100% pure 1:1 SDK mapping!
# Clone repository
git clone https://github.com/kiwina/gules
cd gules
# Build all crates
cargo build --workspace
# Run tests
cargo test --all
# Build release
cargo build --release# Run all tests
cargo test --all
# Run specific crate tests
cargo test --package jules-rs
cargo test --package jules-cli
cargo test --package jules-mcp
# Run with verbose output
cargo test --all -- --nocapture- Total Tests: 42 passing
- Compilation: Clean (0 errors, 0 warnings)
- Code Coverage: 100% SDK API coverage
- Status: Production ready β
- README.md - This file (project overview)
- CHANGELOG.md - Version history and changes
- AGENTS.md - AI agent development guide
- docs/COMMANDS.md - Complete command reference
- docs/MCP.md - MCP integration guide
- docs/CI.md - CI/CD guide
Contributions welcome! Please:
- Read the architecture principle (SDK = pure, CLI/MCP = pure exposure, gules = conveniences)
- Ensure all tests pass:
cargo test --all - Follow existing code patterns
- Update documentation for new features
Licensed under the MIT License. See LICENSE for details.
- Jules AI: jules.google.com
- MCP Specification: modelcontextprotocol.io
- Repository: github.com/kiwina/gules
- Issues: github.com/kiwina/gules/issues
Built with π Rust β’ Powered by Jules AI β’ Compatible with MCP
Version: 0.2.1
Status: Production Ready β
Last Updated: October 23, 2025