[package]
name = "sysknife-cli"
version = "0.2.6"
edition.workspace = true
license.workspace = true
repository.workspace = true
homepage.workspace = true
description = "Approval-gated AI system administration CLI and MCP server"
readme = "README.md"
keywords = ["linux", "sysadmin", "mcp", "ai-agent"]
categories = ["command-line-utilities", "os::linux-apis"]
[[bin]]
name = "sysknife"
path = "src/main.rs"
[dependencies]
sysknife-brain = { path = "../../crates/sysknife-brain", version = "0.2.6" }
sysknife-core = { path = "../../crates/sysknife-core", version = "0.2.6" }
sysknife-daemon = { path = "../../crates/sysknife-daemon", version = "0.2.6" }
chrono = "0.4"
sysknife-types = { path = "../../crates/sysknife-types", version = "0.2.6" }
clap = { version = "4", features = ["derive"] }
clap_complete = "4"
strip-ansi-escapes = "0.2"
indicatif = "0.18"
owo-colors = { version = "4", features = ["supports-colors"] }
rustyline = { version = "18", features = ["with-file-history"] }
rmcp = { version = "2", features = ["transport-io"] }
serde_json = { workspace = true }
serde = { workspace = true, features = ["derive"] }
tokio = { workspace = true, features = ["rt", "rt-multi-thread", "macros", "signal", "net", "io-util", "io-std", "sync"] }
thiserror = { workspace = true }
vsock = "0.5.4"
tokio-vsock = "0.7.2"
[dev-dependencies]
assert_cmd = "2"
predicates = "3"
tempfile = "3"
tokio = { workspace = true, features = ["rt", "rt-multi-thread", "macros", "net", "io-util"] }