An ultra-low latency, GPU-accelerated terminal emulator crafted for Windows
Forged in pure Rust with wgpu, cosmic-text, binary split panes, and zero-overhead ConPTY integration.
About • Features • Visual Tour • Architecture • Installation • Shortcuts • Configuration • Building • Design • License
In Greek mythology, Nyx (Νύξ) is the primordial goddess of the night — shadowy, swift, and celestial. She commands the dark heavens with quiet power and effortless grace.
Modern Windows terminal emulators often make a frustrating compromise: they are either sluggish webview/Electron wrappers that consume hundreds of megabytes of RAM at idle, or dated legacy shells lacking modern GPU acceleration, split panes, and shell integration.
Nyx is a standalone, high-performance terminal emulator designed from the metal up exclusively for Windows. Built in pure Rust without an async runtime, webview, or Node runtime, Nyx focuses on what matters most in a command line: uncompromising input latency, fluid GPU rendering, and zero idle cost.
- ⚡ Zero-Latency Keyboard Pipeline: Keystrokes reach the ConPTY process immediately without queuing or timer throttling (<0.2 ms measured dispatch).
- 🎮 Hardware GPU Acceleration: Direct rendering with
wgpu(DirectX 12 backend), instanced background cell quads, and sub-pixel text shaping viaglyphon/cosmic-text. - 🪟 First-Class Windows Platform Integration: Native PerMonitorV2 DPI awareness, long path support (
\\?\), single-instance IPC, Quake-style dropdown hotkey, and Explorer"Open Nyx here"context integration. - 🌳 Binary Tree Split Panes: Freely split any pane horizontally or vertically with draggable gutters, directional
Alt+Arrowgeometric focus, and pane zoom. - 🔮 Prompt Sigil & Prefix Expansion: Fast path jumping (
cd @shortcut), command aliases, and tmux-style leader chords with live popup completion. - 🛡️ 100% Local & Privacy Conscious: No telemetry, no background update daemons, no analytics pings. Settings live cleanly in
%APPDATA%\Nyx.
|
DirectX 12 rendering via |
Organize workspaces with arbitrary horizontal and vertical splits. Navigate panes geometrically via |
|
Four distinct expansion modes: shell-integrated path sigils ( |
Summon a dropdown terminal from the top of the monitor anywhere in Windows with a global hotkey ( |
|
A sleek left sidebar populated with your favorite directories and tools. Supports vector built-ins ( |
Edit preferences visually with |
|
Search up to 10,000 lines of scrollback buffer instantly with regex support ( |
Smart detection of code blocks with click-to-copy buttons, bi-directional clipboard access via OSC 52, Kitty keyboard protocol, and SGR mouse tracking. |
Split your active terminal into multiple concurrent sessions, adjust splits with draggable dividers, and navigate between panes geometrically. Press Ctrl+ ` to toggle Nyx instantly as a system-wide dropdown overlay.
Type @ at any shell prompt to invoke Nyx's intelligent overlay completion menu. Press Tab to autocomplete directory paths, or press Enter on a bare sigil to open a new tab immediately pinned to that workspace.
# Typing '@' displays the completion dropdown anchored at your cursor:
PS C:\Users\Nihil> cd @
┌────────────────────────────────────────────────────────┐
│ NYX SHORTCUT COMPLETIONS (Tab / Enter) │
├────────────────────────────────────────────────────────┤
│ ▶ @nyx C:\Users\Nihil\Projects\Nyx │
│ @gloria C:\Users\Nihil\Desktop\Gloria Repoz │
│ @rust C:\Users\Nihil\.cargo\bin │
│ @docs C:\Users\Nihil\Documents │
└────────────────────────────────────────────────────────┘Press Ctrl+, to open the built-in configuration dashboard. Select system fonts, adjust font sizes, swap color themes (Tokyo Night, Claude Dark, Claude Light, Nord), and manage shell profiles with instant live preview.
Nyx enforces strict architectural module boundaries to achieve predictable, ultra-low latency while maintaining zero idle cost:
term::snapshot::GridSnapshot: The sole seam crossing from the terminal state into rendering. A clean owned data structure built under theTermlock and handed over to the GPU thread. Zero locks are held during rendering.event::AppEvent: The bounded channel delivering external events (window activations, child exits, bells, clipboard sync, IPC requests, and global hotkeys) into the frame loop.
| Metric | Measured Value | Architecture Cause |
|---|---|---|
| Keystroke Latency | < 0.20 ms | Direct unthrottled event dispatch from OS window to ConPTY |
| Idle CPU Utilization | 0.00% | Event-driven wait; wakeups occur solely on input or shell output |
| Output Throttle Cap | 60 Hz | RepaintCoalescer decouples bursty shell output from GPU overdraw |
| Binary Size | ~17.3 MB | Single standalone Rust binary; zero Chromium, webview, or Node dependencies |
| DPI Scaling | PerMonitorV2 | Declared in nyx.manifest at PE creation; zero scale artifacts or runtime resize flicker |
Compile release binaries and run the user-scoped installer:
# Build release binary (LTO optimized)
cargo build --release
# Install for current user (no admin rights required)
.\install.ps1 -AddToPathThe installer configures:
- Standalone executable copied to
%LOCALAPPDATA%\Programs\Nyx\nyx.exe - Start Menu shortcut with dedicated Windows icon
- Shell
PATHenvironment variable registration - Optional Windows Explorer right-click context menu: "Open Nyx here"
To safely uninstall Nyx:
.\uninstall.ps1 # Keeps user settings
.\uninstall.ps1 -Purge # Cleans %APPDATA%\Nyx configuration# Open terminal in current directory
nyx
# Open terminal in a specific directory
nyx -d "C:\Projects\Gloria"
# Attach to existing Nyx window as a new tab
nyx --attach
# Force a new standalone window
nyx --new-window
# Register / unregister Explorer context menu
nyx --install-context-menu
nyx --remove-context-menuNyx adheres to a strict principle: The terminal owns the keyboard. Keystrokes are only intercepted when an active overlay demands them, ensuring native command-line interactions remain fully intact.
| Category | Shortcut | Action |
|---|---|---|
| Split Panes | Ctrl + Shift + D | Split pane vertically (right) |
| Ctrl + Shift + E | Split pane horizontally (down) | |
| Alt + ← → ↑ ↓ | Navigate pane focus geometrically | |
| Ctrl + Shift + W | Close focused pane | |
| Ctrl + Shift + Z | Toggle pane zoom (maximize / restore) | |
| Tabs | Ctrl + T | Open new tab (default shell profile) |
| Ctrl + W | Close active tab | |
| Ctrl + Tab | Cycle forward through tabs | |
| Ctrl + Shift + Tab | Cycle backward through tabs | |
| Ctrl + 1 .. 9 | Jump directly to tab index | |
| Search & Buffer | Ctrl + Shift + F | Open scrollback search bar |
| F3 / Shift + F3 | Jump to next / previous search match | |
| Shift + PageUp / PageDown | Scroll history page up / down | |
| Interface & Tools | Ctrl + ` | Toggle Quake dropdown console (system-wide) |
| Ctrl + P | Open fuzzy command palette | |
| Ctrl + , | Open Settings GUI | |
| Ctrl + + / - / 0 | Increase / decrease / reset font size | |
| Ctrl + Shift + C | Copy selected text | |
| Ctrl + Shift + V | Paste from clipboard |
Nyx stores its primary configuration at:
%APPDATA%\Nyx\config.toml
Any modification to config.toml is hot-reloaded instantly on file save without restarting the application.
[window]
width = 1200.0
height = 760.0
opacity = 0.98
single_instance = true
[font]
family = "Cascadia Code"
size = 13.0
line_height = 1.2
[theme]
preset = "Tokyo Night" # "Tokyo Night" | "Claude Dark" | "Claude Light" | "Nord"
[expand]
completion = true # Floating @completion menu
hint = true # Inline cursor ghost hints
# Custom Shortcut Rail Icons: builtin, file, or exe
[[shortcuts]]
sigil = "@nyx"
label = "Nyx Terminal"
path = "C:\\Users\\Nihil\\Projects\\Nyx"
icon = "builtin:terminal"
[[shortcuts]]
sigil = "@docs"
label = "Documents"
path = "C:\\Users\\Nihil\\Documents"
icon = "builtin:folder"
[[shortcuts]]
sigil = "@editor"
label = "VS Code"
path = "C:\\Program Files\\Microsoft VS Code"
icon = "exe:C:\\Program Files\\Microsoft VS Code\\Code.exe"- Windows 10 (Version 1809+) or Windows 11
- Rust Toolchain: Stable MSVC toolchain (
rustup default stable-x86_64-pc-windows-msvc) - Git for Windows
# 1. Clone the repository
git clone https://github.com/projectGloria/Nyx.git
cd Nyx
# 2. Fast syntax & type check
cargo check
# 3. Run the comprehensive test suite (449 tests)
cargo test -- --nocapture
# 4. Compile optimized release binary
cargo build --releaseThe resulting optimized executable will be located at:
target\release\nyx.exe
NYX_PERF=1: Enables the in-frame telemetry overlay displaying snapshot timings, quad generation, and glyphon text shaping costs in microseconds.NYX_BARE=1: Boots an emptyeframewindow without terminal instances to accurately attribute graphics memory overhead.WGPU_BACKEND=dx12: Forces DirectX 12 hardware acceleration (or setvulkan/glfor debugging).
"A midnight celestial crescent embracing the swift command prompt chevron, illuminated by neon starlight against deep cosmic obsidian."
The visual identity of Nyx reflects its core technical goals:
- Cosmic Obsidian Base: Evokes the nocturnal realm of goddess Nyx, grounding the terminal with a deep, low-eye-strain canvas.
- Electric Cyan & Neon Violet: High-contrast accents inspired by the Tokyo Night palette, offering instant visual feedback for active panes, cursor states, and sigil menus.
- Terminal Chevron & Star Spark: Represents raw command execution speed, precision, and zero-latency responsiveness across all Windows DPI scale factors (100% to 250%).
Nyx is distributed under the ISC License.
- Alacritty Terminal: Battle-tested VT parsing and terminal grid primitives.
- wgpu: Safe, portable GPU rendering abstraction targeting DirectX 12.
- glyphon & cosmic-text: Advanced GPU-accelerated text layout and glyph caching.
- eframe & egui: Immediate-mode GUI framework powering the native chrome and settings window.
- Windows ConPTY: High-performance native pseudo-console subsystem provided by Microsoft Windows.