Rigi isn't a graphics interface, it's terminal. A high-level TUI framework built on Textual.
Project description
RIGI
Rigi Isn't a Graphics Interface - it's terminal.
A high-level TUI framework built on top of Textual. Rigi is an internal library - used across all CLI tools to maintain a consistent, polished terminal interface.
๐ฆ Installation
pip install rigi-reekeer
โจ Overview
Rigi gives you a complete, opinionated TUI shell in a few lines of code:
- ๐ Sidebar navigation - multi-level tab/subtab navigation with keyboard and mouse support
- ๐ฅ Bottom panel - resizable terminal with command history, tab completion, and a live log viewer
- ๐ Status bar - customizable status items, home button, hamburger menu
- ๐จ Themes - built-in Dark, Light, Monokai, Nord; fully customizable via
RigiTheme - โจ๏ธ Command system - register commands with arguments, aliases, fuzzy completion, and inline help
- ๐ Command palette -
Ctrl+Pfuzzy-search overlay - ๐ Cross-platform - Linux (Arch, Debian, WSL), macOS, Windows 10/11, iSH; terminal detection for kitty, alacritty, iTerm2, WezTerm, Ghostty, Konsole, Windows Terminal, tmux, and more
- ๐งฉ Widgets - gauges, sparklines, image rendering (kitty/iTerm2/sixel), draggable/clickable mixins, settings screen
๐ Quick start
import rigi
app = rigi.RigiApp(
name="mytool",
version="1.0.0",
description="My internal tool",
)
app.add_tab(rigi.TabDef(name="Dashboard", icon="๓ฐฎ"))
app.run()
See the examples/ directory for complete working apps.
๐ฅ Platform support
| OS | Supported | Notes |
|---|---|---|
| Linux (Arch) | โ | full support |
| Linux (Debian / Ubuntu) | โ | full support |
| Linux (WSL 1/2) | โ | clipboard via OSC 52 |
| macOS | โ | AppleScript notifications |
| Windows 10/11 | โ | Windows Terminal recommended |
| iSH (iOS) | โ | limited - no true color |
๐ Terminal support
| Terminal | True color | OSC clipboard | Hyperlinks | Graphics | Notifications | Progress |
|---|---|---|---|---|---|---|
| kitty | โ | โ | โ | kitty | OSC 777 | - |
| Alacritty | โ | โ | โ | - | - | - |
| iTerm2 | โ | โ | โ | iTerm2 | OSC 9 | โ |
| WezTerm | โ | โ | โ | iTerm2 | OSC 777 | โ |
| Ghostty | โ | โ | โ | - | OSC 777 | - |
| Konsole | โ | โ | โ | - | - | - |
| Windows Terminal | โ | โ | โ | - | OSC 9 | โ |
| tmux | passthrough | โ (>=3.2) | passthrough | passthrough | passthrough | - |
| Apple Terminal | โ | - | - | - | AppleScript | - |
| iSH | - | - | - | - | - | - |
| VSCode | โ | - | โ | - | - | - |
๐ Structure
Rigi/
โโโ src/
โ โโโ rigi/
โ โโโ __init__.py โ public API
โ โโโ commands/
โ โ โโโ command.py โ Command dataclass
โ โ โโโ registry.py โ CommandRegistry (fuzzy completions)
โ โ โโโ parser.py โ CLI arg parser + inline command parser
โ โโโ core/
โ โ โโโ app.py โ RigiApp (main application class)
โ โ โโโ platform.py โ OS + terminal detection, cross-platform utils
โ โ โโโ console.py โ terminal capability queries
โ โ โโโ log_store.py โ global log interceptor (logging + loguru)
โ โ โโโ dev_commands.py โ built-in dev commands
โ โ โโโ types.py โ TabDef, SubtabDef, StatusItem, HelpEntry, โฆ
โ โโโ css/
โ โ โโโ default.tcss โ default Textual stylesheet
โ โโโ layout/
โ โ โโโ pane.py โ RigiPane, RigiCard, RigiSplit, โฆ
โ โโโ themes/
โ โ โโโ base.py โ RigiTheme dataclass
โ โ โโโ dark.py โ DARK
โ โ โโโ light.py โ LIGHT
โ โ โโโ monokai.py โ MONOKAI
โ โ โโโ nord.py โ NORD
โ โโโ widgets/
โ โโโ bottom_panel.py โ RigiBottomPanel (terminal + logs)
โ โโโ sidebar.py โ RigiSidebar
โ โโโ statusbar.py โ RigiStatusBar
โ โโโ content_area.py โ RigiContentArea
โ โโโ border_frame.py โ RigiBorderFrame
โ โโโ palette.py โ RigiPaletteScreen (Ctrl+P)
โ โโโ help_panel.py โ RigiHelpScreen, RigiShortcutsBar
โ โโโ hamburger_menu.py โ RigiHamburgerScreen
โ โโโ settings_screen.py โ RigiSettingsScreen
โ โโโ gauge.py โ RigiGauge, RigiSparkline
โ โโโ image.py โ RigiImage (kitty / iTerm2 / sixel)
โ โโโ terminal_bar.py โ RigiTerminalBar
โ โโโ mouse.py โ RigiClickable, RigiDraggable
โโโ .github/
โ โโโ workflows/
โ โ โโโ pr.yml โ PR quality checks
โ โโโ dependabot.yml
โโโ examples/
โ โโโ 01_minimal.py
โ โโโ 02_dashboard.py
โ โโโ 03_todo.py
โ โโโ 04_file_browser.py
โ โโโ 05_system_monitor.py
โ โโโ 06_notes.py
โ โโโ 07_multi_theme.py
โ โโโ 08_platform_features.py
โโโ tests/
โ โโโ test_basic.py
โ โโโ test_commands.py
โ โโโ test_help_system.py
โ โโโ test_loggers.py
โ โโโ test_log_store.py
โ โโโ test_resize.py
โ โโโ test_terminal.py
โ โโโ test_widgets.py
โโโ pyproject.toml
โโโ CONTRIBUTING.md
โโโ LICENSE
๐ Philosophy
This is a personal library, not a general-purpose open-source project.
- No documentation. Learn from the source code and the
examples/directory. - No issues or discussions. GitHub Issues and Discussions are disabled. Questions, feature requests, and support will not be answered.
- Pull requests are welcome - but only for: bug fixes, code optimization, cross-platform improvements, and features that expose missing Textual capabilities. Everything else will be closed without review.
See CONTRIBUTING.md for the exact requirements.
MIT ยฉ reekeer
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file rigi_reekeer-1.3.3.tar.gz.
File metadata
- Download URL: rigi_reekeer-1.3.3.tar.gz
- Upload date:
- Size: 82.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
be0f99eaa45c2187f2d734f22a24663dd198fd25a3efdb8bc4262dac704f017a
|
|
| MD5 |
f546d5d5555f974e9706e8d84932edac
|
|
| BLAKE2b-256 |
23b32c05b6f412c3cc641090aa7f348e4a0b7e3f4be810b51f1cfac02ec14376
|
File details
Details for the file rigi_reekeer-1.3.3-py3-none-any.whl.
File metadata
- Download URL: rigi_reekeer-1.3.3-py3-none-any.whl
- Upload date:
- Size: 77.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c55d77801fb3ecfbecda6b0c66641260c2bb0b30506460ad0ce5f09c52e0dc33
|
|
| MD5 |
93815bcbf98774be718d106b167539b1
|
|
| BLAKE2b-256 |
51d5c539c41a5c1685832a8049e4c207ca1a4fab30543a651c2762eed3b7089a
|