# jules-cli > Interact with the Jules CLI to manage asynchronous coding sessions. Use this skill sparingly for complex, isolated tasks that benefit from a remote VM. - Author: Andrew Stafford - Repository: ajstafford/jules-ai-cli-skill - Version: 20260202195205 - Stars: 0 - Forks: 0 - Last Updated: 2026-02-06 - Source: https://github.com/ajstafford/jules-ai-cli-skill - Web: https://mule.run/skillshub/@@ajstafford/jules-ai-cli-skill~jules-cli:20260202195205 --- --- name: jules-cli description: Interact with the Jules CLI to manage asynchronous coding sessions. Use this skill sparingly for complex, isolated tasks that benefit from a remote VM. --- # Jules CLI Skill ## Overview This skill enables the agent to interact with the `jules` CLI. It supports task assignment, session monitoring, and result integration. ## Usage Guidelines (CRITICAL) To prevent excessive and inappropriate session creation, you **must** follow these rules: 1. **Local First**: If you can solve the task locally within your current environment (e.g., editing files, running tests, small refactors), **do not** use Jules. 2. **Complexity Threshold**: Only use Jules for tasks that are: * **Large-scale**: Touching many files or requiring significant architectural changes. * **Isolated**: Benefiting from a clean, remote environment to avoid local dependency issues. * **Exploratory**: Tasks where the solution isn't immediately obvious and requires iteration in a VM. 3. **No Proliferation (One at a Time)**: * **Never** create multiple sessions for the same task. * **Never** use a loop or parallel execution to spin up several sessions at once. * Wait for a session to complete and inspect the results before deciding if another session is needed. 4. **No "Small" Tasks**: Do not submit tasks like "Add a comment", "Change a variable name", or "Fix a typo". --- ## Safety Controls * **Approval Required**: If you are unsure if a task is "complex enough" for Jules, ask the user for permission before running `jules remote new`. * **Verification**: Always run `jules remote list --session` before creating a new one to ensure you don't already have a pending session for the same repository. --- ## Core Workflow (Manual Control) Prefer using the CLI directly to maintain situational awareness. ### 1. Pre-flight Check Verify repository access and format. ```bash jules remote list --repo ``` *Note: Ensure the repo format is `GITHUB_USERNAME/REPO`.* ### 2. Submit Task Create a session and capture the Session ID. ```bash # Capture the output to get the ID jules remote new --repo --session "Detailed task description" < /dev/null ``` ### 3. Monitor Progress List sessions and look for your ID. Use this robust one-liner to check the status (it handles statuses with spaces like "In Progress"): **Check Status:** ```bash # Extract status for a specific ID by splitting on 2+ spaces jules remote list --session | python3 -c "import sys, re; [print(re.split(r'\s{2,}', l.strip())[-1]) for l in sys.stdin if l.startswith('')] " ``` ### 4. Integrate Results Once the status is **Completed**, pull and apply the changes. ```bash jules remote pull --session --apply < /dev/null ``` --- ## Error Handling & Troubleshooting * **Repository Not Found**: Verify format with `jules remote list --repo`. It must match the GitHub path. * **TTY Errors**: Always use `< /dev/null` for non-interactive automation with the raw `jules` command. * **Credentials**: If you see login errors, ensure `HOME` is set correctly or run `jules login`. --- ## Command Reference | Command | Purpose | | :--- | :--- | | `jules remote list --repo` | Verify available repositories and their exact names. | | `jules remote list --session` | List active and past sessions to check status. | | `jules remote new` | Create a new coding task. | | `jules remote pull` | Apply changes from a completed session. | | `jules teleport ` | Clone and apply changes (useful for fresh environments). |