ironflow-core
Core building blocks for the ironflow workflow engine. This crate provides composable, async operations that can be chained via plain Rust variables to build headless CI/CD, DevOps, and AI-powered workflows.
Operations
| Operation | Description |
|---|---|
Shell |
Execute a shell command with timeout, env control, and kill_on_drop. |
Agent |
Invoke an AI agent (Claude Code by default) with structured output support. |
Http |
Perform HTTP requests via [reqwest] with builder-pattern ergonomics. |
Provider trait
The AgentProvider trait abstracts the AI
backend. The built-in ClaudeCodeProvider
shells out to the claude CLI; swap it for
RecordReplayProvider
in tests for deterministic, zero-cost replay.
Quick start
use ironflow_core::prelude::*;
# async fn example() -> Result<(), OperationError> {
let files = Shell::new("ls -la").await?;
let provider = ClaudeCodeProvider::new();
let review = Agent::new()
.prompt(&format!("Summarise:\n{}", files.stdout()))
.model(Model::HAIKU)
.max_budget_usd(0.10)
.run(&provider)
.await?;
println!("{}", review.text());
# Ok(())
# }