[package]
name = "rustyclaw"
version = "0.1.33"
edition = "2024"
authors = ["Erica Stith <erica@example.com>"]
description = "A lightweight, secure agentic AI assistant runtime with OpenClaw compatibility"
license = "MIT"
readme = "README.md"
homepage = "https://github.com/rexlunae/RustyClaw"
repository = "https://github.com/rexlunae/RustyClaw"
documentation = "https://github.com/rexlunae/RustyClaw#readme"
keywords = ["ai", "agent", "llm", "openclaw", "automation"]
categories = ["command-line-utilities", "development-tools", "text-processing"]
default-run = "rustyclaw"
rust-version = "1.85"
exclude = [
".github/*",
"tests/*",
"*.md",
"!README.md",
]
[badges]
maintenance = { status = "actively-developed" }
[features]
default = ["tui", "web-tools"]
tui = ["dep:ratatui", "dep:crossterm", "dep:tui-markdown", "dep:tui-input"]
web-tools = ["dep:scraper", "dep:html2md"]
matrix = ["dep:matrix-sdk"]
browser = ["dep:chromiumoxide"]
all-messengers = ["matrix"]
full = ["tui", "web-tools", "matrix", "browser"]
[lints.rust]
unexpected_cfgs = { level = "warn", check-cfg = ['cfg(feature, values("signal"))'] }
[dependencies]
ratatui = { version = "0.30", optional = true }
crossterm = { version = "0.29", features = ["event-stream"], optional = true }
tui-markdown = { version = "0.3", optional = true }
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
serde_yaml = "0.9"
toml = "0.9"
anyhow = "1.0"
thiserror = "2.0"
securestore = "0.100.0"
openssl-sys = { version = "0.9", features = ["vendored"] }
totp-rs = { version = "5.7", features = ["gen_secret", "otpauth"] }
qrcode = { version = "0.14", default-features = false }
ssh-key = { version = "0.6", features = ["ed25519", "getrandom", "std"] }
dirs = "6.0"
shellexpand = "3.1"
tokio = { version = "1.35", features = ["full"] }
tokio-util = "0.7"
async-trait = "0.1"
clap = { version = "4.5", features = ["derive", "env"] }
futures-util = "0.3"
tokio-tungstenite = "0.28"
reqwest = { version = "0.13", features = ["json", "rustls", "stream", "blocking", "form"], default-features = false }
url = "2.5"
tui-input = { version = "0.15", optional = true }
strum = { version = "0.27", features = ["derive"] }
sysinfo = "0.38"
which = "8"
glob = "0.3"
walkdir = "2"
scraper = { version = "0.25", optional = true }
html2md = { version = "0.2", optional = true }
urlencoding = "2.1"
chrono = "0.4"
zip = "8.0"
base64 = "0.22"
httpdate = "1.0"
matrix-sdk = { version = "0.10", default-features = false, features = ["e2e-encryption", "sqlite", "rustls-tls"], optional = true }
chromiumoxide = { version = "0.8", default-features = false, features = ["tokio-runtime"], optional = true }
[target.'cfg(unix)'.dependencies]
libc = "0.2"
colored = "3.1"
indicatif = "0.18"
unicode-width = "0.2"
rpassword = "7"
[patch.crates-io]
curve25519-dalek = { git = "https://github.com/signalapp/curve25519-dalek", tag = "signal-curve25519-4.1.3" }
[dev-dependencies]
tempfile = "3"
[profile.release]
lto = true
codegen-units = 1
strip = true
[[bin]]
name = "rustyclaw"
path = "src/main.rs"