[package]
edition = "2024"
name = "sparrow-cli"
version = "0.5.0"
authors = ["ucav <abdou@users.noreply.github.com>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A local-first Rust agent cockpit — route, run, replay, rewind"
readme = "README.md"
keywords = [
"agent",
"ai",
"cli",
"llm",
"coding-assistant",
]
categories = [
"command-line-utilities",
"development-tools",
]
license = "MIT"
repository = "https://github.com/ucav/Sparrow"
[features]
browser = []
default = ["keyring"]
email = [
"lettre",
"imap",
"native-tls",
]
keyring-dep = ["keyring"]
treesitter = [
"tree-sitter",
"tree-sitter-rust",
"tree-sitter-python",
"tree-sitter-javascript",
]
[lib]
name = "sparrow"
path = "src/lib.rs"
[[bin]]
name = "sparrow"
path = "src/main.rs"
[[test]]
name = "auth_store"
path = "tests/auth_store.rs"
[[test]]
name = "browser_computer_e2e"
path = "tests/browser_computer_e2e.rs"
[[test]]
name = "code_nav"
path = "tests/code_nav.rs"
[[test]]
name = "composer_history"
path = "tests/composer_history.rs"
[[test]]
name = "context_compaction"
path = "tests/context_compaction.rs"
[[test]]
name = "distiller_facts"
path = "tests/distiller_facts.rs"
[[test]]
name = "docs_site"
path = "tests/docs_site.rs"
[[test]]
name = "edit_tool"
path = "tests/edit_tool.rs"
[[test]]
name = "engine_loop"
path = "tests/engine_loop.rs"
[[test]]
name = "gateway_sessions"
path = "tests/gateway_sessions.rs"
[[test]]
name = "github_action"
path = "tests/github_action.rs"
[[test]]
name = "integration"
path = "tests/integration.rs"
[[test]]
name = "knowledge_graph_tool"
path = "tests/knowledge_graph_tool.rs"
[[test]]
name = "lsp_tool"
path = "tests/lsp_tool.rs"
[[test]]
name = "media_artifacts"
path = "tests/media_artifacts.rs"
[[test]]
name = "memory_persist"
path = "tests/memory_persist.rs"
[[test]]
name = "ollama_stream"
path = "tests/ollama_stream.rs"
[[test]]
name = "one_click"
path = "tests/one_click.rs"
[[test]]
name = "orchestrator_gate"
path = "tests/orchestrator_gate.rs"
[[test]]
name = "plugins"
path = "tests/plugins.rs"
[[test]]
name = "sandbox_policy"
path = "tests/sandbox_policy.rs"
[[test]]
name = "security_audit"
path = "tests/security_audit.rs"
[[test]]
name = "session_continuity"
path = "tests/session_continuity.rs"
[[test]]
name = "skill_naming"
path = "tests/skill_naming.rs"
[[test]]
name = "skill_progressive"
path = "tests/skill_progressive.rs"
[[test]]
name = "skill_remove"
path = "tests/skill_remove.rs"
[[test]]
name = "symbol_index"
path = "tests/symbol_index.rs"
[[test]]
name = "theme_paper"
path = "tests/theme_paper.rs"
[[test]]
name = "think_stripper"
path = "tests/think_stripper.rs"
[[test]]
name = "toolsets"
path = "tests/toolsets.rs"
[[test]]
name = "ui_finalisation"
path = "tests/ui_finalisation.rs"
[[test]]
name = "v0_2_stability"
path = "tests/v0_2_stability.rs"
[[bench]]
name = "micro_bench"
path = "benches/micro_bench.rs"
harness = false
[dependencies.anyhow]
version = "1"
[dependencies.async-trait]
version = "0.1"
[dependencies.axum]
version = "0.7"
features = [
"ws",
"multipart",
]
[dependencies.base64]
version = "0.22"
[dependencies.chacha20poly1305]
version = "0.10"
[dependencies.chrono]
version = "0.4"
features = ["serde"]
[dependencies.clap]
version = "4"
features = ["derive"]
[dependencies.console]
version = "0.16.3"
[dependencies.cron]
version = "0.12"
[dependencies.crossterm]
version = "0.28"
[dependencies.ctrlc]
version = "3"
[dependencies.dialoguer]
version = "0.11"
[dependencies.dirs]
version = "6"
[dependencies.futures]
version = "0.3"
[dependencies.futures-util]
version = "0.3"
[dependencies.git2]
version = "0.19"
[dependencies.imap]
version = "2"
optional = true
[dependencies.indicatif]
version = "0.18.4"
[dependencies.keyring]
version = "3"
optional = true
[dependencies.lettre]
version = "0.11"
features = [
"tokio1-rustls-tls",
"smtp-transport",
"builder",
]
optional = true
default-features = false
[dependencies.mime_guess]
version = "2"
[dependencies.native-tls]
version = "0.2"
optional = true
[dependencies.parking_lot]
version = "0.12"
[dependencies.pin-project-lite]
version = "0.2"
[dependencies.pulldown-cmark]
version = "0.13.4"
[dependencies.rand]
version = "0.8"
[dependencies.ratatui]
version = "0.29"
[dependencies.regex]
version = "1"
[dependencies.reqwest]
version = "0.12"
features = [
"rustls-tls",
"stream",
"json",
"blocking",
"multipart",
]
default-features = false
[dependencies.rpassword]
version = "7"
[dependencies.rusqlite]
version = "0.32"
features = ["bundled"]
[dependencies.secrecy]
version = "0.10"
features = ["serde"]
[dependencies.serde]
version = "1"
features = ["derive"]
[dependencies.serde_json]
version = "1"
[dependencies.similar]
version = "2"
[dependencies.syntect]
version = "5.3.0"
[dependencies.thiserror]
version = "2"
[dependencies.tokio]
version = "1"
features = ["full"]
[dependencies.tokio-tungstenite]
version = "0.24"
[dependencies.tokio-util]
version = "0.7"
features = ["rt"]
[dependencies.toml]
version = "0.8"
[dependencies.tower]
version = "0.5"
[dependencies.tracing]
version = "0.1"
[dependencies.tracing-subscriber]
version = "0.3"
features = ["env-filter"]
[dependencies.tree-sitter]
version = "0.23"
optional = true
[dependencies.tree-sitter-javascript]
version = "0.23"
optional = true
[dependencies.tree-sitter-python]
version = "0.23"
optional = true
[dependencies.tree-sitter-rust]
version = "0.23"
optional = true
[dependencies.url]
version = "2"
[dependencies.uuid]
version = "1"
features = [
"v4",
"serde",
]
[dependencies.walkdir]
version = "2"
[dev-dependencies.criterion]
version = "0.5"
[dev-dependencies.proptest]
version = "1"
[dev-dependencies.tempfile]
version = "3"
[target.'cfg(target_os = "linux")'.dependencies.nix]
version = "0.31"
features = ["sched"]
[profile.release]
opt-level = "z"
lto = true
codegen-units = 1
strip = true