Skip to content

randlee/terminalg

Repository files navigation

TerminalG

CI

A GPU-accelerated terminal UI with integrated artifact viewing, built on Rust and GPUI.


What is TerminalG?

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

Quick Start

# Build the project
cargo build

# Run (creates settings file automatically)
cargo run

# View generated settings
cat ~/.config/terminalg/settings.json

See Quick Start Guide for detailed setup instructions.


Project Status

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


Documentation

For Users

For Developers


Why TerminalG?

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.


Technology

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 Support

Platform Status Notes
macOS ✓ Primary 10.15+
Linux ✓ Supported glibc 2.31+, X11/Wayland
Windows ⏳ Future 10+, ConPTY support

Requirements

  • 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

Configuration

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
  }
}

Development

# 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 run

See Development Guide for complete workflow.


Roadmap

Phase 1: Foundation ⏳

  • Settings & theme system
  • Basic GPUI application
  • Window with theme colors

Phase 2: Terminal 📋

  • PTY management
  • Terminal emulation (alacritty_terminal)
  • Scrollback buffer
  • Theme integration

Phase 3: UI & Viewers 📋

  • Workspace tabs
  • File browser pane
  • Markdown viewer
  • Image viewer (PNG, JPEG, GIF, SVG, TIFF)

Phase 4: Enhancements 📋

  • URL recognition & clicking
  • Settings hot-reload
  • Test visualization
  • MCP integration layer

See Master Plan for detailed roadmap.


Contributing

This is an active development project. Contributions welcome!

  1. Read Development Guide
  2. Create feature branch: git checkout -b feature/description
  3. Make changes and test
  4. Commit with clear messages
  5. Push and create PR

License

MIT OR Apache-2.0


Resources


Contact

Documentation:

Questions or ideas? See the documentation above or create an issue.

About

Simple GPUI terminal app

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published