Files
ghostty/example/c-vt-effects
Mitchell Hashimoto e03475c0cc libghostty: clipboard_read effect, enables OSC52 reads
This adds a `clipboard_read` effect to the stream terminal handler and a
matching `GHOSTTY_TERMINAL_OPT_CLIPBOARD_READ` callback to the
libghostty-vt C API so that embedders can answer OSC 52 read requests
(the `?` payload). 

This is a _blocking_ effect: if the embedder needs to ask the user for
permission, the entire VT processing pipeline is _blocked_ during the
callback. This is a purposeful simplification choice compared to how
Ghostty GUI works with async requests. I think its reasonable, it
eliminates a TON of complexity.

If the effect isn't set, then any clipboard reads are denied.

This can be expanded easily to support Kitty clipboard protocol later.
2026-08-21 20:51:31 -07:00
..

Example: ghostty-vt Terminal Effects

This contains a simple example of how to register and use terminal effect callbacks (write_pty, bell, title_changed, and clipboard_write) with the ghostty-vt C library.

The clipboard effect receives one atomic write with decoded, binary-safe MIME representations rather than protocol-specific OSC 52 data.

This uses a build.zig and Zig to build the C program so that we can reuse a lot of our build logic and depend directly on our source tree, but Ghostty emits a standard C library that can be used with any C tooling.

Usage

Run the program:

zig build run