authy-cli 0.5.0

CLI secrets store & dispatch for AI agents — encrypted vault, scoped policies, run-only tokens, and audit logging
Documentation
[package]
name = "authy-cli"
version = "0.5.0"
edition = "2021"
rust-version = "1.70"
description = "CLI secrets store & dispatch for AI agents — encrypted vault, scoped policies, run-only tokens, and audit logging"
license = "MIT"
repository = "https://github.com/eric8810/authy"
homepage = "https://eric8810.github.io/authy"
readme = "README.md"
keywords = ["secrets", "vault", "agents", "encryption", "cli"]
categories = ["command-line-utilities", "cryptography"]

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

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

[features]
default = ["cli"]
cli = ["dep:clap", "dep:dialoguer", "dep:console", "dep:ratatui", "dep:crossterm", "dep:humantime"]

[dependencies]
# CLI (only needed for the binary)
clap = { version = "4", features = ["derive", "env"], optional = true }

# Encryption
age = { version = "0.10", features = ["armor"] }

# Crypto
hmac = "0.12"
sha2 = "0.10"
hkdf = "0.12"

# Serialization
rmp-serde = "1"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
toml = "0.8"

# Memory safety
zeroize = { version = "1", features = ["derive"] }
secrecy = { version = "0.8", features = ["serde"] }

# Time
chrono = { version = "0.4", features = ["serde"] }
humantime = { version = "2", optional = true }

# Pattern matching
globset = "0.4"

# Interactive (only needed for the binary)
dialoguer = { version = "0.11", optional = true }
console = { version = "0.15", optional = true }

# TUI (only needed for the binary)
ratatui = { version = "0.29", optional = true }
crossterm = { version = "0.28", optional = true }

# Errors
thiserror = "2"
anyhow = "1"

# Encoding
base64 = "0.22"
hex = "0.4"

# Paths
dirs = "6"

# RNG
rand = "0.8"

# Subtle (constant-time compare)
subtle = "2"

[[test]]
name = "api"
path = "tests/api_test.rs"

[[test]]
name = "integration"
path = "tests/integration/mod.rs"

[profile.release]
strip = true
lto = true

[dev-dependencies]
tempfile = "3"
assert_cmd = "2"
predicates = "3"
serial_test = "3.3.1"