ssh-cli 0.3.1

Native Rust CLI that gives LLMs (Claude Code, Cursor, Windsurf) the ability to operate remote servers via SSH over stdin/stdout
Documentation
# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2021"
rust-version = "1.85.0"
name = "ssh-cli"
version = "0.3.1"
authors = ["Danilo <daniloaguiarbr@pm.me>"]
build = "build.rs"
exclude = [
    ".serena/",
    ".claude/",
    "logs/",
    "CLAUDE.md",
    "AGENTS.md",
    "docs_rules/",
    "projeto_ssh-cli.md",
    ".github/",
    "tests/fixtures/",
    "ralph-loop.local.md",
    "deny.toml",
    "Cross.toml",
    ".env",
    ".env.*",
    "*.profraw",
    "*.profdata",
    "coverage/",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
default-run = "ssh-cli"
description = "Native Rust CLI that gives LLMs (Claude Code, Cursor, Windsurf) the ability to operate remote servers via SSH over stdin/stdout"
homepage = "https://github.com/daniloaguiarbr/ssh-cli"
documentation = "https://docs.rs/ssh-cli"
readme = "README.md"
keywords = [
    "ssh",
    "cli",
    "llm",
    "automation",
    "devops",
]
categories = [
    "command-line-utilities",
    "network-programming",
]
license = "MIT"
repository = "https://github.com/daniloaguiarbr/ssh-cli"

[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
    "--cfg",
    "docsrs",
]

[features]
default = ["ssh-real"]
musl-allocator = ["dep:mimalloc"]
ssh-real = ["dep:russh"]

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

[[bin]]
name = "ssh-cli"
path = "src/main.rs"

[[test]]
name = "e2e_cli"
path = "tests/e2e_cli.rs"

[[test]]
name = "i18n_integration"
path = "tests/i18n_integration.rs"

[[test]]
name = "proptest_tests"
path = "tests/proptest_tests.rs"

[[test]]
name = "scp_integration"
path = "tests/scp_integration.rs"

[[test]]
name = "snapshot_tests"
path = "tests/snapshot_tests.rs"

[[test]]
name = "storage_integration"
path = "tests/storage_integration.rs"

[[test]]
name = "tunnel_integration"
path = "tests/tunnel_integration.rs"

[[bench]]
name = "ssh_operations"
path = "benches/ssh_operations.rs"
harness = false

[dependencies.anyhow]
version = "1.0"

[dependencies.async-trait]
version = "0.1"

[dependencies.chrono]
version = "0.4"
features = [
    "serde",
    "clock",
]

[dependencies.clap]
version = "4.5"
features = [
    "derive",
    "env",
    "unicode",
    "wrap_help",
]

[dependencies.clap_complete]
version = "4.5"

[dependencies.ctrlc]
version = "3.4"
features = ["termination"]

[dependencies.directories]
version = "5.0"

[dependencies.elliptic-curve]
version = "=0.14.0-rc.30"

[dependencies.mimalloc]
version = "0.1"
optional = true

[dependencies.russh]
version = "0.60"
features = [
    "aws-lc-rs",
    "flate2",
]
optional = true
default-features = false

[dependencies.secrecy]
version = "0.10"
features = ["serde"]

[dependencies.serde]
version = "1.0"
features = ["derive"]

[dependencies.serde_json]
version = "1.0"

[dependencies.sys-locale]
version = "0.3"

[dependencies.termcolor]
version = "1.4"

[dependencies.thiserror]
version = "2.0"

[dependencies.tokio]
version = "1.40"
features = [
    "rt-multi-thread",
    "io-util",
    "io-std",
    "time",
    "sync",
    "macros",
    "fs",
    "net",
]

[dependencies.toml]
version = "0.8"

[dependencies.tracing]
version = "0.1"

[dependencies.tracing-subscriber]
version = "0.3"
features = [
    "fmt",
    "env-filter",
]

[dependencies.unicode-normalization]
version = "0.1"

[dependencies.zeroize]
version = "1.8"
features = ["derive"]

[dev-dependencies.assert_cmd]
version = "2.0"

[dev-dependencies.async-trait]
version = "0.1"

[dev-dependencies.criterion]
version = "0.5"
features = ["html_reports"]

[dev-dependencies.insta]
version = "1.39"
features = [
    "json",
    "redactions",
]

[dev-dependencies.mockall]
version = "0.13"

[dev-dependencies.predicates]
version = "3.1"

[dev-dependencies.proptest]
version = "1.5"

[dev-dependencies.serial_test]
version = "3.1"

[dev-dependencies.tempfile]
version = "3.13"

[target."cfg(unix)".dependencies.signal-hook]
version = "0.3"

[target."cfg(windows)".dependencies.windows-sys]
version = "0.59"
features = [
    "Win32_System_Console",
    "Win32_Foundation",
]

[profile.dev]
opt-level = 0
debug = 2
panic = "unwind"

[profile.release]
opt-level = "z"
lto = true
codegen-units = 1
panic = "abort"
strip = "symbols"