Skip to content

Releases: erickochen/purple

v3.4.0

Choose a tag to compare

@github-actions github-actions released this 05 May 06:38
  • 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

Choose a tag to compare

@github-actions github-actions released this 04 May 19:45
  • 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

Choose a tag to compare

@github-actions github-actions released this 04 May 16:40
  • 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).

v3.1.0

Choose a tag to compare

@github-actions github-actions released this 03 May 20:17
  • feat: live tunnel throughput on Linux, parity with macOS.
  • feat: detail panel on Linux now shows real bytes-per-second per client process via a direct kernel netlink call (NETLINK_SOCK_DIAG), alongside the channel-events swimlane and per-client roster you already had.
  • change: ROUTE card uses a dotted vertical connector and a fisheye marker on the destination so multi-hop chains read clearly without relying on colour.
  • fix: long PATTERN MATCH header lists wrap across multiple rows instead of overflowing the detail panel border.

v3.0.0

Choose a tag to compare

@github-actions github-actions released this 03 May 18:33
  • feat: hosts and live tunnels in one cockpit, Tab between.
  • feat: tunnels page shows every SSH forward with live throughput, channel events and the apps moving bytes. Local, Remote and Dynamic SOCKS.
  • feat: detail panel reveals which client process owns each open channel, with a 60-second swimlane of opens and closes.
  • feat: add a tunnel from the tunnels page itself, with a fuzzy host picker that filters as you type.
  • change: Tab and Shift+Tab now switch between Hosts and Tunnels pages instead of cycling group tabs.

v2.45.2

Choose a tag to compare

@github-actions github-actions released this 25 Apr 10:02
  • feat: ProxyJump bastions get their own credentials.
  • feat: Each hop in your jump chain reads its own keychain, 1Password, Bitwarden, pass or Vault KV entry, so multi-hop SSH connects without typing.
  • feat: Every hop is scoped to its own retry window, so a stale bastion marker no longer blocks the next reconnect.
  • change: Prompt-based credential lookup is restricted to the hosts in your ProxyJump chain, so a malicious server cannot phish credentials for other entries in your config.

v2.45.1

Choose a tag to compare

@github-actions github-actions released this 20 Apr 17:59
  • fix: Tighter releases. Build verification stays stable across calendar days and CI runners.

v2.45.0

Choose a tag to compare

@github-actions github-actions released this 19 Apr 14:26
  • feat: Claude Desktop one-click install with safe defaults.
  • feat: Download the .mcpb bundle from any release and double-click. Your agent gets list_hosts, get_host and list_containers out of the box. No shell, no container control.
  • feat: purple mcp --read-only exposes the same safe trio when wiring up Claude Code, Cursor or any other MCP client by hand.
  • feat: Every MCP tool call lands in ~/.purple/mcp-audit.log as JSON. Timestamp, tool, args, outcome, reason. Owner-only file mode. run_command arguments redacted so passwords on shell flags never hit disk. Redirect with --audit-log <PATH> or turn it off with --no-audit.
  • feat: Audit log refuses to open through a pre-existing symlink, so a writable-directory attacker cannot redirect writes elsewhere. run_command switched off busy-polling and clamps oversized timeouts, so a runaway agent cannot pin the server.
  • feat: Linux musl builds for x86_64 and aarch64 ship next to the existing glibc binaries. Drop the static binary on any distro and run.
  • change: Wordmark refreshed with cleaner box-drawing strokes. Same cadence, still a cyan period at the end.

v2.44.0

Choose a tag to compare

@github-actions github-actions released this 18 Apr 19:45
  • feat: Live progress, live hosts, untruncated IPs.
  • feat: The sync footer shows which provider is in flight, how many providers are done and a running (+added ~updated -stale) diff, so you can tell at a glance what is changing in your host list.
  • feat: Online indicators pulse gently so a quick scan of the host list tells you which hosts are alive right now.
  • feat: IP addresses in the address column always render in full, even next to a ProxyJump or tunnel indicator, so you can read and copy them without squinting.
  • change: Welcome, Help and What's New overlays share one clean logotype with the cyan-dot accent from the landing page, giving web and TUI one consistent look.
  • fix: Upgrade toasts fire reliably after a brew or curl install when the previous run was a dev build, so you actually see release notes for the version you just installed.

v2.43.2

Choose a tag to compare

@github-actions github-actions released this 18 Apr 16:02
  • feat: Cleaner internals, steadier releases.
  • change: Domain types now live with the state they belong to. Screens, pickers, tags, sync records and reload tracking each move to their own module, so the next change you make lands in one obvious place.
  • change: The UiSelection god-struct becomes a small set of focused picker states, making overlay behaviour easier to read and extend.
  • change: App::new shrinks from 124 lines to 48 by delegating to per-substate constructors that make startup initialisation explicit.