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
Sinity b2d5a36283
Garbage collect the text cache periodically so unique cell texts do not grow memory without bound
The TextCache interns every unique multi-codepoint cell text for the
lifetime of the window with no eviction, so a stream of unique texts
(for example random combining mark sequences) grows memory without
bound, several hundred MB/hour at moderate throughput.

Mirror the existing hyperlink pool garbage collection: every 8192
newly interned entries, steal the cache contents and have the Screen
remap the index in every live cell (history buffer, main and alt line
buffers, paused rendering snapshot and overlay line), re-interning
only entries still referenced by some cell. Entries whose last
reference scrolled out of the history buffer are freed.

See #10249

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-11 20:40:02 +02:00
.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 Clean up previous PR 2026-07-09 07:01:18 +05:30
kitty Garbage collect the text cache periodically so unique cell texts do not grow memory without bound 2026-07-11 20:40:02 +02:00
kitty_tests Garbage collect the text cache periodically so unique cell texts do not grow memory without bound 2026-07-11 20:40:02 +02:00
logo macOS: Switch to Tahoe style application icon 2026-04-18 13:28:22 +05:30
shell-integration Do not try to auto install kitten when generating completions 2026-07-03 23:30:59 +05:30
terminfo Update Se terminfo entry to reset cursor to configured default 2026-04-26 17:50:16 -05:00
tools Fix remote_control_script not working in a kitty instance run from inside another kitty instance 2026-07-06 09:08:43 +05:30
.editorconfig
.gitattributes Move parsing of colors fully into C 2025-12-31 14:21:45 +05:30
.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 Fix pkill invocation 2026-02-24 07:47:22 +05:30
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 Update shell.nix 2026-03-23 17:26:53 -04:00
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"]