Silkie / Terminal emulator / macOS + Linux
A terminal for richer interaction.¶
Silkie is a terminal emulator for macOS and Linux, built on kitty. It extends the terminal with pen and touch input, vector graphics, HDR color, and display timing feedback.
Run your shell and terminal applications. Build software that can draw, respond to a stylus, and understand the display it is running on.
Open source · Main branch: silkie
Specifications and documentation
03 / Silkie extensions
Pen, touch, ink, vectors, color, and timing. Explore Silkie’s additions.
02 / kitty + kitten tools
The terminal emulator Silkie forks, with graphics, keyboard protocols, and tools called kittens. Read kitty’s docs and kitten docs.
01 / Terminal foundations
The text stream and VT/xterm-style control sequences that kitty extends. Read the underlying references.
Features¶
Silkie adds protocols that applications can discover and use as needed. Support depends on the operating system, input device, display, and compositor; each specification describes its capabilities and limits.
Pen, touch, and gestures¶
Give applications pressure and tilt information, touch contacts, smooth scrolling, and gesture events. Inspect what a device reports with the show_pointer kitten.
Tablet input · Scrolling · Gestures · Haptics
Vector graphics and ink¶
Send paths and scenes for the terminal to render at the displayed size. Let the terminal draw pen strokes as input arrives, without waiting for each sample to make a round trip to the application.
Color beyond ordinary SDR¶
Use wider color spaces and request brightness above SDR white on supported displays. Query the available headroom and control transparency at the cell level.
HDR · Wide gamut · Cell alpha
Display and presentation feedback¶
Learn about the display, receive input timing information, and track when a frame is presented. Use those reports to coordinate drawing with the terminal.
Install¶
Binary packages are available from Homebrew for Apple Silicon macOS, and the APT repository for Linux. See Install Silkie for the supported targets and installation instructions.
To build from source, use the silkie branch. You will need Git, a C compiler, and
Go; Linux also needs the system libraries listed in the
installation guide. The build script downloads the remaining
build dependencies.
git clone --branch silkie https://github.com/adamdeprince/silkie.git
cd silkie
./dev.sh build
./kitty/launcher/kitty
The executable retains the name kitty. Running this checkout’s executable
launches Silkie with its extensions. Upstream kitty packages install upstream
kitty; use the Silkie packages or source above to get these additions.
Documentation¶
Silkie’s specifications describe the additions. Read them alongside the upstream references to understand the terminal as a whole.
Find the specifications¶
The developer guide brings together terminal standards, kitty and kitten manuals, Silkie’s extension specifications, and links to the source.
Use the extension reference¶
Find escape sequences, fields, units, replies, and platform limits. Start with capability discovery and shared framing, then choose a protocol.
Follow the upstream manuals¶
kitty documents inherited terminal behavior. Its kittens are tools and plugins that use and extend kitty, such as image display, SSH integration, and remote control.
kitty manual · Kitten tools · kitty protocols