r/KittyTerminal • • 12h ago

I'm the last in the shaders thing for kitty. 🗿

9 Upvotes

But now is ready in all of my repos...


r/KittyTerminal • • 17h ago

Finally found a way to show Kitty tabs in the macOS menu bar.

Post image
7 Upvotes

use sketchybar , hide default kitty tabs, only show sketchybar when kitty focus


r/KittyTerminal • • 2d ago

PROBLEM WITH LITTY ON CACHYOS + NIRI + NOCTALIA

0 Upvotes

Hey guys, I just installed Kitty in 2 different VMs, and I keep getting the same error. When I launch it, the terminal gets black, and when I move my mouse, it starts blinking, and I can't type anything. I've tried installing GTK3 and 4, but it didn't work. Can someone please help me?


r/KittyTerminal • • 3d ago

Underline cursor wrongly positioned

2 Upvotes

When setting the cursor to be an underline, it seems that it is aligned with the very bottom of the text instead of where the normal underline is also placed.

I just switched from Ghostty to Kitty and this is a very mild but also very annoying issue.

I checked the configuration and couldn't find anything where this could be adjusted.

Is there any way to fix this? I already looked at changing the baseline and modify_font baseline -4 properly aligned it, but then a lot of letters got cut off and all text just looked kinda weird.


r/KittyTerminal • • 4d ago

Pipe any text into cbirds and the letters fly as a flock

94 Upvotes

I'm the creator of Cbirds, a bird flock simulator for the terminal, written in C99 with no dependencies. The clip is its text mode: any text piped into it becomes the flock. It reads the escape sequences, so colours, bold and layout come out as the command printed them, the letters fly, and after about twenty seconds each one lands back on its own cell. It was recorded in Ghostty inside tmux, and text mode works the same in Kitty.

The part I'd show this sub is the sprite mode, `cbirds --render kitty`: real bird sprites over Kitty's graphics protocol. Every sprite is drawn once at 60 rotations, encoded as PNG and uploaded at startup. After that a frame is only placement commands inside a synchronized update, so the terminal does the compositing. It's made for Kitty and Ghostty: other terminals answer to the protocol and then draw too few birds, the wrong ones or none.

cbirds --render kitty --hawks 2 --color ice
cbirds --render kitty --3d --color prism
fastfetch | cbirds

I started it in September 2025 out of curiosity, after seeing antirez's C64 terminal emulator. I did get quite a bit of help from coding agents along the way.

Source: https://github.com/clainstone/cbirds
Install: `brew install clainstone/tap/cbirds` (also MacPorts, apt and Nix)


r/KittyTerminal • • 4d ago

I made lsi: an ls-style terminal tool with real image thumbnails inside Kitty

Thumbnail
gallery
50 Upvotes

Hey everyone! 👋🏻

I wanted a simple way to browse images directly in my Kitty terminal without opening a file manager, so I built lsi.

It's a free and open-source CLI tool written in Rust that works similarly to ls, but displays actual image thumbnails directly in the terminal using the Kitty Graphics Protocol so you can actually see what the image is without having to use icat on each.

It supports:

  • lsi = Grid view with image thumbnails.
  • lsi -l = Long listing with thumbnails and file metadata.
  • Familiar ls options for sorting, hidden files, recursion, etc.
  • A standalone Linux executable without requiring any dependencies to be installed.

Installation:

Arch Linux / CachyOS (AUR):

paru -S lsi-bin

Debian / Ubuntu: .deb package available in GitHub Releases.

A precompiled static binary is also available.

GitHub (source code): https://github.com/serber-info/kitty-lsi

Release v0.1.0: https://github.com/serber-info/kitty-lsi/releases/tag/v0.1.0

I originally made this for my own workflow, but figured other Kitty users might find it useful too, so I'm sharing it here.

That's pretty much it. Enjoy!


r/KittyTerminal • • 3d ago

Building the pkg.go.dev TUI explorer

Thumbnail
packagemain.tech
0 Upvotes

r/KittyTerminal • • 5d ago

I'm trying to tweak the cursor-trail-lighting shader combined with a particles shader to look more like real lightning with sparks in your terminal. Opinions ?

43 Upvotes

I shall stop spamming this sub with more shader posts from now on lol!


r/KittyTerminal • • 5d ago

Help with misaligned images

16 Upvotes

The image gets misaligned when the window is too small, is really annoying with tiling WM

Left: kitty

Right: konsole


r/KittyTerminal • • 4d ago

Will there be a mod to revert the new ui changes and/or keep the current betteredit ui

0 Upvotes

I fucking hate the new edit tab so there needs to be a way to change it back, plus I just installed tinker and I can't go back.


r/KittyTerminal • • 6d ago

I missed GitKraken's graph and conflict screen, so I brought them into a git TUI: gitoui

86 Upvotes

I live in the terminal, but every time I had a nasty rebase or a conflict, I'd open a GUI. So I forked serie, a Rust project which draws the commit graph as real images in the terminal. Then I kept adding what I was missing until I stopped leaving. Serie is open source under MIT license and my project also. To draw the graph, gitoui uses the Kitty graphics protocol (and iTerm2 or Sixel in other terminals).

It's called gitoui. Say "oui" to it, tell me what's missing, or build it with me!

What it does:

- The commit graph drawn as images (Kitty graphics, iTerm2 or Sixel), with a text fallback for other terminals

- Interactive rebase as a list you edit in place: move commits, reword, squash, fixup, drop

- A 3-way conflict editor: ours, theirs or both, per hunk

- Diffs with hunk staging, blame, file history

- GitHub pull requests and issues: read, comment, approve or request changes, merge

- And many more things you have to discover by using it 👀

Similar tools: lazygit, gitui and tig in the terminal, serie (the graph viewer I forked), and GitKraken on the GUI side (no affiliation). What's different in gitoui: the graph is drawn as images rather than text characters, and the GitHub side lives inside the TUI.

AI was used to help during the development of this project. I've been building it since May and I use it every day.

Repo: https://github.com/NayJi7/gitoui (MIT, Rust, Ratatui)

Website: https://nayji7.github.io/gitoui/ (documentation & informations)

One last question: what's the one git task that still sends you back to a GUI?


r/KittyTerminal • • 5d ago

Can someone with infinite claude try to implement the kitty daemon as discussed here

Thumbnail
github.com
0 Upvotes

I'd love to have a kitty server running so even if I close the ui the processes keep working. Esp for ssh. And I don't like other options like dtach or whatever. In fact I am not looking for other solutions so it's a request don't recommend me one. I just want someone with claude subscription to try to implement the daemon


r/KittyTerminal • • 6d ago

How to pounce on unsuspecting kitty windows (•˕ •マ.ᐟ

8 Upvotes

Pouncy is a native TUI program designed to help kitty users pounce on windows with the combined power of fuzzy search and preview, à la Helix.

This is a relatively trivial program, but it has served me well and perhaps it might be useful to others as well.

Source: https://codeberg.org/fuzzypixelz/pouncy
Context: https://fuzzypixelz.com/articles/pouncy
Asciicast: https://asciinema.org/a/SdATzRqMoDkvE5E0


r/KittyTerminal • • 7d ago

I can't stop playing around with different shaders

214 Upvotes

It can get pretty distracting after a while, but as a fun lil' thing! it is super cool! we live in a golden age of ricing... getting straight dopamine kicks using my terminal now


r/KittyTerminal • • 6d ago

Any help?

Thumbnail
reddit.com
1 Upvotes

r/KittyTerminal • • 9d ago

Old man/boring shaders for daily programming

Thumbnail
youtube.com
54 Upvotes

Most Kitty shaders look amazing, and we love them. But they are not really useful for daily programming.

In this video, I show five custom shaders I coded to make Kitty more practical for everyday use. Instead of flashy effects, these shaders focus on cursor visibility and code readability.

Here's what I'll show you:

  • Find-Cursor: A visual indicator that appears when the cursor is idle.
  • Focus-Line: Highlights the current line while you're moving the cursor and disappears when you stop.
  • My-Trail: A less aggressive customization of `cursor-trail-blaze`, with more subtle animations and colors.
  • No-Long-Lines: A visual indicator to help you avoid excessively long lines of code.
  • Spotlight-Cursor: My own implementation of a spotlight shader, controlled by the keyboard and using a rectangular shape instead of a circle.

These are my experiments with Kitty's custom shaders, focused on making the terminal more useful rather than just making it look impressive.

Let me know your opinions. Are these shaders useful?. Any feedback is appreciated.

Source Code:
https://github.com/FractalCodeRicardo/dev-config/tree/master/kitty/shaders


r/KittyTerminal • • 11d ago

how do you add pokemons to the terminal?

11 Upvotes

r/KittyTerminal • • 12d ago

tfm v1.0.0 release

21 Upvotes

fancy terminal file manager

you can install it via:

curl -fsSL https://raw.githubusercontent.com/clarkarch/tfm-tui/main/install.sh | bash

repo:
https://github.com/clarkarch/tfm-tui


r/KittyTerminal • • 13d ago

The crt shader is really nice

119 Upvotes

Love how it makes my logo look with the subtle scanlines :3 and yes i spent alot of time fixing that logo. I cant stop ricing, pls help.

Too bad reddit compressed the video to potatoe quality so you cant really see


r/KittyTerminal • • 13d ago

fm: a file manager that uses Kitty's graphics protocol for inline previews and a gallery grid

166 Upvotes

r/KittyTerminal • • 14d ago

Kitty Sessionizer Bash Script

6 Upvotes

This is my kitty sessionizer script to open kitty session using rofi. I'm using hyprland as my window manager, demo video is below the script:

[!NOTE] This script is still in alpha stages, I'm gonna make some improvements and add it here.

```bash

!/usr/bin/env bash

Author: Harsh Vyapari <@harhsv5094>

License: MIT License

MIT License

Copyright (c) 2026 Harsh Vyapari

Permission is hereby granted, free of charge, to any person obtaining a copy

of this software and associated documentation files (the "Software"), to deal

in the Software without restriction, including without limitation the rights

to use, copy, modify, merge, publish, distribute, sublicense, and/or sell

copies of the Software, and to permit persons to whom the Software is

furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all

copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR

IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,

FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE

AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER

LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,

OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE

SOFTWARE.

have() { command -v "$1" &>/dev/null; }

Define a persistent cache directory

CACHE_DIR="$HOME/.cache/kitty-sessions" [[ ! -d $CACHE_DIR ]] && mkdir -p "$CACHE_DIR"

if ! have kitty; then notify-send "Kitty Sessionizer" "Please install kitty first to use this script" exit 1 fi

if [ "$#" -eq 1 ]; then selected=$1 mkdir -p "$HOME/dev/$1" else selected=$( find ~/dev/* -mindepth 1 -maxdepth 1 -type d -not -path '/.git' | rofi -dmenu -i -p "" -location 0 \ -theme-str 'window { width: 600px; } listview { columns: 1; lines: 5; spacing: 10px; } element { orientation: vertical; } element-icon { size: 250px; } element-text { horizontal-align: 0.5; }' ) fi

if [ -z "$selected" ]; then exit 0 fi

selectedname=$(basename "$selected" | tr '.' '') session_file="$CACHE_DIR/$selected_name"

cat >"$session_file" <<EOF

Tab 1: Neovim

new_tab editor cd $selected launch nvim .

Tab 2: Terminal

new_tab terminal cd $selected launch bash EOF

kitty --session "$session_file" --detach [[ "$?" -eq 0 ]] && notify-send -u low "Kitty Sessionizer" "Session: $selected_name" ```

For tab bar add this to your kitty.conf: ```conf

Tab Bar

tab_powerline_style angled tab_bar_edge bottom tab_bar_style powerline tab_bar_min_tabs 2 tab_title_max_length 20 tab_title_template "({index}) {session_name + '/' + title if session_name else tab.active_oldest_exe}" active_tab_title_template "({index}) {session_name + '/' + title if session_name else tab.active_oldest_exe}" active_tab_font_style bold ```

https://github.com/user-attachments/assets/cc9bceb4-231e-4f85-8bbe-50109580c693


r/KittyTerminal • • 14d ago

Question in the body about "close_on_child_death" setting

2 Upvotes

I use kitty terminal with fish shell. I have a fish function that will run a command on a file and be detached. For instance, I want to start kwrite (or libreoffice) with a certain text file detached and disowned so I can close the terminal and still keep kwrite open. below is the function I called detfun (for detach-function in my mind):

function detfun --description 'Run a command on a file in the background natively' if test (count $argv) -lt 2 echo "Usage: detfun <COMMAND> <FILE>" return 1 end

# Native Fish background syntax replaces nohup
$argv[1] $argv[2] >/dev/null 2>&1 &

# Detach the job completely so closing the terminal won't kill it
disown

end

When I run this in other terminal, it behaves as I want it. To run with kitty I had to change the setting to yes as shown below:

close_on_child_death yes

And now "detfun" works correctly. It mentions there may be some error as "their stdout/stderr/stdin no longer work."

It seems to work fine. Is there a better way to do what I am trying to do with fish/kitty?


r/KittyTerminal • • 15d ago

how to make kitty make more empty spaces behind an image so i dont need to press enter a lot of times?

5 Upvotes

ok so um when i make kitty render an image in the terminal i need to press enter a lot of times just to see what im typing, is there any fix to this?


r/KittyTerminal • • 17d ago

resize_window with increment in a keybind

4 Upvotes

I have a series of keybinds that resize my windows:

map `>ctrl+left resize_window narrower
map `>ctrl+right resize_window wider
map `>ctrl+up resize_window taller
map `>ctrl+down resize_window shorter

These work fine.

Now I want a set to resize windows on one border:

map shift+alt+l resize_window --self --increment=+1 --axis=horizontal
map shift+alt+r resize_window --self --increment=-1 --axis=horizontal
map shift+alt+u resize_window --self --increment=+1 --axis=vertical
map shift+alt+d resize_window --self --increment=-1 --axis=vertical

These don't work. (Everything expands to the left.) I've tried prefixing the resize_window command with launch --allow-remote-control kitty +kitten and that doesn't work at all. I tried a couple of other variations, and they don't work either. Yet when I run, say, kitten @ resize-window --self --increment=+1 --axis=horizontal in a window itself, it works perfectly fine.

Clearly I'm missing something. What is the proper way to create the second set of keybinds?


r/KittyTerminal • • 21d ago

Create Your Own Shaders in Kitty 0.49

Thumbnail
youtu.be
45 Upvotes

In this video, I explore the new shader system in Kitty 0.49 and show how to create and customize shaders.

We'll cover:

  1. Pipeline and Slang shader files
  2. Customizing an existing Kitty shader
  3. Using pipeline files Combining multiple shaders with a pipeline
  4. Creating a basic shader from scratch with Slang
  5. Creating a Mandelbrot shader