You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A GPU-accelerated, extensible terminal emulator with a plugin-driven process dashboard and context-aware shell.
Status: Active Implementation — Phase 0 terminal foundation is implemented; the next roadmap focus is Phase 1 multiplexer work.
Philosophy
The terminal is the oldest developer tool that still works. It doesn't need to become an IDE, a chat app, or an agent dashboard. It needs to stay a terminal — but one that's aware of what you're doing and stays out of your way until you need it.
Core Principles
Performance is non-negotiable. The terminal must be the fastest thing on your screen. Sub-frame input latency. 5ms cold start. Plugins never block the render loop. If a feature makes typing feel slower, it doesn't ship.
Extensible by design. The core is a fast, minimal rendering and multiplexing engine. Everything else — the sidebar, agent management, smart autocomplete, even the browser — is a plugin. The core's job is to provide the right primitives so plugins can build anything.
Secure by default. Terminals handle passwords, API keys, and production access. Escape sequence injection is mitigated, plugin permissions are capability-based, clipboard reads are blocked by default, and the Lua config sandbox has no shell access. Security defaults are strict and relaxable, never the other way around.
Abstracted at every seam. The core defines traits/interfaces, not concrete implementations. GPU backend, WASM runtime, text shaper, platform layer — all behind abstractions. If something better comes along, swap it in without rewriting the terminal.
Accessible from day one. Zero modern GPU-rendered terminals have functional screen reader support. We ship with AccessKit integration, a full accessibility tree, high-contrast themes, and keyboard-only navigation. Accessibility is in the core, not a plugin.
Everything is a pane. Agents, dev servers, test watchers, web views, shells — they're all panes. The terminal just knows a little more about each one.
The plugin is the product. We don't ship features — we ship a platform and a set of bundled plugins. If a plugin can't do something, the answer is to improve the core API, not to hardcode the feature.
Debugging is built in.:debug gives you full diagnostics — input, escape sequences, plugin state, performance, per-pane info. oakterm doctor checks your environment. When something breaks, you shouldn't have to guess.
Principles
Zero telemetry. No login. No account. No phoning home. Ever.
AI features are opt-in, BYOK, and work with local models.
Open protocols — Kitty graphics, standard escape sequences, WASM plugins.
Platform-native — AppKit on macOS, GTK on Linux, WinUI on Windows. All three from day one. Not Electron.
Replaces tmux, not complements it.
Memory-conscious — tiered scroll buffer, per-pane budgets, no pre-allocation.
MPL 2.0 licensed — core stays open source, plugins can be any license.
Documentation
ideas/ Exploration — brainstorming, research, design sketches
docs/adrs/ Decisions — resolve open questions from ideas
docs/specs/ Contracts — formal definitions that code must satisfy
Ideas explore possibilities. ADRs resolve questions that ideas surface. Specs formalize decided designs into implementation contracts.