Repository navigation
Releases: MinaryHub/Kerminal
Release list
Kerminal v1.4.9
Kerminal 1.4.9.
Kerminal v1.2.3
v1.1.1
What's Changed
- fix(release): 사이드로딩 msix 파일명을 kerminal-sideload.msix 로 변경 by @knoxxr in https://github.com/knoxxr/kerminal/pull/50
- chore(release): 1.1.1 by @knoxxr in https://github.com/knoxxr/kerminal/pull/51
Full Changelog: https://github.com/knoxxr/kerminal/compare/v1.1.0...v1.1.1
v1.1.0
What's Changed
- feat(support): 선택적 후원 링크 by @knoxxr in https://github.com/knoxxr/kerminal/pull/45
- docs: 스토어 무료 배포에 맞춰 낡은 "유료" 전제 정리 by @knoxxr in https://github.com/knoxxr/kerminal/pull/46
- docs(store): 검색어에서 타 제품명 제거 (반려 사유) by @knoxxr in https://github.com/knoxxr/kerminal/pull/47
- fix(store): 스토어용 msix 파일명 구분 (kerminal-store.msix) by @knoxxr in https://github.com/knoxxr/kerminal/pull/48
- docs(changelog): 1.1.0 항목을 실제 빌드 내용과 맞춤 by @knoxxr in https://github.com/knoxxr/kerminal/pull/49
Full Changelog: https://github.com/knoxxr/kerminal/compare/v1.0.3...v1.1.0
v1.0.3
macOS is now distributed as a .dmg
Previously the download was a zip of the app, which gave no way to replace an existing install — you unpacked it wherever the download landed and ended up with a second copy, with no indication which one was current.
Open the disk image and drag Kerminal onto Applications; macOS asks to replace the old version, the way updates normally work on this platform.
- Your saved servers and credentials were shared between copies before and still are — the change is that replacing is now obvious.
- On first launch macOS may refuse to open it: right-click the app → Open. Kerminal is not yet signed with an Apple Developer certificate.
Nothing else changed from 1.0.2 — Windows, Android, Linux and Web builds are the same app.
Windows: trust the certificate once before installing, in an admin PowerShell:
Import-Certificate -FilePath .\kerminal-codesign.cer -CertStoreLocation Cert:\LocalMachine\RootAndroid, upgrading from 0.5.x or earlier: the signing key changed in 0.6.0, so the app installs alongside the old one. Use Settings → Backup → Save to file… in the old version, then restore it here. Upgrades from 0.6.0 onwards are normal.
Full details: CHANGELOG.md
v1.0.2
Reliability fixes, mostly in places that were failing silently.
Sharing invitations could never find some accounts
If your email had a capital letter when you signed up (Foo@example.com), your profile was stored exactly like that while colleagues were searched for in lower case — so you could never be found, and the person inviting you just saw "no such account". Both sides are now normalized. Existing profiles are corrected when the database schema is reapplied.
Change history could break permanently
Two devices saving at once could record the same version number twice, and rolling back to that version then failed forever. Version numbers are now unique, and a collision retries instead of leaving a broken pair. Existing duplicates are renumbered — moved to free numbers rather than deleted, so no history is lost.
Switching authentication left the old secret behind
Changing a server from password to SSH key without pasting a key kept the unused password in the credential store, while the connection was attempted with an empty key. The old secret is now removed when the method changes.
Also
- A stored authentication value out of range no longer takes down the whole server list.
- With no host-key verifier the connection is now refused rather than accepting any key. Every path in the app supplies one; the safe default matters if a future one forgets.
- The local database now declares a migration strategy — without it, the first schema change would have stopped existing installs from opening their data at all.
- In-app inquiries: the contact form no longer reports success when the server could not store the message, and the server function works under both Supabase API key schemes.
Windows: trust the certificate once before installing, in an admin PowerShell:
Import-Certificate -FilePath .\kerminal-codesign.cer -CertStoreLocation Cert:\LocalMachine\RootAndroid, upgrading from 0.5.x or earlier: the signing key changed in 0.6.0, so the app installs alongside the old one. Use Settings → Backup → Save to file… in the old version, then restore it here. Upgrades from 0.6.0 onwards are normal.
Full details: CHANGELOG.md
v1.0.1
Contact form now tells you whether your message actually reached us
Sending an inquiry always said "your message was sent", even when the server failed to email it — you would only find out by never getting a reply. It now says plainly when a message was received but delivery is failing, and points you to GitHub issues as a fallback. Your message is stored either way, so nothing is lost.
Everything else in 1.0.0 is unchanged.
Windows: trust the certificate once before installing, in an admin PowerShell:
Import-Certificate -FilePath .\kerminal-codesign.cer -CertStoreLocation Cert:\LocalMachine\RootAndroid, upgrading from 0.5.x or earlier: the signing key changed in 0.6.0, so the app installs alongside the old one. Use Settings → Backup → Save to file… in the old version, then restore it here. Upgrades from 0.6.0 onwards are normal.
Full details: CHANGELOG.md
v1.0.0
Kerminal 1.0.
Transfer files (SFTP)
Tap the folder icon above the terminal to browse the server's files over the same connection — no second login, so no re-entering a one-time code.
Navigate by tapping folders, jump to any level from the path bar, download by tapping a file, upload with the ⬆ button. Rename, create folders and delete, with sizes and modification times shown.
Only empty folders can be deleted. Recursive deletion is deliberately absent — one mistaken tap would wipe a server directory tree, and SFTP has no undo.
Servers that require a one-time code (2FA)
Previously these servers could not be reached at all — the app had no way to answer a keyboard-interactive challenge, so it simply reported an authentication failure. Now the server's prompts are shown as they come, so you can enter your code. Forced password changes work the same way.
Import from ~/.ssh/config (desktop)
⋮ menu → Import from ~/.ssh/config. Review and pick what to bring in; anything already saved is unticked, so running it twice won't duplicate. Patterns like Host * are skipped, and entries needing a jump host are flagged as not yet supported.
Passwords and keys are not read from disk — the config only points at a key file. Add them when you first connect.
Six terminal colour schemes
Kerminal, Dracula, Solarized Dark, Solarized Light, Gruvbox Dark and Nord. Settings → Terminal shows each one rendered in its own colours, so you can see before choosing. Your existing colours stay until you change them.
A clearer interface
- Connect with a single tap. Connecting used to require a double tap with nothing on screen saying so — one tap did nothing and the list looked broken. Each server row now has a visible ▶ button too.
- The app-bar trash icon read as "delete" but actually restored deleted servers; it moved into the ⋮ menu with a proper label.
- Terminal keys read
Ctrl+Cinstead of^C, and long-pressing any key explains what it does. - The account screen now says which of the two secrets is which — the account password signs you in, the encryption passphrase decrypts your servers.
- Wording throughout uses "server" rather than "host".
Reliability
- Sync no longer stops silently. One server that couldn't be decrypted used to abort the entire sync pass, and the error was indistinguishable from being offline — sync could stay broken with no sign at all. Problem servers are now skipped and reported at the top of the list.
- macOS: the credential store could lose saved passwords and keys when opened concurrently, and an unreadable store was overwritten on the next save, destroying any chance of recovery. It is now opened once, and an unreadable file is preserved instead of replaced.
- A wrong passphrase can no longer replace your encryption key. When an account had no key yet, any passphrase would create a new one and overwrite the account's public key — permanently locking you out of everything already synced or shared with you. Creating a key is now a separate, confirmed action.
- A hostile backup file could hang the app on open; the trusted values in it are now bounded.
- A damaged known-hosts store made connecting impossible; it now falls back to asking about fingerprints again.
Windows: trust the certificate once before installing, in an admin PowerShell:
Import-Certificate -FilePath .\kerminal-codesign.cer -CertStoreLocation Cert:\LocalMachine\RootAndroid, upgrading from 0.5.x or earlier: the signing key changed in 0.6.0, so the app installs alongside the old one. Use Settings → Backup → Save to file… in the old version, then restore it here. Upgrades from 0.6.0 onwards are normal.
Full details: CHANGELOG.md
v0.6.0
⚠️ Android: reinstall once
Until now the release APKs were signed with a debug key that changed on every build, which is why a new version could never be installed over an old one. They are now signed with a stable release key — but that means this one upgrade cannot overwrite your existing install.
- In the old app: Settings → Backup & Share → Encrypted export
- Uninstall Kerminal
- Install this version
- Import the backup file
From 0.6.0 onward, updates install normally.
Contact us
Settings → Support → Contact us sends a question, bug report or request straight to the maintainer. A reply address is optional, and you can send without an account. Only your message, platform and app version are included — no hosts, credentials or terminal output.
Windows
.msix is attached again (it was Store-only in 0.5.0–0.5.2). Trust the certificate once before installing, in an admin PowerShell:
Import-Certificate -FilePath .\kerminal-codesign.cer -CertStoreLocation Cert:\LocalMachine\RootThe publisher is verified as Minary. An install signed with the older CN=SMIC certificate has to be removed first.
Also in this release
- UI is fully in English (0.5.2) — the interface previously mixed Korean and English. The default host group is now
Default; hosts saved under the old name are folded into it. - Android: sessions survive an app switch (0.5.1) — a foreground service keeps the socket open, so a running command keeps going instead of reconnecting. A "Keeping N sessions connected" notification shows while sessions are open.
- Mobile tab fixes (0.4.9) — tabs are reachable on phones (full-width row, long-press to reorder, session list sheet), sessions reconnect on resume keeping scrollback, and a 20-second keep-alive stops idle links being reaped by NAT.
Full details: CHANGELOG.md
v0.5.3
Windows .msix is back on the release page
Windows was Store-only in 0.5.0–0.5.2; the installer is attached here again, alongside kerminal-codesign.cer. In-app update checks on Windows also point back to this download.
First install (once): the package is self-signed, so trust the certificate first — in an admin PowerShell:
Import-Certificate -FilePath .\kerminal-codesign.cer -CertStoreLocation Cert:\LocalMachine\RootThen run kerminal.msix; the publisher is verified as Minary.
The signing certificate was reissued as
CN=Minary(it wasCN=SMICthrough 0.5.2). The publisher is part of an MSIX package identity, so an existing install signed with the old certificate cannot be updated in place — uninstall it, trust the new.cer, then install.
The Microsoft Store build and this one have different package identities. An app installed from one cannot be updated by the other, so stay on one channel.
UI is fully in English (0.5.2)
Every screen is English-only; the interface previously mixed Korean and English. The default group is renamed to Default, and hosts saved under the old name are folded into it rather than appearing as a separate group.
Android: sessions survive an app switch (0.5.1)
A foreground service holds the process, so the socket stays open and a running command keeps going instead of reconnecting. A "Keeping N sessions connected" notification is shown while sessions are open and disappears when the last tab closes. On Android 13+ the notification permission is requested once — declining it keeps the feature working, only the notification is hidden.
iOS suspends the process regardless, so sessions there reconnect automatically on resume.
Mobile tab fixes (0.4.9)
- Fixed tab switching being impossible on phones: tabs now get a full-width row, long-press to reorder so swiping scrolls the strip, and a session list sheet for switching
- Automatic reconnect on resume, keeping tabs and scrollback
- 20-second keep-alive so idle links survive NAT and server timeouts
Upgrading from 0.4.x: the package identifier changed in 0.5.0, so on Android the app installs alongside the old one and saved hosts are not carried over. Use Settings → Encrypted export in the old version, then import the file in the new one.
Full details: CHANGELOG.md