



Meet KetraTerm: a modern, high-performance terminal
Modern TUIs, agentic coding tools, AI CLIs, interactive dashboards, remote workflows, and other advanced applications increasingly depend on precise Unicode handling, modern keyboard protocols, mouse tracking, alternate screen buffers, TrueColor, shell integration, and fast incremental rendering.
KetraTerm uses a terminal engine written from scratch in Kotlin rather than wrapping an existing emulator.
What makes it different?
Modern terminal compatibility
KetraTerm supports:
- Unicode 17.0;
- grapheme clusters and combining characters;
- wide and zero-width characters;
- complex emoji sequences and fallback fonts;
- terminal-aware width handling;
- gap-free box-drawing and block rendering;
- 24-bit TrueColor;
- modern underline styles;
- alternate screen buffers;
- modern mouse tracking;
- bracketed paste;
- Kitty keyboard protocol;
- CSI-u and xterm
modifyOtherKeys.
Its Unicode implementation goes beyond decoding UTF-8. KetraTerm handles grapheme segmentation and terminal display width so multilingual text, emoji, combining marks, and complex TUI layouts remain aligned to the terminal grid.
Performance-focused architecture
KetraTerm uses compact primitive-backed terminal storage instead of allocating a separate object for every screen cell.
Its parser and terminal mutation paths are designed for a low allocation profile, reducing garbage-collection pressure during heavy output.
The renderer tracks dirty regions and redraws only the content that actually changed rather than repainting the complete terminal for every update.
Terminal processing and UI rendering are decoupled, allowing the engine to continue consuming output while stable frames are painted.
This matters for modern TUIs, agentic tools, rapidly updating dashboards, large builds, and verbose logs.
Shell integration and native notifications
KetraTerm supports OSC 133 and OSC 7 shell integration, including:
- command boundaries;
- prompt tracking;
- exit-status tracking;
- command navigation;
- current working directory updates.
It also supports native desktop notifications through OSC 9 and OSC 777 for long-running commands, builds, remote jobs, deployments, and background tasks.
More than a desktop application
The same KetraTerm engine powers:
- the standalone desktop terminal;
- a published JetBrains IDE plugin;
- reusable Kotlin/JVM terminal libraries.
The desktop application includes shell discovery, configurable fonts and fallback fonts, themes, scrollback, command navigation, native notifications, shell integration, security controls, and TOML-based configuration.
The project is available under the Apache 2.0 license.
KetraTerm is already usable as a real terminal, but it remains under active development. New features, compatibility fixes, performance improvements, and UI refinements will continue to be released.
Try it with your real workflow.
If a modern TUI, agentic tool, shell, keyboard combination, Unicode sequence, or other terminal application does not behave correctly, please report it. Reproducible compatibility reports are the most useful feedback at this stage.
Website:
https://ketraterm.github.io/KetraTerm/
GitHub and desktop downloads:
https://github.com/ketraterm/KetraTerm
IntelliJ plugin:
https://plugins.jetbrains.com/plugin/32589-ketraterm