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.6.tar.gz (87.1 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.6-py3-none-win_arm64.whl (2.1 MB view details)

Uploaded Python 3Windows ARM64

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

Uploaded Python 3Windows x86-64

clud-2.0.6-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.6-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.4 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

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

Uploaded Python 3macOS 11.0+ ARM64

clud-2.0.6-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.6.tar.gz.

File metadata

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

File hashes

Hashes for clud-2.0.6.tar.gz
Algorithm Hash digest
SHA256 45780224d17c54b8c4a8404859436d1eb095753d6325dbf5cbab45f0af66d492
MD5 08d5626672c37848be1f09c8997305df
BLAKE2b-256 c49569edcbb5b8e215c532e4034180e3b3aa448bdcb609803995528cb6c43e6e

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for clud-2.0.6-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 69d2ab11ca819bfe2b23b65bc70e19e5f307023b7396d04c6d36eaeb178a9317
MD5 91caacafb76e7d5da4b8a32c3134cd88
BLAKE2b-256 5b038ef4b8df67655d0260dd113262cb3d6c414fc2d418c1665de2c68659f200

See more details on using hashes here.

File details

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

File metadata

  • Download URL: clud-2.0.6-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.6-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 f418fde7a6fd2106e43287d1ac9e641fca60865824cd6c9811d11d460dae9fd0
MD5 b84d0cfbb3e16baf78b9109051fd280d
BLAKE2b-256 2ff9c300baebc04a00f01b02c07c82185983ea57d750db3551fe2a9ba91a0996

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for clud-2.0.6-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d5c81c757a96b384f2e4138d0d2f50b6ada26b2833affa5234eeefa3a66b5fe2
MD5 1004228943bec2ae1b4280e2641fc5c3
BLAKE2b-256 42c4540541259466c2f31caf4f6ca4c2564d93e2e3417728cdc0d5879fbeff1c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for clud-2.0.6-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 cd1d9d70570a6f7ccd8772fec1fb13b05ca77fc10ebf4754cb3ed5b8bae66986
MD5 ad41305da77f530cbc41614a5a2b97e8
BLAKE2b-256 a914c7e49fd2f9bc376e23e200d6f87a211e3a723faae7af66a4c2097f6fb053

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for clud-2.0.6-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 20d003ad3decb929219934142fc1ba197fdd0dc32a21f3efdda5cea4ce727e86
MD5 1a4f8df11ba6fca41facfb4871bda540
BLAKE2b-256 08c5d6df62ddf5c148fd55ffa5e2fb83e008a39765f8f863dfea62d886e008fa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for clud-2.0.6-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 53ff79f5be5068b3073109c94786d269ad0f45f9b9962de4680bbfa13597e644
MD5 066122a0444dfc2fc7a4baf5133c89bb
BLAKE2b-256 1241b74381a910bb08ea1be840ed201464228dbf1c19c22dbb30253a0a4ff193

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