Skip to content

Releases: hknet/KiTTY

KiTTY 0.84.1.61-beta

KiTTY 0.84.1.61-beta Pre-release
Pre-release

Choose a tag to compare

@hknet hknet released this 22 Jul 21:40

KiTTY 0.84.1.61-beta

Fixes an always-on restricted process ACL for sessions started from the configuration box - the root cause behind windows not restarting after in-place upgrades.

Highlights:

  • Sessions spawned from the configuration box (Start, Enter, Duplicate Session, "open new with current settings" - including every password-authenticated session) unintentionally ran in the -restrict-acl hardening mode since the 0.84 port began. That locked the process down so tightly that the Windows Restart Manager could not inspect it during an in-place upgrade ("a critical application holds files in use - a reboot will be necessary"), so no files-in-use dialog appeared and windows never restarted after an upgrade; it was also the root cause of the 0.84.1.58 upgrade rollbacks, and it can interfere with accessibility and automation tools. The restricted ACL now applies only when explicitly requested via -restrict-acl.
  • The improved upgrade behaviour takes effect for upgrades FROM this version to a future one: the installer's files-in-use handling can then offer to close and restart the open KiTTY windows. The upgrade TO this version still behaves like before.

Known issues and limitations (tag-pinned):
https://github.com/hknet/KiTTY/blob/kitty-0.84.1.61-beta/KNOWN-ISSUES.md

KiTTY 0.84.1.60-beta

KiTTY 0.84.1.60-beta Pre-release
Pre-release

Choose a tag to compare

@hknet hknet released this 22 Jul 18:14

KiTTY 0.84.1.60-beta

Config-box usability: the Open and Start buttons act on the visible selection, Ctrl+F jumps to the session search, and the tray icons respond to plain left clicks.

Highlights:

  • Predictable session picking: the Start button starts the session you just selected with a single click (#18); while the search filter is active, Open and Start act on the highlighted match. Clicking Open opens the session in the current window (classic behaviour - the configuration box closes), while Start - like pressing Enter - starts it in a new window and keeps the box open for the next launch. Loading a session, tweaking its settings and test-driving them with Start works unchanged.
  • Ctrl+F from anywhere in the configuration window - any settings panel, or right after starting a session with Enter - jumps back to the Session panel with the search field focused and its content selected, so typing immediately starts a new saved-session search.
  • Tray usability: kageant's tray menu now opens on a plain left click too, and double-clicking the launcher tray icon opens a new configuration window.

Known issues and limitations (tag-pinned):
https://github.com/hknet/KiTTY/blob/kitty-0.84.1.60-beta/KNOWN-ISSUES.md

KiTTY 0.84.1.59-beta

KiTTY 0.84.1.59-beta Pre-release
Pre-release

Choose a tag to compare

@hknet hknet released this 21 Jul 23:02

KiTTY 0.84.1.59-beta

KiTTY 0.84.1.57-beta

KiTTY 0.84.1.57-beta Pre-release
Pre-release

Choose a tag to compare

@hknet hknet released this 21 Jul 14:13

KiTTY 0.84.1.57-beta

Directory-aware file uploads via OSC 7, a high-DPI transfer window, and windows that come back after an in-place upgrade.

Highlights:

  • Directory-aware uploads (OSC 7 shell integration). Enable "Track remote directory (OSC 7 shell integration)" under Connection -> SSH -> KSCP and WinSCP, and drag-and-drop uploads (and Start WinSCP) land in your remote shell's current working directory instead of your home directory. KiTTY reads the path from the standard OSC 7 sequence your shell emits on every prompt, validated strictly as data and never executed. Two lines in your .bashrc/.zshrc set it up: see docs/examples/osc7-shell-integration.md. This is the safe, data-only replacement for KiTTY's old "send file to the current directory" option, retired after that title-scan mechanism proved to be a remote-code-execution hole (CVE-2024-23749); sessions that had it enabled are migrated to OSC 7 tracking automatically. A fixed remote upload directory field covers the "always upload here" case.
  • Transfer window improvements. The transfer progress/output window is now high-DPI aware (it used to render tiny on high-DPI displays), shows the exact upload target (user@host:directory), closes with Esc, and can be set to stay open after a successful transfer. The configuration panel is now titled "KSCP and WinSCP".
  • Terminal and configuration windows relaunch after an in-place MSI upgrade. Previously an in-place upgrade brought back only the tray apps (kageant, the launcher) while the terminal and the configuration window silently vanished; they now come back -- a saved session reconnects and the configuration window reopens.

Known issues and limitations (tag-pinned):
https://github.com/hknet/KiTTY/blob/kitty-0.84.1.57-beta/KNOWN-ISSUES.md

KiTTY 0.84.1.56-beta

KiTTY 0.84.1.56-beta Pre-release
Pre-release

Choose a tag to compare

@hknet hknet released this 20 Jul 10:45

KiTTY 0.84.1.56-beta

A small usability release for the send-text / command console: /help and the Ctrl+F8 input box no longer get in each other's way.

Highlights:

  • /help no longer blocks the box you type commands into. The internal-command list (/help in the Ctrl+F8 send-text box) used to be a modal message box that had to be dismissed before you could type anything. It now opens in a separate resizable window that stays open while you keep issuing commands: a second /help brings it to the front, Esc or Close dismisses it, the text can be selected and copied (Ctrl+A, Ctrl+C), and its position is remembered like the other pop-up windows.
  • The Ctrl+F8 send-text box is now modeless. It no longer freezes the terminal window while open, so you can scroll or click the terminal with the box up, and it coexists with the /help window (Esc works in either). Sending a line still clears the box and keeps it open for the next one, as before; Esc, Close or the X dismiss it. The Shift+F8 multiline box and the password prompt are unchanged.

Known issues and limitations (tag-pinned):
https://github.com/hknet/KiTTY/blob/kitty-0.84.1.56-beta/KNOWN-ISSUES.md

KiTTY 0.84.1.55-beta

KiTTY 0.84.1.55-beta Pre-release
Pre-release

Choose a tag to compare

@hknet hknet released this 19 Jul 22:04

KiTTY 0.84.1.55-beta

One headline feature: automatic font fallback for characters your terminal font does not have - Nerd Font icons, CJK, box drawing and symbols now render without switching fonts.

Highlights:

  • Missing-glyph font fallback, ported from upstream PR cyd01#555 by blreay - thanks! When the terminal font is missing a character, KiTTY probes a list of fallback fonts and draws that character from the first font that has it. Cell widths are unchanged; only the glyph's source font differs. This covers what Windows' own font linking cannot, notably private-use-area icons (Nerd Fonts / Powerline prompts).
  • Configured in a new kitty.ini [FontFallback] section (see docs/KITTY-INI.md): active master switch (default yes), fallback= comma-separated font list tried before the built-in defaults (leading ! replaces them), override=U+range:Font pinning, and log/logfile for troubleshooting. The built-in fallback list leads with Cascadia Mono/Code and the Segoe UI symbol fonts, then the major CJK UI fonts.
  • Limitations: rendering is plain GDI, so emoji drawn via fallback come out monochrome; supplementary-plane emoji may need an explicit override= range; with a raster primary font (Terminal/Fixedsys) the feature disables itself. active=no turns it off entirely.
  • The port also fixes two issues in the original module: a raster primary font no longer sends all text to the first fallback font, and very long mixed-font lines are no longer truncated at 64 runs.
  • Internals: the configuration self-test (test_conf) now expects KiTTY's defaults for ProxyLogToTerm and ShiftedArrowKeys - the two remaining failures dating from the 0.84 baseline import - so the suite runs green and serves as a regression gate for future upstream rebases.

Known issues and limitations (tag-pinned):
https://github.com/hknet/KiTTY/blob/kitty-0.84.1.55-beta/KNOWN-ISSUES.md

KiTTY 0.84.1.54-beta

KiTTY 0.84.1.54-beta Pre-release
Pre-release

Choose a tag to compare

@hknet hknet released this 19 Jul 02:10

KiTTY 0.84.1.54-beta

A small parity-and-polish release: Ctrl-Tab reaches the host again for tmux users, a diagnostic-dump redaction gap is closed, and kitty.ini finally has a proper guide.

Highlights:

  • Ctrl-Tab and Ctrl-Shift-Tab are passed to the host again (#15). Tab with Ctrl held produces no character message on Windows, so the keystroke was silently swallowed - classic KiTTY mapped the pair to the xterm sequences ESC[27;5;9~ and ESC[27;6;9~, and that mapping had not been carried over into the 0.84 port. It is restored with exactly the classic sequences, so tmux/vim bindings that worked with 0.76 work unchanged. The mapping is skipped in putty-compatibility mode, and KiTTY's own Ctrl-Tab window-switching option, when enabled, still takes precedence.
  • Diagnostic dumps: the stored inline login/RuTTY script content is now redacted inside the embedded current.ktx too. The visible /savedump text has redacted it since 0.84.1.37, but the embedded session copy still carried it - that gap is closed, and the long-standing "script-content path under review" caveat is retired from KNOWN-ISSUES.
  • New settings-file guide docs/KITTY-INI.md: one page explaining kitty.ini - how KiTTY finds the file, the savemode values and the portable-layout rule, and what each section configures - with the fully annotated kitty.ini.example as the complete key reference. The release pipeline cross-checks the guide against the example, so it cannot drift.
  • README refresh: the download notes describe the two ZIP flavours correctly, the stored-passwords summary reflects the portable master password (shipped in 0.84.1.48), the feature digest gained the command console, named proxies/jump hosts, the security set and the kageant capabilities, and the credits link the original PuTTY author's GitHub page.

Known issues and limitations (tag-pinned):
https://github.com/hknet/KiTTY/blob/kitty-0.84.1.54-beta/KNOWN-ISSUES.md

KiTTY 0.84.1.53-beta

KiTTY 0.84.1.53-beta Pre-release
Pre-release

Choose a tag to compare

@hknet hknet released this 18 Jul 15:09

KiTTY 0.84.1.53-beta

The agent release: kageant learns kitty.ini, portable installs get a registry-free autostart and a travelling startup-key list, and the send-text command set is finally fully documented.

Highlights:

  • kageant honours kitty.ini (#14): the [Agent] section controls askconfirmation with the classic three states - yes (confirm every key use), auto (only keys whose comment contains the word "confirmation"; the default) and no (never ask, for automation) - plus messageonkeyusage for the key-used tray balloon. When kitty.ini says savemode=file or dir - or, with no savemode line, when a portable layout (a Sessions folder or KiTTYState file) sits beside it - the ini is the authoritative store: the tray toggles write back to it and a portable kageant never touches the registry. The key-list window shows "kitty.ini mode" and new three-state Confirm-key-use radios; in registry mode nothing changes.
  • The startup-key list travels: with kitty.ini authoritative, remembered keys are stored in the ini (startupkey1=..., with an ,encrypted marker), keys inside the install folder as relative paths that survive a drive-letter change. A key added from elsewhere asks whether to copy it into the portable folder or reference it in place; a key missing at login gives one tray notice and is skipped, not dropped from the list.
  • Registry-free autostart: a portable kageant installs its start-at-login entry as a Startup-folder shortcut (no registry write); installed/registry mode keeps the classic HKCU Run entry, and the tray launcher has the same one-click Start-at-login toggle. Enabling autostart now checks for conflicts first - another agent already autostarting from elsewhere, or a same-named entry from another install - and asks before creating a second one. Both programs identify their own entries strictly by target path, so toggling autostart in one install no longer removes another install's entry.
  • Tray polish: "Quit" became "Exit" everywhere in the launcher, the Opened-sessions submenu no longer duplicates About/Exit, kageant's tray checkmarks re-sync from the live settings whenever the menu opens, and the portable launcher's tooltip identifies itself with a second line "(portable)".
  • The send-text internal commands are table-driven now and /help is built from that table, so the in-app list can no longer miss a command (seven live commands were absent from the old hand-written text). A long-standing /zmodem quirk is fixed: it toggled its flag but also sent the literal text "/zmodem" on to the host. All 46 commands are documented in docs/COMMANDS.md, linked from FEATURES.md - and the release pipeline cross-checks the command table against that document, so future commands arrive documented.
  • Upstream fix: a memory leak in the console tools' weak-hostkey confirmation prompt (cherry-picked from PuTTY upstream).

Known issues and limitations (tag-pinned):
https://github.com/hknet/KiTTY/blob/kitty-0.84.1.53-beta/KNOWN-ISSUES.md

KiTTY 0.84.1.52-beta

KiTTY 0.84.1.52-beta Pre-release
Pre-release

Choose a tag to compare

@hknet hknet released this 17 Jul 13:29

KiTTY 0.84.1.52-beta

The housekeeping release: a resizable Event Log, invert colours that really inverts (and no longer crashes), a friendlier system menu, a kitty.ini clean-up, and a major internal restructuring.

Highlights:

  • Invert colours (Window menu) no longer crashes the session and is a true photographic negative now - black flips to white, and using it twice restores the original scheme. The same underlying fix means .ktx session files no longer silently drop the underline/selection colours on save.
  • The Event Log is resizable and maximizable, opens larger, and understands Ctrl+A (select all) and Ctrl+C (copy); Copy with nothing selected still copies the whole log.
  • Esc closes the About box again, from a terminal window or from the configuration box.
  • "Check for updates" makes its "up to date" answer visible: the title bar turns green for five seconds with the notice text (Windows 11; earlier Windows shows the text as before).
  • System menu cleanup: "New Session" is gone (starting kitty.exe gives the same box), "Inherit New Session" replaces "New duplicated session" (a configuration box pre-loaded with the current window's settings and an empty hostname - connect somewhere else with exactly this setup), and "Always On Top" replaces "Always visible".
  • kitty.ini housekeeping: 16+ documented-but-dead keys retired (list in FEATURES.md), four wanted ones revived as working features - noexit, scriptmode, size and wintitle (title markers like (PROTECTED)/(ONTOP), strictly display-only) - plus the new [ConfigBox] dblclick=start to make double-clicking a saved session act like the Start button. If a retired key mattered to your workflow, open an issue - where feasible we will restore the wiring, as was done for these five.
  • RuTTY scripting is finally documented: FEATURES.md explains the script-file format and docs/examples/logon-script.ksh ships as a commented starter file.
  • The send-text box became discoverable: type /help in the one-line box (Ctrl+F8) to list all KiTTY internal commands (the box title now says so), /size re-enables the title decorations if /wintitle switched them off, and Ctrl+Shift+F8 always opens the multiline box as an alias next to Shift+F8. Note: /size and /wintitle are app-global runtime toggles (persist them via kitty.ini [KiTTY] size=yes / wintitle=no); per-session title decorations are planned for a future release.
  • Runtime tweaks can be saved as a session: /save writes the live settings back to this window's saved session, and the new /savenew saves them as a new session and switches the window to it (later /save calls and save-on-exit land there). The classic .ktx file export moved to /savektx.
  • The download ZIP comes in two flavours now (#13): kitty-0.84.1.52-beta.zip contains only plain, uncompressed signed executables (recommended - some antivirus engines block downloads containing UPX-packed files, which made the old mixed archive undownloadable for affected users), while kitty-0.84.1.52-beta-upx.zip carries the UPX-packed kitty.exe / kitty_portable.exe for the smallest download. The _nocompress duplicate files inside the archive are gone.
  • Under the hood, the largest source files were restructured into focused modules (kitty.c shrank by more than a third; the configuration dialog is built one panel per function; kitty.ini parsing is table-driven). No intended behaviour change: every code move was verified byte-identical, the configuration box was checked panel by panel, and a new storage round-trip regression test guards the settings/crypto layer. If an exotic kitty.ini setup stopped reacting, check the retired-keys list in FEATURES.md first and report.

Known issues and limitations (tag-pinned):
https://github.com/hknet/KiTTY/blob/kitty-0.84.1.52-beta/KNOWN-ISSUES.md

KiTTY 0.84.1.51-beta

KiTTY 0.84.1.51-beta Pre-release
Pre-release

Choose a tag to compare

@hknet hknet released this 12 Jul 20:59

KiTTY 0.84.1.51-beta

Named proxies can now be SSH jump hosts.

Highlights:

  • A named proxy can now be an SSH jump host, so a bastion/jump host is defined once and picked per session from the Proxy choice dropdown instead of being set up by hand each time. Three types: "SSH jump host (port forwarding)" opens a standard forwarded connection through the jump host (the equivalent of OpenSSH's ProxyJump / ssh -J, and the usual choice); "(execute a command)" and "(invoke a subsystem)" cover jump hosts where forwarding is disabled but you can run a program or start an SSH subsystem. With no password stored, the jump connection authenticates like any SSH session, so keys loaded in kageant are used automatically.
  • The named-proxy editor is easier to read, with its fields grouped into Definition / Proxy-jump host / Options sections.
  • The SSH-auth agent checkbox (Connection > SSH > Auth) now reads "Attempt authentication using kageant (Pageant)" to match the tray agent KiTTY actually ships.
  • FEATURES.md documents each jump-host type, where the jump host's settings come from (a saved session named in the Host field, otherwise Default Settings), and how to chain multiple hops.

Note: a named proxy does not yet store authentication settings of its own - the jump hop's key/agent choice comes from Default Settings, or from a saved session if the proxy Host field is named like one. A future release will let the proxy editor own its auth settings directly.

Known issues and limitations (tag-pinned):
https://github.com/hknet/KiTTY/blob/kitty-0.84.1.51-beta/KNOWN-ISSUES.md