[package]
name = "ralph-agent-loop"
version = "0.2.2"
edition = "2024"
rust-version = "1.94"
license = "MIT"
description = "A Rust CLI for managing AI agent loops with a structured JSON task queue"
repository = "https://github.com/fitchmultz/ralph"
homepage = "https://github.com/fitchmultz/ralph"
documentation = "https://docs.rs/ralph-agent-loop"
readme = "README.md"
keywords = ["ai", "agent", "cli", "task-queue", "workflow"]
categories = ["command-line-utilities", "development-tools"]
build = "build.rs"
[lib]
name = "ralph"
path = "src/lib.rs"
[[bin]]
name = "ralph"
path = "src/main.rs"
[dependencies]
anyhow = "1.0.102"
clap = { version = "4.5.60", features = ["derive"] }
clap_complete = "4.5"
csv = "1.4"
colored = "3"
ctrlc = "3.5.2"
dotenvy = "0.15.7"
env_logger = "0.11.9"
log = "0.4.29"
serde = { version = "1.0.228", features = ["derive"] }
serde_json = "1.0"
serde_yaml = "0.9"
jsonc-parser = { version = "0.29", features = ["serde"] }
tempfile = "3.26.0"
regex = "1.12"
shlex = "1.3"
schemars = { version = "1.2", features = ["derive"] }
thiserror = "2.0.18"
time = { version = "0.3.47", features = ["formatting", "parsing", "macros"] }
dialoguer = { version = "0.12", features = ["fuzzy-select"] }
atty = "0.2"
notify-rust = { version = "4", optional = true }
chrono = { version = "0.4", features = ["serde"] }
indicatif = { version = "0.18", features = ["rayon"] }
notify = "8"
nucleo-matcher = "0.3"
globset = "0.4"
ureq = { version = "3", features = ["json"] }
hmac = "0.12"
sha2 = "0.10"
hex = "0.4"
crossbeam-channel = "0.5"
[target.'cfg(unix)'.dependencies]
libc = "0.2"
signal-hook = "0.4"
[target.'cfg(windows)'.dependencies]
windows-sys = { version = "0.61", features = [
"Win32_System_Threading",
"Win32_Foundation",
"Win32_Media_Audio",
"Win32_System_Diagnostics_ToolHelp",
] }
[features]
default = ["notifications"]
notifications = ["notify-rust"]
[dev-dependencies]
serial_test = "3.4.0"
insta = "1.46.3"
[build-dependencies]
vergen-gitcl = { version = "9.1", features = ["build"] }