sparrow-cli 0.4.0

A local-first Rust agent cockpit — route, run, replay, rewind
Documentation
[package]
name = "sparrow-cli"
version = "0.4.0"
edition = "2024"

description = "A local-first Rust agent cockpit — route, run, replay, rewind"
license = "MIT"
authors = ["ucav <abdou@users.noreply.github.com>"]
repository = "https://github.com/ucav/Sparrow"
keywords = ["agent", "ai", "cli", "llm", "coding-assistant"]
categories = ["command-line-utilities", "development-tools"]


[[bin]]
name = "sparrow"
path = "src/main.rs"

[lib]
name = "sparrow"
path = "src/lib.rs"


[dependencies]

tokio = { version = "1", features = ["full"] }

tokio-util = { version = "0.7", features = ["rt"] }

ratatui = "0.29"

crossterm = "0.28"

serde = { version = "1", features = ["derive"] }

serde_json = "1"

toml = "0.8"

reqwest = { version = "0.12", default-features = false, features = ["rustls-tls", "stream", "json", "blocking", "multipart"] }

rusqlite = { version = "0.32", features = ["bundled"] }

git2 = "0.19"

similar = "2"

thiserror = "2"

anyhow = "1"

tracing = "0.1"

tracing-subscriber = { version = "0.3", features = ["env-filter"] }

async-trait = "0.1"

secrecy = { version = "0.10", features = ["serde"] }

chrono = { version = "0.4", features = ["serde"] }

clap = { version = "4", features = ["derive"] }

uuid = { version = "1", features = ["v4", "serde"] }

futures = "0.3"

pin-project-lite = "0.2"

parking_lot = "0.12"
dirs = "6"
regex = "1"
rand = "0.8"
url = "2"
tokio-tungstenite = "0.24"

futures-util = "0.3"

mime_guess = "2"
base64 = "0.22"
chacha20poly1305 = "0.10"
cron = "0.12"
ctrlc = "3"
tree-sitter = { version = "0.23", optional = true }
tree-sitter-rust = { version = "0.23", optional = true }

tree-sitter-python = { version = "0.23", optional = true }

tree-sitter-javascript = { version = "0.23", optional = true }

axum = { version = "0.7", features = ["ws", "multipart"] }

tower = "0.5"

rpassword = "7"
dialoguer = "0.11"
walkdir = "2"

lettre = { version = "0.11", default-features = false, features = ["tokio1-rustls-tls", "smtp-transport", "builder"], optional = true }

imap = { version = "2", optional = true }

native-tls = { version = "0.2", optional = true }



# OS keychain

keyring = { version = "3", optional = true }



[target.'cfg(target_os = "linux")'.dependencies]

nix = { version = "0.31", features = ["sched"] }

[dev-dependencies]
criterion = "0.5"

proptest = "1"

tempfile = "3"



[features]
default = ["keyring"]
keyring-dep = ["keyring"]
browser = []
treesitter = ["tree-sitter", "tree-sitter-rust", "tree-sitter-python", "tree-sitter-javascript"]
email = ["lettre", "imap", "native-tls"]


[profile.release]

opt-level = "z"

lto = true

strip = true

codegen-units = 1



[[bench]]

name = "micro_bench"

harness = false