Skip to content

hoppr 0.2.0

Choose a tag to compare

@github-actions github-actions released this 13 Jul 18:03

hoppr v0.2.0

An SSH session manager for the terminal. Edits your real ssh_config in
place, finds the keys scattered around your disk, and tells you what is
about to break.

Install:

go install github.com/SarthakShrivastav-a/hoppr/cmd/hoppr@v0.2.0

Or download a binary below.

Changelog

  • 34bc5c9 chore(deps): add bubbletea, bubbles, and lipgloss
  • 8578475 chore(deps): add cobra for the command surface
  • 04a9c3c chore(deps): add golang.org/x/crypto for ssh key parsing
  • 1ab48fa ci: add goreleaser config for cross-platform binaries
  • 18f0899 ci: auto-release the next semver on every push to main
  • a45a157 ci: test on Windows, macOS, and Linux
  • a4c3708 feat(cli): add hoppr forward
  • aadd537 feat(cli): add keys and doctor commands
  • 9420740 feat(cli): add ls, add, import, rm, and connect
  • 2690c6c feat(cli): add the root command and open the TUI by default
  • 1124d56 feat(cli): complete host aliases in the shell
  • 5b775f7 feat(cmd): add the hoppr entry point
  • 6fd288b feat(connect): launch through the system ssh binary
  • b9d8d8a feat(connect): parse an ad-hoc ssh command into a host entry
  • c845fc3 feat(connect): tokenize pasted commands from either shell
  • 0a63d48 feat(connect): write a parsed spec into ssh_config
  • 1e59004 feat(doctor): diagnose the failures with unhelpful error messages
  • 4249a51 feat(forward): model local, remote, and dynamic forwards
  • feed895 feat(forward): supervise tunnels with backoff and jitter
  • 7b7e270 feat(history): remember what was connected to, and when
  • 38f280b feat(host): add fzf-style fuzzy matching over aliases, targets, and tags
  • 2545111 feat(host): model connectable hosts, excluding pattern-only stanzas
  • 3913b92 feat(host): rank the unfiltered list by what you actually use
  • 2b4cc80 feat(keys): adopt stray keys into a managed directory
  • 68a9ca6 feat(keys): audit and repair key permissions per platform
  • c1d7b93 feat(keys): inspect private keys by content, not by extension
  • 0924b6b feat(keys): map keys to the hosts that use them, and back
  • 0d0245f feat(keys): scan the filesystem for stray keys
  • 9074c60 feat(paths): resolve ssh paths, and write tilde paths back out
  • 4100ae7 feat(probe): check host reachability concurrently
  • 2660dca feat(sshconfig): add SetArgs for keywords that take two arguments
  • c374dbb feat(sshconfig): add a lossless AST for ssh_config files
  • 17cbade feat(sshconfig): add tokenizer for keywords, separators, and quoting
  • 0ee7071 feat(sshconfig): edit host blocks in place without reformatting them
  • d419c8b feat(sshconfig): parse files into blocks without discarding trivia
  • e2e5b0f feat(sshconfig): render the AST back out and save atomically
  • df6022b feat(sshconfig): resolve Include so hosts in conf.d are visible
  • 26bd5e9 feat(sshconfig): store tags and notes as in-band comment annotations
  • a54baf1 feat(tui): add host form, import, keys, doctor, and help panes
  • 4c5d5b0 feat(tui): add the application model and async commands
  • 23a685a feat(tui): bind vim motions alongside arrows
  • c61ab33 feat(tui): define an adaptive palette and status glyphs
  • 8166308 feat(tui): fix the Windows console before drawing anything
  • 4b66b06 feat(tui): handle input, and hand the terminal over to ssh cleanly
  • d5e9877 feat(tui): render the host list, degrading instead of refusing
  • 7c4aec1 feat(version): resolve the version from build info when ldflags are absent
  • 8f677da fix(keys): resolve a bare key name to where the key actually is
  • b8d79fa fix(mod): retract v0.1.0
  • 687aec5 test(connect): cover the paste cases that actually occur
  • 51d24e6 test(doctor): cover duplicate aliases, missing keys, CRLF, and the fix path
  • 15dc133 test(forward): cover spec parsing, config keywords, and jitter bounds
  • 61486cf test(history): a corrupt cache must not be fatal
  • f9c424c test(host): cover pattern exclusion, alias lookup, and match ranking
  • 5927c22 test(host): pin recency ordering, including the never-used tail
  • 9a1fbbd test(keys): cover detection, scanning, indexing, and adoption
  • 15189dc test(keys): cover locating a key named only by its file name
  • 78a0db6 test(paths): pin tilde rewriting, which keeps configs portable
  • 6c43b77 test(probe): cover reachability against real listeners
  • 042fd47 test(sshconfig): cover editing, annotations, and Include resolution
  • 245c4fd test(sshconfig): pin the round trip against a hostile config
  • bd0cdb7 test(tui): a small terminal must degrade, never refuse