Loading repository data…
Loading repository data…
wildcard / repository
caro: fast Rust CLI that turns natural‑language tasks into a safe POSIX command. Built for macOS (MLX/Metal) with a built‑in model; supports vLLM/Ollama/LM Studio. JSON‑only output, safety checks, confirmation, multi‑step goals, devcontainer included.
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
✨ Now Generally Available! - Published on crates.io with all core features working. Visit caro.sh for more info.
🆕 CaroML preview — Caro now interprets
.carotask files: an eight-keyword line-keyword DSL that lets you commit intent and have Caro generate the script. Per-platform variants, A/B challengers, runbook drift detection, and the bundledcaro-scaffoldskill for any skill-aware coder agent. Seedocs/caroml/intro.mdandexamples/library/system/.
caro (formerly cmdai) converts natural language descriptions into safe POSIX shell commands using local LLMs. Built with Rust for blazing-fast performance, single-binary distribution, and safety-first design with intelligent platform detection.
$ caro "list all PDF files in Downloads folder larger than 10MB"
Generated command:
find ~/Downloads -name "*.pdf" -size +10M -ls
Execute this command? (y/N) y
Have questions or want to discuss caro with other users? Join the community!
Current Version: 1.5.0 (General Availability)
This project is generally available with all core features implemented, tested, and working. The CLI achieves 93.1% pass rate on comprehensive test suite with zero false positives in safety validation.
Note: The project was originally named
cmdaibut has been renamed tocaro. See Naming History for details.
cargo install carocaro do <job>) — commit intent in .caro files, generate per-platform runbooks, track drift, run A/B experimentsIn 2026, Gartner named Guardian Agents as a formal market category: autonomous oversight layers that monitor, constrain, and govern AI agent behavior in production. Microsoft's Agent Governance Toolkit (OWASP + EU AI Act compliance) and Orchid Security's zero-trust identity layer are two early category leaders.
Most guardian agent products focus on policy, identity, and observability — who is the agent, what permissions does it have, what did it do. Caro occupies a complementary but distinct layer: execution safety for shell and tool calls. It sits at the exact point where a prompt becomes a command, applying deterministic validation before anything reaches the OS.
| Guardian concern | Caro's contribution |
|---|---|
| Prompt injection → RCE | Deterministic regex + CVE rule validation breaks the injection→execution chain (see CVE-2026-25592, CVE-2026-26030) |
| Tool-call governance | Every shell command passes through SafetyValidator regardless of which agent or backend produced it |
| Risk-tiered approval | CRITICAL / HIGH / MEDIUM / LOW risk levels map directly onto tiered human-in-the-loop approval patterns |
| Auditability | Structured JSON output and telemetry hooks give guardian orchestrators a machine-readable safety signal |
| Defense in depth | 5-layer validation pipeline (allowlist → built-in patterns → CVE rules → custom patterns → user confirmation) — no single bypass produces execution |
In short: if your guardian agent stack needs a safety primitive that sits between "the LLM decided to run a command" and "the command hits the shell", Caro is that layer.
See docs/GUARDIAN_AGENT.md for the full explainer.
caro is available via Homebrew, Cargo, and as a standalone binary.
| Install | Upgrade |
|---|---|
brew install wildcard/tap/caro | brew upgrade caro |
cargo install caro
# For Apple Silicon with MLX GPU acceleration:
cargo install caro --features embedded-mlx
Download from the releases page or use the install script:
curl -fsSL https://setup.caro.sh | bash
caro is available via Cargo and as precompiled binaries for most Linux distributions.
cargo install caro
# Add repository (coming soon)
# sudo apt install caro
# For now, use the install script:
curl -fsSL https://setup.caro.sh | bash
# Package coming soon. For now, use:
curl -fsSL https://setup.caro.sh | bash
Download from the releases page:
| Platform | Download |
|---|---|
| Linux x86_64 | caro-linux-amd64 |
| Linux ARM64 | caro-linux-arm64 |
caro is available via WinGet, Cargo, and as a standalone binary.
# Coming soon
# winget install wildcard.caro
cargo install caro
Download caro-windows-amd64.exe from the releases page.
git clone https://github.com/wildcard/caro.git
cd caro
cargo build --release
./target/release/caro --version
Prerequisites: Rust 1.85+, CMake. For Apple Silicon GPU acceleration, install Xcode.
See BUILD.md for detailed build instructions.
# Generate a shell command from natural language
caro "list all PDF files larger than 10MB"
# Output:
# Generated command:
# find . -name "*.pdf" -size +10M
#
# Execute this command? (y/N)
caro [OPTIONS] <PROMPT>
# Basic command generation
caro "list all files in the current directory"
# With specific shell
caro --shell zsh "find large files"
# JSON output for scripting
caro --output json "show disk usage"
# Adjust safety level
caro --safety permissive "clean temporary files"
# Auto-confirm dangerous commands
caro --confirm "remove old log files"
# Verbose mode with timing info
caro --verbose "search for Python files"
| Option | Description | Status |
|---|---|---|
-s, --shell <SHELL> | Target shell (bash, zsh, fish, sh, powershell, cmd) | ✅ Implemented |
-b, --backend <BACKEND> | Inference backend (embedded, ollama, exo, vllm, mesh, ai-horde, hybrid) | ✅ Implemented |
-m, --model-name <NAME> | Model name for the backend (e.g., codellama:7b) | ✅ Implemented |
--safety <LEVEL> | Safety level (strict, moderate, permissive) | ✅ Implemented |
-o, --output <FORMAT> | Output format (json, yaml, plain) | ✅ Implemented |
-y, --confirm | Auto-confirm dangerous commands | ✅ Implemented |
-v, --verbose | Enable verbose output with timing | ✅ Implemented |
-c, --config <FILE> | Custom configuration file | ✅ Implemented |
--show-config | Display current configuration | ✅ Implemented |
-x, --execute | Execute the generated command after validation | ✅ Implemented |
-i, --interactive | Interactive mode with step-by-step confirmation | ✅ Implemented |
--dry-run | Show execution plan without running | ✅ Implemented |
--force-llm | Force LLM inference, bypass static pattern matcher | ✅ Implemented |
# Simple command generation
caro "compress all images in current directory"
# With specific backend
caro --backend ollama "find large log files"
# Force LLM inference (bypass cached patterns)
caro --backend embedded --force-llm "list files"
# Verbose mode for debugging
caro --verbose "show disk usage"
Caro is built to be called by other coder agents and agentic IDEs. Pick the surface that matches your stack:
| Tool | How | Status |
|---|---|---|
| Claude Code | Auto-discovered skill at .claude/skills/caro-shell/SKILL.md (bundled with this repo). Triggers when the user asks for shell-command synthesis. | ✅ Working |
| Claude Code (MCP) | caro mcp serve — exposes generate_command / validate_command / explain_safety over the Model Context Protocol. | 🚧 In progress |
| Codex / Cursor / Continue / Aider / Tabby | Point at caro serve --openai (an OpenAI Chat Completions endpoint backed by caro's safety validator). | 🚧 In progress |
| opencode / crush / droid / Sourcegraph Amp / Letta | Via the upcoming caro mcp serve MCP server. | ⏳ Planned |
| Gemini CLI / Jules | Native Gemini backend. | � |