• v0.3.0 ceedac7d63

    v0.3.0 Stable

    kashish released this 2026-08-07 21:07:03 +00:00 | 0 commits to main since this release

    Multi-profile vaults and a rebuilt search ranker.

    Upgrading from v0.2.3 needs no action — your vault migrates itself on first run and your master password is unchanged.

    Profiles

    Kosh had exactly one vault. It now supports separate encrypted vaults, each with its own master password and credentials. Unlocking one grants no access to any other.

    kosh profile create work     # create a profile and set its master password
    kosh use personal            # switch profiles (no args = interactive picker)
    kosh profile list            # see them all, and which one is active
    kosh profile delete old      # delete a profile and everything in it
    kosh copy <id> work          # copy a credential into another profile
    

    Output is prefixed with the active profile: (work) [✓] credential saved successfully

    On first run ~/.kosh/kosh.db moves to ~/.kosh/profiles/default.db. Nothing is re-encrypted — it's a rename, not a rewrite.

    • Frequently-used credentials no longer outrank closer matches. Scores were additive, letting usage stats compete with match quality on the same scale. Behaviour is now a multiplier: (label + user) × (1 + recency + frequency).
    • Prefix matches can no longer beat exact ones. Boosts are asymptotic — each closes a fraction of the gap to the ceiling instead of adding a constant, so exact > prefix > substring > subsequence > fuzzy holds structurally.
    • Typos cost less. Damerau-Levenshtein counts a transposition as one edit, so kosh crat finds cart.
    • Abbreviations work. kosh gpat finds git_personal_access_token.
    • Empty or whitespace-only queries now match nothing instead of everything.

    Added

    • KOSH_DEBUG=1 for debug output — no rebuild needed, the logger.BuildMode ldflag is gone.
    • Real auto-sized tables in kosh list and kosh profile list.
    • Relative timestamps — 02d 04h ago, just now, never.
    • Confirmation prompts before anything that destroys an unrecoverable secret.
    • Full --help for every command, with examples.

    Fixed

    • Ctrl+C at a password prompt no longer leaves your terminal with echo disabled.
    • Ctrl+C during kosh profile create no longer leaves a half-created profile behind.
    • Secure delete wrote nothing — the file was opened read-only, so every overwrite silently went nowhere.
    • Runtime errors (e.g. a wrong master password) print one line instead of the full flag documentation.
    • similarityScore returned NaN for two empty strings.
    • kosh generate --lower was documented as "include uppercase letters".

    Security

    • Every profile has its own Curve25519 keypair, Argon2id salt, and master password.
    • Master-password and secret confirmations use constant-time comparison.
    • Decrypted secrets are handled as []byte end to end, never copied into immutable strings.
    • Debug logs redact secrets, nonces and ephemeral keys.
    • Profile deletion refuses any name that isn't a plain entry of the profiles directory.
    • Deleted vaults are overwritten before unlinking. This is defence in depth, not a guarantee — on SSDs, wear levelling puts the original bytes out of reach from userspace. What protects a deleted vault is that its contents were encrypted at rest.

    Other

    • One clipboard path on every platform (golang.design/x/clipboard); the Wayland wl-copy special case is gone. get and search now copy before updating access stats, so failed bookkeeping can't cost you the secret.
    • Commands build through a shared application context instead of package globals; vault and profile layers sit behind interfaces. Test suite went from one file to six.
    • Dependencies refreshed: x/crypto 0.54.0, x/term 0.45.0, x/text 0.40.0, modernc.org/sqlite 1.54.0, cobra 1.10.2. Still a single static binary, still no CGO.
    • docs/architecture.md documents the cryptographic design. Kosh is now MIT licensed.

    Downloads
  • v0.2.3 a677eb9793

    v0.2.3 Stable

    kashish released this 2026-06-20 05:05:14 +00:00 | 13 commits to main since this release

    Changelog

    • 382c23ad22 ADD: app version and release config changes to include ldflags
    • a677eb9793 CHANGE: app version for go install
    • 4d417e3ed9 ENHANCE: Improved code quality, security and performance (#11)
    • 813f18d20d ADD: Interactive Search on search with no args. (#14)
    Downloads
  • v0.2.0 5256d9a5c0

    v0.2.0 Stable

    kashish released this 2026-03-27 10:43:00 +00:00 | 17 commits to main since this release

    Whats New

    • Revamped CLI to use Cobra CLI Framework offering following benefits
      • Consistent command interface.
      • Better and consistent help command and flag
      • Auto completion script using the completion command
      • New shorthand flags for various command, explore using --help or -h flag.

    Changelog

    • 73f36be730 CHANGE: Switched to using Cobra CLI framework
    • 971b51d00b CHANGE: define errors as Error interface
    • 583681f9b2 CHANGE: inject store as Store interface (repository pattern)
    • 845f5bf071 CHANGE: project folder structure to match industry standard
    • e26f058ec2 CHANGE: transfer logic to service
    • 5256d9a5c0 FIX: generating vault private correctly now
    Downloads
  • v0.1.5 5ceea7b482

    v0.1.5 Stable

    kashish released this 2026-03-04 16:07:56 +00:00 | 23 commits to main since this release

    Changelog

    • 5ceea7b482 CHANGE: changed default build mode to production
    • fb83534ad6 FIX: make the user prompts consistent for update command
    Downloads
  • v0.1.4-stable 2a673a3c47

    v0.1.4-stable Stable

    kashish released this 2026-03-04 08:18:33 +00:00 | 25 commits to main since this release

    Changelog

    • 539dcc0cf6 ci: remove workflow - not working with forgejo
    • 2a673a3c47 deploy: go releaser configured
    Downloads
  • v0.1.4 b31c723652

    v0.1.4 Stable

    kashish released this 2026-03-03 19:26:55 +00:00 | 31 commits to main since this release

    Release v0.1.4

    What's New!

    • Added: update command to allows users to update specific field (label, user, or secret) of an existing credential.
    • Added: --no-save flag in the generate command that copies a generated credential without saving it to the vault.

    Changes

    • Moved TUI prompts, messages and errors to constants for a consistent user experience (UX).
    Downloads
  • v0.1.3 9706e86c28

    v0.1.3 Stable

    kashish released this 2026-01-03 16:04:48 +00:00 | 41 commits to main since this release

    Bug Fixes
    Password not being copied to clipboard on Wayland systems not having libx11 [#3]

    Downloads
  • v0.1.2 8d5f6ae91e

    kashish released this 2025-12-15 18:21:29 +00:00 | 43 commits to main since this release

    Downloads