purple-ssh 2.33.2

A terminal cockpit for your servers. Search, connect, transfer files, manage containers and run commands across hosts. Syncs from 16 cloud providers. Visual file transfer, password management, command snippets and MCP server for AI agents. Edits ~/.ssh/config with round-trip fidelity.
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 = "2024"
rust-version = "1.86"
name = "purple-ssh"
version = "2.33.2"
build = "build.rs"
exclude = [
    ".github/",
    ".gitignore",
    "demo.gif",
    "demo.webm",
    "screenshots/",
    "preview.png",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A terminal cockpit for your servers. Search, connect, transfer files, manage containers and run commands across hosts. Syncs from 16 cloud providers. Visual file transfer, password management, command snippets and MCP server for AI agents. Edits ~/.ssh/config with round-trip fidelity."
homepage = "https://getpurple.sh"
readme = "README.md"
keywords = [
    "ssh",
    "ssh-client",
    "tui",
    "ssh-manager",
    "mcp",
]
categories = [
    "command-line-utilities",
    "development-tools",
]
license = "MIT"
repository = "https://github.com/erickochen/purple"

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

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

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

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

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

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

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

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

[dependencies.anyhow]
version = "1"

[dependencies.base64]
version = "0.22"

[dependencies.clap]
version = "4"
features = ["derive"]

[dependencies.clap_complete]
version = "4"

[dependencies.crossterm]
version = "0.29"

[dependencies.dirs]
version = "6"

[dependencies.glob]
version = "0.3"

[dependencies.hmac]
version = "0.12"

[dependencies.libc]
version = "0.2"

[dependencies.log]
version = "0.4"

[dependencies.quick-xml]
version = "0.39"
features = [
    "serde",
    "serialize",
]

[dependencies.ratatui]
version = "0.30"

[dependencies.rsa]
version = "0.9"
features = ["sha2"]

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

[dependencies.serde_json]
version = "1"

[dependencies.sha1]
version = "0.11"

[dependencies.sha2]
version = "0.10"

[dependencies.simplelog]
version = "0.12"

[dependencies.thiserror]
version = "2"

[dependencies.unicode-width]
version = "0.2.2"

[dependencies.ureq]
version = "3"
features = [
    "json",
    "native-tls",
]

[dev-dependencies.mockito]
version = "1.7.2"

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

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

[profile.release]
opt-level = "z"
lto = true
strip = true