#artificial-intelligence #chain #llm #variables

bin+lib cchain

An AI-native modern cli automation tool built with Rust

25 releases

new 0.3.31 Mar 27, 2025
0.3.3 Mar 13, 2025
0.2.9 Feb 21, 2025
0.1.9 Feb 4, 2025
0.1.4 Jan 31, 2025

#270 in Machine learning

Download history 627/week @ 2025-01-29 232/week @ 2025-02-05 624/week @ 2025-02-12 516/week @ 2025-02-19 75/week @ 2025-02-26 225/week @ 2025-03-05 288/week @ 2025-03-12 22/week @ 2025-03-19

625 downloads per month
Used in 2 crates

MIT license

105KB
2K SLoC

πŸš€ cchain

Automate like the future depends on it.
Replace brittle shell scripts with AI-powered, retry-aware workflows. Built in Rust for speed and reliability.


⚑ Quick Example

Automate Git commits with AI-generated messages (no more "fix typo" commits!):

cchain run ./cchain_git_commit.json # Using a pre-built workflow to commit changes with AI

JSON Workflow (cchain_git_commit.json):

[
  {
    "command": "git",
    "arguments": ["add", "--all"],
    "retry": 3
  },
  {
    "command": "git",
    "arguments": [
      "commit", "-m", 
      "llm_generate('Summarize these changes in 1 line', 'git diff --staged')"
    ],
    "failure_handling_options": {
      "exit_on_failure": true,
      "remedy_command_line": { "command": "git", "arguments": ["reset"] }
    }
  },
  {
    "command": "git",
    "arguments": ["push"],
    "retry": 2
  }
]

🌟 Why Developers Love cchain

Problem cchain Solution
"Bash scripts break at 3 AM" βœ… Declarative JSON workflows with built-in retries
"Commit messages take forever" βœ… AI-generated inputs via LLMs
"Why does CI/CD fail locally?!" βœ… Identical behavior across local/CI environments
"Makefiles are so 1980" βœ… Simple syntax with concurrency (beta)
"Dependency hell" βœ… Single binaryβ€”zero runtime dependencies

πŸ› οΈ Features

πŸ”— Chain Commands Like a Pro

  • Retry failed steps (up to N times, or use -1 to retry indefinitely until succeeded)
  • Pass outputs between commands via environment variables
  • Fix failures automatically: Roll back with remedy_command_line

πŸ€– AI-Powered Automation

"arguments": ["llm_generate('Summarize this error', 'cat crash.log')"]
  • Integrate LLMs (OpenAI, local models via Ollama, etc.)
  • Generate commit messages, error summaries, test data on the fly

🌐 Cross-Platform Consistency

  • Works on Linux/macOS/Windows out of the box
  • No more if [[ "$OSTYPE" == "linux-gnu"* ]]; then...

⚑ Performance You’ll Notice

  • Built in Rustβ€”starts faster than your shell’s && chain
  • Uses 10x less memory than Python/Ruby scripts

πŸ“¦ Installation

One-line install (requires Rust):

cargo install cchain

Pre-built binaries (coming soon! Star the repo for updates!)


πŸš€ Getting Started

1. Create Your First Workflow

cchain new deploy --prompt "Create a workflow to pull docker image from xxx, then run it in the background"

AI generates a starter cchain_deploy.json!

2. Run It!

cchain run ./cchain_deploy.json

3. Save for Later

cchain add ./cchain_deploy.json  # Bookmark it as workflow #0
cchain run 0  # Re-run anytime
cchain run deploy # Or, use keyword to run it
cchain run "deploy some other fancy stuff" # Or, use multiple keywords

4. Access Public Chains

You may also want to share your chain, or find chains created by someone else. I hosted a GitHub repository for this purpose:

git clone https://github.com/AspadaX/cchain-chains

It is much welcomed to PR new chains to this repository!


🧩 Advanced Usage

Dynamic Environment Variables

{
  "command": "echo",
  "arguments": ["Building $APP_VERSION"],
  "environment_variables_override": {
    "APP_VERSION": "llm_generate('Generate a semantic version')"
  },
  "stdout_stored_to": "<<build_id>>"  # Pass to next command!
}

Concurrent Tasks (Beta)

[
  {
    "command": "xh download http://example.com/large-asset.zip",
    "concurrency_group": 1
  },
  {
    "command": "xh download http://example.com/large-asset.zip",
    "concurrency_group": 1
  },
  {
    "command": "xh download http://example.com/large-asset.zip",
    "concurrency_group": 1
  }
]  # Download 3 files in parallel

You may find examples in the ./examples directory of this repo. Also, you may use the following command to generate a template chain file:

cchain new your_file_name

πŸ” Comparison

cchain Bash Just Python
Retry Logic βœ… Built-in ❌ Manual ❌ Manual ❌ Manual
AI Integration βœ… Native ❌ None ❌ None ❌ Add-ons
Cross-Platform βœ… Single Bin βœ… (Fragile) βœ… βœ… (If setup)
Learning Curve Low (JSON) High Medium High

πŸ› οΈ Use Cases (Just mocks, but feasible)

CI/CD Made Simple

[
  { "command": "cargo test", "retry": 2 },
  { "command": "llm_generate('Write release notes', 'git log') > CHANGELOG.md" },
  { "command": "docker build -t myapp ." }
]

Developer Onboarding

cchain new setup --prompt "Clone repo, install deps, start services"

AI-Augmented Debugging

{
  "command": "llm_generate('Fix this error', './failing_script.sh 2>&1')",
  "stdout_stored_to": "<<fix_suggestion>>"
}

πŸ“š Documentation

Guides


🀝 Contributing

We welcome PRs!


πŸ“œ License

MIT Β© 2024 Xinyu Bao "Do whatever you wantβ€”just don’t make CI pipelines cry."

Dependencies

~16–29MB
~399K SLoC