AI-native terminal emulator. Tauri 2 + Rust. Tokyo Night. Pi embedded as the AI layer. Built for Nix homies.
# Prerequisites: Rust (1.70+), Node.js (18+), pnpm, libwebkit2gtk-4.1-dev (Linux)
pnpm install
pnpm tauri devThe terminal opens a PTY session running your $SHELL. Type echo hello to verify the echo round-trip works.
Today my terminal workflow is fragmented across:
- Ghostty for the PTY surface
- tmux for workspace multiplexing
- opencode / claude-code for AI assistance
- Chrome for YouTube and WhatsApp Web sitting next to my terminal
That's four moving parts to keep in sync. nyxterm collapses them into one cohesive surface: native multiplexing, AI nativa as a first-class panel, and (eventually) embedded web panes for the handful of sites I always have open alongside code.
Built around three principles:
- Concepts > Code. Get the architecture right before optimizing keybinds.
- Pi philosophy. Minimalism wins. 4 core tools (Read/Write/Edit/Bash), everything else is a skill.
- AI-first, human-led. The agent suggests; the human directs.
- Backend: Rust +
portable-pty+ Tauri 2 - Frontend: React + TypeScript + xterm.js (with
fit,search,webgl,web-links,serializeaddons) - AI layer: Vercel AI SDK v6+ with Anthropic / OpenAI / Ollama / MLX
- Memory: Engram embedded, with MCP fallback
- Packaging: Nix flake (Linux first), AppImage, then macOS + Windows
See ROADMAP.md for the full phase breakdown and the Issues page for live epics.
| Phase | Focus | Milestone |
|---|---|---|
| 1 | MVP terminal puro (PTY, multiplexing, theme, shell integration) | Phase 1 — MVP |
| 1.5 | Productivity (fuzzy picker, atuin palette, inline suggestions, project switcher) | Phase 1.5 |
| 2 | Embed Pi (pi-agent-core, pi-ai, pi-coding-agent), Engram first-class, MCP strategy decision |
Phase 2 |
| 3 | Web panes — generic webview, libmpv for media, WhatsApp Web pane | Phase 3 |
- crynta/terax-ai — architecture reference for Tauri 2 + xterm.js PTY wiring
- Pi (earendil-works/pi) — embedded directly as the AI layer (not just philosophy)
- Ghostty — daily driver, keybind ergonomics
- Wave Terminal — block system, mixed-content panes
See CONTRIBUTING.md. The repo follows Spec-Driven Development (SDD): proposal → spec → design → tasks → apply → verify → archive.
Agent context is in AGENTS.md. Skills live under .agents/skills/.
MIT — see LICENSE.