If you live in the terminal, kitty is made for you! Cross-platform, fast, feature-rich, GPU based. https://sw.kovidgoyal.net/kitty/
Find a file
OBrutus a0978a74a2 remote_file kitten: port ask UI to Go, wrap and shrink Python to result-handler shim
Adds kittens/remote_file/main.go (ask menu, hostname-mismatch prompt,
save-path prompt with tab completion, edit/open/save actions) on top of the
ControlMaster/ssh helpers from the previous two commits, registers it in
tools/cmd/tool/main.go, and adds remote_file to shell-integration/ssh/kitty's
wrapped_kittens list so both `kitty +kitten remote_file` and ssh-session
invocations exec the Go binary directly. main.py is shrunk to option_text
(kept importable by kitty/cli_stub.py and used for --doc/--help generation),
is_ssh_kitten_sentinel (kept importable by kitty/window.py), and the
handle_result shim boss.py runs in-process to open the returned file.

Also drops the dead `-h` alias on --hostname: Python's CLI layer always
special-cases -h/--help ahead of user options, so it never worked as a
hostname shorthand, but the Go CLI layer hard-errors on the collision; removing
it is a no-op for existing behavior (boss.py only ever passes --hostname) and
unblocks `kitten remote-file --help`. Also adds the same reset_terminal()
calls Python makes between UI phases (ask menu -> action, hostname-mismatch
prompt, overwrite prompt, $EDITOR handoff) so the Go and Python screens match.

Manually verified parity against Python (ask menu, cancel, open/edit/save
download+upload round-trips, hostname-mismatch Y/N, save-path prompt and
overwrite O/A/R/N) using a fake-ssh test double, and confirmed post-wrap that
`kitty +kitten remote_file` execs the Go kitten binary.
2026-08-13 15:21:57 +05:30
.github ty does not enforce existence of type signatures on functions, so use ruff to do it 2026-07-07 13:56:54 +05:30
3rdparty
bypy ty does not enforce existence of type signatures on functions, so use ruff to do it 2026-07-07 13:56:54 +05:30
docs Make cursor_trail_start_threshold accept two values for x and y dimensions independently 2026-07-10 02:05:57 +00:00
gen Migrate type checker to ty 2026-07-04 09:18:00 +05:30
glad ty does not enforce existence of type signatures on functions, so use ruff to do it 2026-07-07 13:56:54 +05:30
glfw Fix IME popup position after text_input re-enters on Wayland 2026-07-09 08:22:06 +08:00
kittens remote_file kitten: port ask UI to Go, wrap and shrink Python to result-handler shim 2026-08-13 15:21:57 +05:30
kitty Make cursor_trail_start_threshold accept two values for x and y dimensions independently 2026-07-10 02:05:57 +00:00
kitty_tests ... 2026-07-04 09:23:16 +05:30
logo
shell-integration remote_file kitten: port ask UI to Go, wrap and shrink Python to result-handler shim 2026-08-13 15:21:57 +05:30
terminfo
tools remote_file kitten: port ask UI to Go, wrap and shrink Python to result-handler shim 2026-08-13 15:21:57 +05:30
.editorconfig
.gitattributes
.gitignore Agent neutral instructions 2026-07-06 11:18:16 +05:30
__main__.py
benchmark.py
Brewfile
build-terminfo
CHANGELOG.rst
CONTRIBUTING.md
count-lines-of-code
dev.sh
embeds.go
go.mod Bump go version for stdlib CVEs 2026-07-09 07:46:27 +05:30
go.sum Bump the all-go-deps group with 2 updates 2026-07-06 03:42:57 +00:00
INSTALL.md
key_encoding.json
LICENSE
local-agent.md Agent neutral instructions 2026-07-06 11:18:16 +05:30
Makefile
publish.py
pyproject.toml ty does not enforce existence of type signatures on functions, so use ruff to do it 2026-07-07 13:56:54 +05:30
README.asciidoc
rsync-and-build.sh
SECURITY.md
session.vim
setup.py ... 2026-07-05 20:03:36 +05:30
shell.nix
staticcheck.conf
test.py
update-on-ox

= kitty - the fast, feature-rich, cross-platform, GPU based terminal

If you live in the terminal, *kitty* is made for **you**!

See https://sw.kovidgoyal.net/kitty/[the kitty website].

image:https://github.com/kovidgoyal/kitty/workflows/CI/badge.svg["Build status", link="https://github.com/kovidgoyal/kitty/actions?query=workflow%3ACI"]

https://sw.kovidgoyal.net/kitty/faq/[Frequently Asked Questions]

To ask other questions about kitty usage, use either the https://github.com/kovidgoyal/kitty/discussions/[discussions on GitHub] or the
https://www.reddit.com/r/KittyTerminal[Reddit community]

Packaging status in various repositories:

image:https://repology.org/badge/vertical-allrepos/kitty-terminal.svg?columns=3&header=kitty["Packaging status", link="https://repology.org/project/kitty-terminal/versions"]