Skip to main content

Fast Rust CLI for running Claude Code and Codex in YOLO mode

Project description

clud

hero-clud

A fast Rust CLI for Claude Code and Codex that runs in YOLO mode by default — no permission prompts, maximum velocity.

The name clud is simply a shorter, easier-to-type version of claude.

Platform Build Lint Unit Test Integration Test
Linux x86 Build Lint Unit Test Integration Test
Linux ARM Build Lint Unit Test Integration Test
Windows x86 Build Lint Unit Test Integration Test
Windows ARM Build Lint Unit Test Integration Test
macOS x86 Build Lint Unit Test Integration Test
macOS ARM Build Lint Unit Test Integration Test

Installation

pip install clud

Usage

clud                              # Launch Claude in YOLO mode via subprocess
clud --codex                      # Use Codex as the backend
clud --claude                     # Use Claude as the backend (default)
clud --pty                        # Force PTY launch mode
clud --subprocess                 # Force subprocess launch mode
clud --detach -p "review this PR" # Start a daemon-managed session without attaching
clud --detachable -p "fix CI"     # Ctrl+C asks whether to keep the session in background
clud -c                           # Continue the most recent conversation
clud --resume                     # Resume a session
clud --resume abc123              # Resume a specific session by ID or search term
clud -p "refactor the auth layer" # Run with a prompt, exit when done
clud -m "what does this do?"      # Send a one-off message
clud --model opus -p "review PR"  # Choose a model
clud --safe -p "drop the table"   # Disable YOLO mode (keeps permission prompts)
clud --dry-run -p "hello"         # Print what would run without executing
echo "explain this error" | clud  # Pipe mode: read prompt from stdin
clud -- --verbose --debug         # Pass extra flags through to the backend
clud attach                       # List background sessions you can reattach to
clud attach sess-123              # Attach to a specific session
clud list                         # Show background session IDs, PIDs, and cwd
clud wasm guest.wasm              # Run a local wasm module with clud's embedded runtime

Flags

Flag Description
-p, --prompt Run with a prompt, exit when complete
-m, --message Send a one-off message
-c, --continue Continue the most recent conversation
-r, --resume [TERM] Resume by session ID or search term
--claude Use Claude as the backend
--codex Use Codex as the backend
--subprocess Force subprocess launch mode
--pty Force PTY launch mode
--detach Start a daemon-managed session directly in the background
--detachable Run attached under the daemon; Ctrl+C prompts whether to background or end
--model <NAME> Set model preference (e.g., haiku, sonnet, opus)
--safe Disable YOLO mode (don't inject --dangerously-skip-permissions)
--dry-run Print what would be executed, then exit
-v, --verbose Show debug output
-h, --help Show help
-V, --version Show version

Unknown flags are forwarded directly to the backend agent.

clud now defaults to subprocess launch mode for Claude and Codex. Use --pty to opt back into PTY while Claude PTY issues are being investigated.

Detached Sessions

Use daemon-managed sessions when you want to disconnect and reattach later.

clud --detachable --codex -p "refactor the parser"
# press Ctrl+C, then press y within 5 seconds to keep it running in background

clud attach
clud attach sess-123
clud list

If you press Ctrl+C in a --detachable session, clud asks continue session in the background? with a 5-second countdown. Press y to background it. Press Ctrl+C again, press anything else, or do nothing to end the session instead.

clud attach without a session ID lists background sessions. clud list shows the same sessions with their root PID and current working directory.

Voice Mode

clud can capture microphone input and transcribe it into the active console prompt with whisper-rs.

# English-only small model
export CLUD_VOICE=1
export CLUD_WHISPER_MODEL=/path/to/ggml-small.en.bin

clud

On Windows PowerShell:

$env:CLUD_VOICE = "1"
$env:CLUD_WHISPER_MODEL = "C:\models\ggml-small.en.bin"

clud

Behavior:

  • Press F3 to start recording and play a short ding
  • Release F3 to stop recording and play a short dong
  • The transcript is inserted into the current prompt without auto-submitting it
  • If the terminal does not emit key-release events, pressing F3 again stops recording

Optional environment variables:

Variable Description
CLUD_VOICE Enable voice mode (1, true, yes, on)
CLUD_WHISPER_MODEL Path to a local whisper.cpp GGML model such as ggml-small.en.bin
CLUD_VOICE_LANGUAGE Force a Whisper language code such as en

clud loop — Autonomous Loop

Run the backend in a ralph loop: iterate on a task until the agent signals it's done, or until the iteration count runs out.

clud loop "Implement the API endpoints from the spec"
clud loop TASK.md                                  # Read prompt from a file
clud loop https://github.com/org/repo/issues/42    # Fetch & iterate on a GH issue
clud loop --loop-count 10 "fix bugs"               # Custom iteration count

Task input modes

The positional argument is classified in this order:

  1. GH issue / PR URL — the issue body is fetched via gh and cached to <git-root>/.clud/loop/<owner>__<repo>__issue-<n>.md. Subsequent runs reuse the cache; pass --refresh to force a re-fetch.
  2. Short form #42 — resolves owner/repo via gh repo view.
  3. Local file path — read as the prompt.
  4. Literal string — used as-is.

Completion signal (DONE / BLOCKED marker files)

clud loop injects a short contract into the prompt asking the agent to write one of two marker files under <git-root>/.clud/loop/:

Marker Meaning Exit code
DONE Task resolved (one-line summary inside) 0
BLOCKED Agent can't proceed (reason inside) 3
(neither) Iteration count exhausted 2
non-zero backend exit Infra failure propagate

Stale DONE / BLOCKED files from a prior run are cleared at start so the loop can't short-circuit on iteration 1.

Opt out with --no-done-marker to restore the old "run N times unless the backend fails" behavior.

clud rebase — Auto-Rebase

Fetches from origin, rebases the current branch, and resolves conflicts.

clud rebase

clud fix — Auto-Fix

Detects linting and test tools in your repo, runs them, and fixes failures in a loop until everything passes.

clud fix

clud up — Ship It

Runs lint, test, cleanup, then commits.

clud up

clud wasm — Embedded Runtime

Loads a local .wasm module, wires up a host logging import, and invokes an exported function.

clud wasm hello.wasm
clud wasm hello.wasm --invoke _start

Development

bash build                  # Build dev wheel (Rust binary + Python package)
bash lint                   # Lint (cargo fmt + clippy + ruff + banned imports)
bash test                   # Unit tests (Rust + Python)
bash test --integration     # Include integration tests with mock agents

License

BSD 3-Clause License

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

clud-2.0.8.tar.gz (92.2 kB view details)

Uploaded Source

Built Distributions

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

clud-2.0.8-py3-none-win_arm64.whl (2.2 MB view details)

Uploaded Python 3Windows ARM64

clud-2.0.8-py3-none-win_amd64.whl (3.0 MB view details)

Uploaded Python 3Windows x86-64

clud-2.0.8-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.5 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

clud-2.0.8-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.4 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

clud-2.0.8-py3-none-macosx_11_0_arm64.whl (2.4 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

clud-2.0.8-py3-none-macosx_10_12_x86_64.whl (1.8 MB view details)

Uploaded Python 3macOS 10.12+ x86-64

File details

Details for the file clud-2.0.8.tar.gz.

File metadata

  • Download URL: clud-2.0.8.tar.gz
  • Upload date:
  • Size: 92.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.11

File hashes

Hashes for clud-2.0.8.tar.gz
Algorithm Hash digest
SHA256 8b46e7c7d5a56f2dabacc54a94c4b14c67b5eb53c78d12f6310f710718def057
MD5 a39c445f8034acf2648eb82c00136edd
BLAKE2b-256 9d5aa4d9f7475585c372d2587f259a3d95a65e0d3a2c44df410a4f9407c45de2

See more details on using hashes here.

File details

Details for the file clud-2.0.8-py3-none-win_arm64.whl.

File metadata

  • Download URL: clud-2.0.8-py3-none-win_arm64.whl
  • Upload date:
  • Size: 2.2 MB
  • Tags: Python 3, Windows ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.11

File hashes

Hashes for clud-2.0.8-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 81fecadb4cab761285f8d58c905475187b0ef5b706b43b557ae0ef1054e2a34a
MD5 2543e2f566eec88130dd6abbd11fca90
BLAKE2b-256 42a23a60fa0a2fab51ba5b917d38b404808ac7a517434d3eff4a26dc7d997459

See more details on using hashes here.

File details

Details for the file clud-2.0.8-py3-none-win_amd64.whl.

File metadata

  • Download URL: clud-2.0.8-py3-none-win_amd64.whl
  • Upload date:
  • Size: 3.0 MB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.11

File hashes

Hashes for clud-2.0.8-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 2c658db9cb35f5aafd4db2729536dbc02110d6c4d05d4db96c29df73e53162d4
MD5 d5f5870712327721ca2c1ffd86782420
BLAKE2b-256 2a3af36c47dcb302aab8ac9d82e20e9397b3d487dc804daac9861d05c4d0c406

See more details on using hashes here.

File details

Details for the file clud-2.0.8-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for clud-2.0.8-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 24bf2d940e02e9623631a399d973edd8d8b679193225032156e57aaee9ce5ab8
MD5 f1714578cee47eb02edc419847ab6f01
BLAKE2b-256 6f2c6408fb07760bc54c52bd2ff08bb1d0cb8497462516d9d96a24f55276efca

See more details on using hashes here.

File details

Details for the file clud-2.0.8-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for clud-2.0.8-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d7ebd159619be6b8a40fcb77c3839994567d5834c929ad0087d319215551bde0
MD5 f88bd962776fe174d185cb7331710478
BLAKE2b-256 4f5f5ce24c761bcd57324be474de6aca1dc57e5fc0e35f18b08bf9c9e104e510

See more details on using hashes here.

File details

Details for the file clud-2.0.8-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for clud-2.0.8-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4c54138075587370f45293a62cb7071e4bca14a5da3b731c1d220ee72cc29f00
MD5 f48f7924313646988a294824af28e85a
BLAKE2b-256 b57b5f51cc3a8a78fd7da0b7eaf624f3fe9467ed0342bb30bf49fde4a21c955d

See more details on using hashes here.

File details

Details for the file clud-2.0.8-py3-none-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for clud-2.0.8-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 2cfc3b7a56db3f726b602c73f0fce6dd94d29937644551ffc6d344fd7288b8fc
MD5 a4acb99baaf81e2a17d94633449417c7
BLAKE2b-256 72af720bd435d08815e703ac6350ba5811c8d3d420b400f79c4b28e34c3d7d48

See more details on using hashes here.

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