start-command 0.29.4

Gamification of coding, execute any command with ability to auto-report issues on GitHub
Documentation

start-command — Rust crate

Crates.io docs.rs Rust CI/CD License: Unlicense

Rust implementation of the start-command CLI. The binary is called start and behaves like the $ command from the JavaScript package.

Installation

# From crates.io:
cargo install start-command

# From source:
cd rust
cargo install --path .

Usage

start echo "Hello World"
start ls -la
start cargo test
start git status
start --list
start --help
start -i docker -d --label task.tool=codex -- my-task
start --attach <id>
start --resume <id> -- <command>
start --resume-all
start --session-id <uuid> --append-attempt -- <command>
start --continues <id> -- <command>
start --rename <id> <name>

See the project-wide README, docs/USAGE.md, docs/PIPES.md, and docs/EXAMPLES.md for the full user-facing guide and checked examples.

-h also prints usage. Labels persist across Docker resumes. New detached containers support copy-free command handoff; legacy snapshots require capacity preflight. Log uploads are private and sanitized; manual --no-sanitize opts out. Sanitization runs the sensitive-data-sanitizer CLI of @link-foundation/sensitive-data-sanitizer (Node.js 22.13 or later) from PATH or START_SENSITIVE_DATA_SANITIZER; --upload-log installs it with Bun or npm when it is missing, and automatic uploads without it are blocked.

Snapshot resumes take --snapshot-wait, --snapshot-disk-wait, --remove-original-after, --snapshot-size-hint and --snapshot-prepare, and exit 75 when they should be retried later; --cleanup <id> removes one execution's containers and snapshot images without forcing.

Development

cd rust
cargo build
cargo test
cargo fmt --all
cargo clippy --all-targets --all-features

Releases

Rust releases are published to crates.io and tagged rust-v<version> in GitHub Releases. The release title carries the [Rust] prefix, e.g. [Rust] 0.14.0, so JS and Rust releases can be told apart at a glance.

License

Released into the public domain under the Unlicense.

Docker resource and recovery controls

Launch with --memory 64m, --memory-swap 64m, --memory-reservation 32m and --cpus 1, or use daemon percentages and uniform ranges such as --memory '70%-80%'. Memory-swap defaults to memory. Reservation is a soft cap and must be below the hard memory cap when one is set. It accepts the same sizes and percentages, is shown in --status, and survives resumes. --cpu-penalty enables delayed caps and reports state through status. Manual --resume <id> --memory 128m updates before starting; --on-kill-resume-memory changes memory only after a fresh qualifying OOM. See the full resource and recovery guide and incident research.