z-hunter/Scanline-Term
z-hunter/Scanline-Term has 30 GitHub stars and 1 forks. Star changes are not measured yet. Last checked 2026-11-12 12:07 UTC. Last push 2026-11-12.
Comment ces chiffres sont mesurés
Retro-futuristic terminal emulator for Windows with (optional) CRT simulation, AI assistant, MCP, Lua automation and built-in minimalistic web browser.
Progression mesurée des étoiles
- in 24h
- Historique en cours
- in 7 days
- Historique en cours
- in 15 days
- Historique en cours
- in 1 month
- Historique en cours
Variations nettes sur des périodes qui se chevauchent, pas des totaux quotidiens. Les mesures absentes restent vides. Les étoiles indiquent l’intérêt, pas la qualité.
README.md
OriginalScanline Term - The Past’s Future
A modern Windows terminal with authentic CRT emulation.
Scanline Term is a Windows terminal emulator, featuring:
- Instant response, GPU rendering, multithreading
- Physical CRT screen simulation (toggleable)
- Smooth pixel-by-pixel line scrolling, even in TUI applications
- Lightweight and native
- Lua configuration and scripts allow for automation within the terminal
- Historical and custom presets for various terminals and screens
- Built-in mini web browser/PDF viewer
- Built-in AI assistant
- MCP server
- Visual tab switching (gallery mode)
- Open Source
Combining the raw nostalgia of cathode-ray tube monitors with modern power-user capabilities — multi-tab sessions, vim-like search, a 'Quake-style' console global hotkey, and a context-aware AI terminal assistant — Scanline Term brings the golden era of computing straight into your modern developer workflow.
Why Scanline Term?
1. Authentic CRT Physics
Scanline Term features a custom multi-pass WebGL shader pipeline extracted from our Scanline game engine. It accurately simulates physical CRT phenomena:
- Sinc-integrated Fourier scanlines with dynamic electron beam modulation.
- Phosphor persistence & ghosting trails with ping-pong framebuffers and adjustable decay rates.
- Multi-pass bloom & phosphor halation (soft and spiral diffusion algorithms).
- Physical glass distortion: adjustable spherical barrel curvature, corner vignetting, and bezel ambient glow.
- Hardware breathing & electrical fluctuations: HV deflection breathing under heavy load, anti-moiré filtering, and phosphor grain/noise.

2. Keyboard-First workflow
Keep your hands on the keyboard and stay in the zone:
- Built-in WebView2 Browser Tabs: Open documentation, API references, or web tools right alongside your terminal (
Menu + Bor pass URLs via CLI). A blank browser tab starts on a local bookmark home page stored in%APPDATA%\\com.zhunter.scanlineterm\\home.json; each browser tab adopts the opened page's theme/background color. - Open Terminal Links: Hold
Ctrland middle-click an HTTP(S) URL in the terminal, including normal scrollback. The whole URL is highlighted while the pointer remains over it; release the middle button to open it in a new browser tab. - Fast Tab Switching: Jump between multiple live console sessions and browser tabs instantly using
Menu + 1...9, or open the static Sessions Gallery withMenu + Backspace. - Tab Reordering: Drag the active tab left or right in the tab bar, or move it one position at a time with
Menu + Shift + ←/→orMenu + Shift + H/L. Tab numbers are refreshed automatically.
3. Native Windows ConPTY Engine
Built specifically for Windows with Rust and native APIs:
- ConPTY Backend: Direct integration via
conpty-oxidewith bundled Windows ConPTY binaries. - Win32 Input Mode: Full support for Win32 Console Input Mode (
?9001h), function keys, numpad application modes, and full mouse tracking (SGR 1006, drag, and any-event).


4. 'Quake-Style' Global Hotkey
Summon Scanline Term from anywhere in Windows with a single keystroke. When you're done, press Win + ~ again to tuck it away without disrupting your active window layout.
5. AI Terminal Assistant
Connect any terminal session to an embedded Codex AI assistant (Menu + A). The operator can only see the terminal session and execute commands in it.

Note: To use the AI Terminal Assistant, Codex CLI (version
0.152.1or newer) must be installed on your system and available on yourPATH.
6. Ultra-Lightweight & Fast
Scanline Term is built on Tauri 2 + Rust + WebGL. The production installer is only 30 MB* (most of which consists of the included fonts), launches instantly, and stays lightweight on system resources.

Lua Configuration & Scripts
Lua can set global defaults, add custom ANSI palettes and shell profiles, and run event scripts that react to terminal tabs, processes, and cursor changes.
The shipped User's palette is enabled by default; optional examples show Vim/Neovim and Helix mode-based layout switching with Smart Caps, plus switching to a saved preset while FAR Manager runs. Uncomment the examples you want in the main Lua config. The Lua API will continue to grow in future versions. See the Lua guide.
Quick Preset Picker
Menu + P opens a compact preset list in the upper-right corner without dimming the display, so each preview remains visible. Type to filter preset names; use arrow keys to choose a preview, use the mouse wheel to scroll the list, or click a row to choose its preview. Enter, a second Menu + P, or a double-click keeps the selected preset. Esc or clicking outside the picker restores the preset that was active before opening it.
Sessions Gallery
Menu + Backspace opens a static overview of all sessions; a primary click on unused workspace or tab-bar space does the same, including the outer monitor frame and the narrow physical-window gutters. Terminal cards retain their last CRT-rendered frame; browser cards show a title/type placeholder. Use arrows or h/j/k/l to move the selection. While Gallery is open, Menu + Shift + ←/→ or Menu + Shift + H/L moves the selected card one position horizontally, and Menu + Shift + ↑/↓ or Menu + Shift + K/J moves it to the nearest card in the adjacent row. Gallery reordering is keyboard-only; cards animate into their new positions and tab numbers are refreshed after every move. Enter, Space, or 1…9/0 opens a tab, while Esc, Menu + Backspace, or a click outside a card returns unchanged. Menu + N and Menu + B create a terminal or browser tab from the overview.
Keyboard Shortcuts Cheat Sheet
Note: The
Menukey refers to the Application / Context Menu key (typically situated in the lower right keyboard row betweenAlt/WinandCtrl).
| Shortcut | Action | Description |
|---|---|---|
Win + ~ |
Global Show/Hide | Summon or minimize Scanline Term from any Windows application |
Alt + Enter |
Fullscreen Toggle | Toggle distraction-free full-screen CRT mode |
Menu + S |
Settings Panel | Open / close the real-time CRT shader lab and display controls |
Menu + Z |
Toggle Tab Bar | Show or hide the tab bar |
Menu + - / Menu + + |
Terminal Font Size | Decrease / increase the active terminal font size by one point |
Menu + P |
Quick Preset Picker | Preview presets immediately; Enter, a second Menu + P, or double-click applies; Esc or a click outside cancels and restores the prior preset |
Menu + A |
AI Assistant Panel | Open / close the Codex AI assistant panel |
Menu + ' |
AI Assistant Focus | Switch keyboard focus between the AI assistant input and the terminal |
Menu + N |
New Terminal Tab | Spawn a new independent ConPTY shell session |
Menu + B |
New Browser Tab | Open a local bookmark home page; links promote the tab to WebView2 |
Menu + W |
Close Tab | Close the active terminal session or browser tab |
Menu + Backspace |
Sessions Gallery | Open / close a static fullscreen gallery of terminal and browser tabs |
Menu + 1...9 |
Switch Tab | Switch directly to tab 1 through 9 |
Menu + → / Menu + > |
Next Tab | Switch to the next terminal or browser tab (cycles) |
Menu + Shift + → / Menu + Shift + L |
Move Tab Right | Move the active tab one position to the right |
Menu + Shift + ← / Menu + Shift + H |
Move Tab Left | Move the active tab one position to the left |
Menu + ← / Menu + < |
Previous Tab | Switch to the previous terminal or browser tab (cycles) |
Menu + Tab |
Alternate Tab | Toggle back to the previously active tab |
Menu + V |
Paste | Paste clipboard text into the active shell |
Menu + C |
Copy Mode | Activate rectangular screen selection and copy mode |
Ctrl + Middle Click |
Open Terminal Link | Highlight the HTTP(S) URL under the pointer; release over it to open a new browser tab |
Menu + / |
Find in Terminal | Open terminal-buffer search; type a query, then use Enter or n for the next match |
Menu + Shift + / |
Find Back in Terminal | Open reverse terminal-buffer search; Enter or n moves to the previous match |
Menu + PgUp / PgDn |
Scroll Buffer | Scroll the terminal screen and history buffer up or down |
While terminal search is open, N reverses the search direction and Esc closes the overlay and restores terminal input. Search includes normal scrollback; in alternate-screen applications it covers the current screen only.
Browser Tab Keyboard Navigation
Embedded WebView2 browser tabs feature a keyboard-first, Vim-inspired navigation mode:
| Key | Action | Description |
|---|---|---|
j / k |
Scroll Line | Scroll page down / up (64px) |
d / u |
Half-Page Scroll | Scroll half page down / up |
gg / G |
Top / Bottom | Jump to top (gg) or bottom (G) of the page |
h / l (or Backspace) |
History Navigation | Go back (h / Backspace) or forward (l) in page history |
f |
Link Hints | Show asdfghjkl hints over interactive elements; on the local home page this covers links, buttons, inputs and the editor |
o or F6 |
Address / Search | Open the native browser address overlay or focus the home search field |
/ |
Find in Page | Search text on the current page |
r |
Reload | Reload the current page |
i |
Pass/Insert Mode | Enter pass-through mode to interact directly with web page keys |
Esc |
Normal Mode | Exit hints, address bar, or pass/insert mode back to normal navigation |
F5 |
Home Safety | The local home page consumes F5 so it cannot reload the application |
Menu + ... |
App Shortcuts | All main app shortcuts (Menu + W, Menu + 1...9, Menu + B, etc.) remain fully accessible within browser tabs |
Command-Line Usage
Scanline Term can be invoked from the command prompt, PowerShell, terminal scripts, or Windows shortcuts with custom arguments:
sterm [options] [target] [arguments...]
Command line Arguments
| Flag | Parameter | Description |
|---|---|---|
-T |
None | Open target in a new tab if an instance of Scanline Term is already running |
-P |
<path> |
Set explicit working directory (cwd) for the launched terminal session |
-S / --preset |
<name> |
Apply the named preset (without .json) to a new terminal tab |
Target Arguments
The optional [target] argument is automatically detected and routed:
- Directory Path (
.orC:\path\to\dir): Launches the default shell in the specified directory. - Command or Executable (
pwsh,cmd.exe,C:\tools\app.exe): Launches the given command or console program directly. Arguments after the executable are passed to it unchanged. - HTTP / HTTPS URL (
https://...orhttp://...): Opens the URL directly in an embedded WebView2 browser tab. - Local document (
C:\docs\manual.html,.htm,.htmlor.pdf): Opens the existing file in an embedded browser tab.
Practical Examples
# Launch default shell in the current working directory
sterm .
# Launch default shell in a specific project folder
sterm C:\Projects\MyProject
# Launch PowerShell with an explicit working directory
sterm -P C:\Projects\MyProject pwsh
# Launch an executable with arguments
sterm C:\Tools\watcher.exe --port 8080 --verbose
# Open a new tab in an existing Scanline Term window
sterm -T pwsh
# Open a local HTML/PDF document in the embedded browser
sterm C:\Docs\manual.html
sterm -T C:\Docs\manual.pdf
# Open a new tab with working directory set
sterm -T -P C:\Projects\MyProject
# Open an executable with arguments in a new tab
sterm -T C:\Tools\watcher.exe --port 8080
# Open a terminal tab using a named preset from the Presets list
sterm -T --preset "DEC VT-100 (1978)" pwsh
# Open documentation directly in the built-in CRT browser
sterm https://docs.rs
Installation
Download the latest pre-compiled Windows Installer (MSI) or portable ZIP from the Releases page:
Download Scanline Term (Latest Release)
Run the .msi installer for the standard installation, including the sterm command on the system PATH and the bundled optional fonts. System requirements:
- Windows 10 (version 17763+) or Windows 11 (64-bit)
- Microsoft Edge WebView2 Runtime (pre-installed on most modern Windows systems)
- (Optional) Codex CLI (version
0.152.1or newer) onPATHif using the AI Terminal Assistant.
Portable ZIP (technical release)
- Download
Scanline-Term-<version>-portable-x64.zipand extract the entire archive. - Keep
sterm.exenext toresources\conpty\x64\; those ConPTY files are required for terminal sessions. - Run
sterm.exe. No installation or administrator rights are needed.
The portable build needs the same supported Windows version and WebView2 Runtime as the MSI. It includes the preset catalog and font files, but does not add sterm to PATH or install fonts. For the complete manual setup steps, see Portable ZIP Installation, which is included in the archive as docs\PORTABLE-INSTALLATION.md.
Architecture
┌─────────────────────────────────────────────────────────────┐
│ Windows Desktop │
│ Global Hotkey (Win+~) ─── Native Child WebViews (URL) │
└──────────────────────────────┬──────────────────────────────┘
│
┌──────────────────────────────▼──────────────────────────────┐
│ Rust Backend (Tauri 2) │
│ ConPTY Lifecycle (conpty-oxide) ── Codex App-Server IPC │
└──────────────────────────────┬──────────────────────────────┘
│ Tauri Commands & Events
┌──────────────────────────────▼──────────────────────────────┐
│ Frontend UI (React 19) │
│ Tab Manager ── Headless xterm Buffer ── UI Controls │
└──────────────────────────────┬──────────────────────────────┘
│ Canvas 2D Text Grid
┌──────────────────────────────▼──────────────────────────────┐
│ Scanline Virtual Screen (external display module) │
│ Virtual canvas ── CRT/pass-through ── Display canvas │
└─────────────────────────────────────────────────────────────┘
For in-depth architectural details, check our comprehensive documentation in docs/:
- Architecture & Data Flow
- Core Systems & Host Integration
- Scanline Virtual Screen
- Design Decisions
- Codex Terminal Assistant Guide
Building from Source
Prerequisites
- Rust (stable
x86_64-pc-windows-msvctoolchain) - Node.js (v20+ recommended)
- Visual Studio C++ Build Tools
Development Workflow
# Clone the repository
git clone https://github.com/z-hunter/Scanline-Term.git
cd Scanline-Term
# Install frontend dependencies
npm install
# Start development in browser-only mode (simulated mock session for shader testing)
npm run dev
# Launch full native Tauri app with live ConPTY sessions
npm run tauri:dev
# Run frontend & backend test suites
npm test
cd src-tauri && cargo test
# Build production MSI installer and portable ZIP
npm run tauri:build -- --bundles msi
./scripts/package-portable.ps1

License
This project is licensed under the MIT License.
The display module is Scanline Virtual Screen, which has its own source-available license and commercial-use terms.
Enjoy! PRs, suggestions, and feedback are always welcome.
Explorer des projets similaires
codecrafters-io/build-your-own-x
Maîtrisez la programmation en recréant de zéro vos technologies préférées.
562,076 étoilespublic-apis/public-apis
Une liste collective d'API gratuites
498,462 étoilesmorluto/rea
Rétro-ingénierie de n'importe quoi avec des agents, du comportement des applications jusqu'aux binaires natifs.
454,677 étoilesopenclaw/openclaw
L'IA qui fait vraiment les choses. Tout système d'exploitation, toute plateforme. À la manière du homard. 🦞
394,407 étoiles