Skip to content

Releases: kitanoyoru/kssh

v1.3.0

Choose a tag to compare

@kitanoyoru kitanoyoru released this 22 Jun 14:51

What's new

Remote account management in the menu bar

  • Manage GitHub/GitLab/Bitbucket accounts directly from the popover Remote section (mirrors the SSH keys UX)
  • Flat per-account list: provider monogram badge, avatar, username, and label tag
  • Tap a row to open its profile detail; switch/edit/test/delete via row controls and context menu
  • Single "Add account" flow with a service picker
  • Each account resolves its own profile, so any account opens — not just the active one

GitHub contribution graph

  • Contribution heatmap on the profile detail screen, sized to fit the popover

UI/UX

  • Collapsible sections (Keys, GPG, Remote) — no scrolling
  • Dedicated primary button style for form actions
  • Redesigned profile detail screen (brand avatar fallback, carded stats, grouped fields)
  • Settings now shows a read-only Accounts summary (management lives in the menu bar)

Full Changelog: v1.2.0...v1.3.0

v1.2.0

Choose a tag to compare

@kitanoyoru kitanoyoru released this 22 Jun 12:40

What's new

SSH key lifecycle — generate new ed25519/rsa keys in the popover (create-only), delete keys to a recoverable ~/.ssh/.kssh-trash backup, rename key files, and upload the active key to GitHub/GitLab from the per-key menu (reusing stored PATs).

Remote profile detail — tapping a Remote row now opens an in-popover detail screen with avatar, full name, username, repo/follower/following counts, bio, company, location, and join date (fetched lazily, best-effort per provider). An "Open profile" button keeps browser access one tap away.

Fixes

  • Settings window now opens reliably from the menu bar on macOS 26 (Tahoe).

Earlier in this line

  • Bitbucket Cloud remote profile support and enriched profile display.

v1.1.2

Choose a tag to compare

@kitanoyoru kitanoyoru released this 21 Jun 23:13
fcabc6c

Fixes

  • Switching SSH keys now works when the same host has multiple Host blocks (one key per block). Previously ~/.ssh/config was left effectively unchanged — because OpenSSH treats IdentityFile additively, the first block's key kept being offered and the switch had no real effect. The chosen key is now activated and its same-host competitors are commented out, while unrelated hosts are left untouched.

v1.1.1

Choose a tag to compare

@kitanoyoru kitanoyoru released this 21 Jun 23:05
dcb0967

Fixes

  • Track the active SSH key by your explicit selection rather than inferring it from ~/.ssh/config. In a separate-Host-per-key config the file can't express a single active identity, so the green highlight previously stayed stuck on the first host's key after switching. The last switched-to key is now persisted and reflected in the UI (falling back to config resolution when there's no selection or the key is gone).

v1.1.0

Choose a tag to compare

@kitanoyoru kitanoyoru released this 21 Jun 22:00
9f3be7d

Highlights

SSH config switching is more robust

Handles different ~/.ssh/config shapes that previously caused a switch to silently no-op or mis-target:

  • Preserves CRLF line endings on rewrite.
  • Parses IdentityFile the way OpenSSH does — = separator, quoted paths, and trailing/inline tokens.
  • Treats Match blocks as their own boundaries (no longer attributed to the preceding Host).
  • Agent-only switch notice when the chosen key isn't referenced anywhere in the config (the file is left untouched).
  • Scope-aware active-identity detection: a specific Host wins over a Host * default.

UI

  • Git profiles now render as a tab strip, capped at 5 profiles.
  • The active key / profile row uses a defined green highlight (fill + border) instead of a dim wash.
  • When the ssh-agent is off, all sections are hidden in favor of a single Enable agent button that starts the agent.

Other

  • Remote section is scoped to the active SSH key.

Full changelog: v1.0.0...v1.1.0

v1.0.0

Choose a tag to compare

@kitanoyoru kitanoyoru released this 21 Jun 20:32

First tagged release of kssh — SSH, Git, and GPG identity management from the macOS menu bar.

Install via Homebrew tap:

brew tap kitanoyoru/kssh
brew install kssh

Or build from source: make install. Requires macOS 14+.