A GPU-accelerated terminal UI with integrated artifact viewing, built on Rust and GPUI.
TerminalG is a purpose-built terminal application that combines powerful terminal emulation with rich artifact visualization in a unified workspace. No more switching between terminal and browser tabs to view test results, images, or documentation.
Key Features:
- 🚀 GPU-Accelerated - Smooth, responsive UI powered by GPUI
- 📺 Integrated Viewers - View markdown, images (including TIFF), and test results inline
- 🗂️ Workspace Tabs - Switch entire contexts, not just files
- 🎨 Themes - Built-in dark/light themes with hot-reload
- ⚙️ Configurable - JSON-based settings for everything
- 🔗 URL Recognition - Click links directly in terminal output
# Build the project
cargo build
# Run (creates settings file automatically)
cargo run
# View generated settings
cat ~/.config/terminalg/settings.jsonSee Quick Start Guide for detailed setup instructions.
Current Phase: Foundation (Phase 1 - 70% complete)
- ✅ Settings system
- ✅ Theme system
- ⏳ GPUI integration (in progress)
- ⬜ Terminal emulation (Phase 2)
- ⬜ UI layout & viewers (Phase 3)
- ⬜ Enhancements (Phase 4)
Timeline: MVP estimated 10-16 days of development
- Quick Start - Build, run, and configure
- Requirements - What we're building and why
- Development Guide - Contributing and development workflow
- Architecture - System design and component overview
- Master Plan - Phases, sprints, and implementation roadmap
- GPUI Integration - GPUI integration strategy
- Settings System - Settings architecture
Existing tools force workflows into constrained patterns:
- Zed - Editor-centric, not terminal-first
- Warp - Closed-source, not extensible
- Terminal + Browser - Fragmented workflow with constant tab switching
- HTML Test Reports - Opens new browser tabs for every test run
TerminalG solves this by providing a unified workspace where terminal output, test results, images, and documentation all live side-by-side.
Built with modern Rust tooling:
- GPUI - GPU-accelerated UI framework (from Zed)
- alacritty_terminal - Proven terminal emulation
- smol - Lightweight async runtime
- serde - Configuration management
| Platform | Status | Notes |
|---|---|---|
| macOS | ✓ Primary | 10.15+ |
| Linux | ✓ Supported | glibc 2.31+, X11/Wayland |
| Windows | ⏳ Future | 10+, ConPTY support |
- Rust 1.93.0 - Install from https://rustup.rs/
- Build tools:
- macOS: Xcode Command Line Tools
- Linux: GCC/Clang + pkg-config
- Windows: Visual Studio Build Tools
Settings are stored in platform-specific directories:
- macOS/Linux:
~/.config/terminalg/settings.json - Windows:
%APPDATA%\terminalg\settings.json
Example settings:
{
"terminal": {
"font_size": 12,
"font_family": "Menlo",
"enable_url_recognition": true,
"scrollback_lines": 10000
},
"ui": {
"theme": "dark",
"terminal_width_ratio": 0.5,
"show_preview": true
}
}# Build
cargo build # Debug
cargo build --release # Optimized
# Test
cargo test # Run tests
cargo clippy # Lint check
cargo fmt # Format code
# Run with logging
RUST_LOG=info cargo run
RUST_LOG=debug cargo runSee Development Guide for complete workflow.
- Settings & theme system
- Basic GPUI application
- Window with theme colors
- PTY management
- Terminal emulation (alacritty_terminal)
- Scrollback buffer
- Theme integration
- Workspace tabs
- File browser pane
- Markdown viewer
- Image viewer (PNG, JPEG, GIF, SVG, TIFF)
- URL recognition & clicking
- Settings hot-reload
- Test visualization
- MCP integration layer
See Master Plan for detailed roadmap.
This is an active development project. Contributions welcome!
- Read Development Guide
- Create feature branch:
git checkout -b feature/description - Make changes and test
- Commit with clear messages
- Push and create PR
MIT OR Apache-2.0
- Zed Editor - Inspiration and GPUI framework
- GPUI Documentation
- Alacritty Terminal
- Rust Book
Documentation:
- Requirements - Vision and goals
- Architecture - Technical design
- Master Plan - Development roadmap
Questions or ideas? See the documentation above or create an issue.