Skip to content

Releases: erickochen/purple

v3.10.0

10 May 20:30

Choose a tag to compare

  • feat: Smoother prompts, sharper logs, easier troubleshooting.
  • feat: Container confirms use action verbs both sides ("restart"/"keep", "stop"/"keep") so the choice is unambiguous before you press y or n.
  • feat: Container restart and stop land as a green success toast, just like every other user-initiated action.
  • feat: Demo-mode hints render as yellow warnings, so a blocked action looks blocked.
  • feat: purple --verbose records every state change. Preferences saves, CLI flow, SSH config writes, form submits, filter and sort, vault thread and config reload all show up in ~/.purple/purple.log.
  • feat: A complete Troubleshooting wiki page documents every fault domain, every log string and every recovery step.
  • change: Every prompt now reads in purple's voice, including form validation and stale-host warnings.
  • change: Pre-commit gates catch footer-keycap drift and generic confirm verbs ("yes"/"no"/"cancel") before they ship.

v3.9.0

10 May 18:52

Choose a tag to compare

  • feat: Manage every container in your fleet from one tab.
  • feat: Press Tab past Hosts and Tunnels to land in Containers. Every Docker and Podman container groups under each host. Park the cursor on a host divider and the detail panel summarises engine version, runtime, sync age and running/exited counts.
  • feat: Enter shells in. l streams the last 200 log lines. K restarts. S stops. e runs a one-off command. Confirms always show before anything destructive.
  • feat: Ctrl-K cycles a whole compose stack member by member. K or S on a host divider sweeps every running container on that host in order.
  • feat: r refreshes one host. R refreshes all in parallel, four at a time. a adds a host to the cache from a picker.
  • feat: The detail panel reads docker inspect once and remembers, so image digest, restart policy, user, privileged flag, mounts, network and recent logs render instantly as you arrow through.
  • feat: Sync brings freshly added hosts into the cache automatically. Jump finds containers by name, image or host and lands you on the right row.

v3.8.0

08 May 17:38

Choose a tag to compare

  • feat: Esc cancels, never quits. Press q to quit.
  • feat: Esc on the host list clears your group filter or your bulk selection and stops there. A stray Esc on an empty host list keeps you in the app instead of closing it.
  • feat: The first idle Esc per session surfaces a one-shot toast pointing to q, then stays a silent no-op. If a sticky error is up, the hint waits so it never displaces a message you still need to see.
  • change: Help footer and wiki spell out q as the only quit key on the host list and tunnels page.
  • Esc-as-cancel suggested by @BrahmingWu (#63).

v3.7.0

08 May 08:19

Choose a tag to compare

  • feat: Multiple accounts per cloud provider, no juggling.
  • feat: Add a second AWS, DigitalOcean or any cloud account in the providers list. Press a on the row, give both configs a label and they live side by side. Existing hosts stay yours.
  • feat: Each labeled config syncs in its own lane. Markers carry the label, so two accounts never claim each other's hosts and a --remove on one doesn't touch the other.
  • feat: Vault SSH role and address resolve per labeled config, so work and personal can sign with their own roles in their own Vaults.
  • feat: purple sync digitalocean:work targets one config; the bare provider name still syncs all configs of that provider.
  • feat: purple add --label work and purple provider remove digitalocean:work round out the CLI.
  • change: Faster Nix release builds. CI's nix flake check now whitelists the source files it needs and skips LTO, saving ~20 minutes per release.
  • change: ~/.purple/sync_history.tsv first column now reads provider[:label] (e.g. digitalocean:work) for labeled configs. Bare configs keep the plain provider name. Scripts grepping the file may need updating.
  • Thanks to @AndreyOkh for suggesting multi-account support.

v3.6.0

06 May 06:48

Choose a tag to compare

  • feat: Find any host, tunnel or action in one keystroke.
  • feat: Press : to open Jump, a universal fuzzy bar across hosts, tunnels, containers, snippets and actions. Like Cmd+K, in your terminal.
  • feat: Type your SSH username to find every server you log in as. Jump searches User, ProxyJump and Vault SSH role too, not just aliases and hostnames.
  • feat: Field prefixes (user:, proxy:, vault:, tag:) scope your search to a single SSH directive when you need precision.
  • feat: Recent picks lead the bar across sessions, so the second time is always faster than the first.
  • change: Footer keys land in one canonical order across every overlay, so muscle memory survives between screens.
  • change: Action labels carry their category up front (Hosts: Add host, Tunnels: Manage tunnels) so you can search by what you want to do.

v3.5.0

05 May 17:48

Choose a tag to compare

  • feat: Vault SSH connects through bastions on the first try.
  • feat: Active tab stays crisply underlined on every terminal, including macOS Terminal where the highlight used to bleed across tabs.
  • feat: The selected host's ping dot self-refreshes as you arrow through the list, so freshness follows your cursor.
  • feat: When Vault signing fails, the toast tells you the actual cause instead of being shadowed by the generic SSH error.
  • change: Proxmox sync breaks down partial failures by category (timeout, HTTP 5xx, HTTP 4xx, transport, parse) in the summary line.
  • change: Pre-commit gates catch hardcoded user-facing text and convention drift before they ship, so error wording stays consistent.
  • change: Smoke tests verify each screen actually renders, not just that the binary stays alive.

v3.4.1

05 May 06:56

Choose a tag to compare

  • change: See exactly which key cleared your ping dots.
  • change: Every ping refresh, clear and config-driven reset now appears in --verbose so your bug reports include the right context out of the box.

v3.4.0

05 May 06:38

Choose a tag to compare

  • feat: Online dots stay accurate without manual refreshes.
  • feat: Ping results no longer expire. Once you press P, dots stay green, amber or red until you choose to clear them.
  • feat: The detail panel now shows when each host was last checked, so you can tell fresh data from yesterday at a glance.
  • feat: Selecting a host whose result is older than 2 minutes triggers a quiet single-host re-ping in the background. Dots stay current as you browse, even on configs with hundreds of hosts, without flooding the network.
  • change: ProxyJump dependents inherit both status and last-checked time from their bastion.

v3.3.0

04 May 19:45

Choose a tag to compare

  • feat: Use SSH keys stored anywhere via symlinks.
  • feat: purple follows symlinks in ~/.ssh, so keys synced from password managers, secure storage or central key directories appear in the picker exactly like a regular file you placed there yourself.
  • change: Tunnels page mirrors the Hosts layout. Column titles line up with the rows below, getpurple.sh anchors the bottom-right corner, and the inactive tab fades to muted so your eye lands on the active page first.
  • Symlinked SSH keys reported by @Nab0y (#58).

v3.2.0

04 May 16:40

Choose a tag to compare

  • feat: Install purple on NixOS, or with Nix on Linux and macOS.
  • feat: nix profile install github:erickochen/purple adds purple to your Nix profile in one command. Same single binary as every other channel.
  • feat: nix develop github:erickochen/purple drops you into a pinned Rust toolchain with cargo-audit and cargo-deny ready, so contributors get the exact same environment as CI.
  • feat: Hash-locked flake inputs for reproducible builds. NixOS users can embed purple as a flake input with the follows-pattern recipe in the wiki.
  • Initial flake foundation contributed by @ArisoN-ext (#54).