Beeterm - Minimalist Desktop Terminal
A clean, frameless desktop terminal emulator built with Electron, xterm.js, and node-pty, featuring a chat-style persistent input bar, multi-tab workflows, and GPU acceleration.
- Electron
- TypeScript
- xterm.js
- node-pty
- WebGL
- Vite
Problem
Standard terminals mix user prompt input directly into the scrolling terminal output buffer, making multi-line edits awkward and command history inspection noisy.
Solution
Beeterm separates output from input with a dedicated bottom command bar, intelligent tab completion, auto-attach for password/interactive prompts, and WebGL-accelerated rendering.
My role
Sole developer and designer - IPC communication architecture, PTY daemon lifecycle, custom titlebar, and xterm.js renderer integration.
Impact
Provides a distraction-free, aesthetically modern terminal experience with zero terminal emulator bloat.
Challenges
Managing bi-directional IPC between Electron's main process and renderer for raw PTY streams, handling terminal resize signals reliably, and auto-detecting interactive CLI prompts.
Screenshots
The problem
Traditional terminal emulators place the input cursor right at the tail of stdout text. When commands output extensive logs or run long-running processes, reading previous output while drafting the next command creates visual friction.
The approach
Beeterm re-imagines the desktop terminal interface around clarity:
- Bottom Chat-Style Input: Commands are typed into a fixed bottom input bar supporting multiline drafting (
Shift + Enter), history recall, and inline syntax coloring. - Auto-Attach for Interactive Prompts: When an interactive program (like
sudo,ssh, or an interactive wizard) requests TTY stdin, the input seamlessly routes keystrokes straight to the PTY. - Multiple Tabs: Lightweight tab management with keyboard shortcuts (
Cmd/Ctrl + T,Cmd/Ctrl + W). - Tab Completion: Context-aware completion across binaries in
$PATH, filesystem paths, and common CLI flags. - GPU Accelerated: Uses xterm.js WebGL addon for silky-smooth 60fps scrolling and font rendering.
Architecture
Electron Main Process
│
▼ node-pty (Spawns native shell: zsh/bash)
IPC Stream Channel
│
▼ Electron Renderer (xterm.js + WebGL canvas + Custom Input UI)
Packaging
Configured with Electron Builder to produce portable Linux AppImages, .deb packages, and macOS application bundles.