hop3-tui
Terminal User Interface for Hop3 PaaS.
Overview
A modern, keyboard-driven terminal interface for managing Hop3 applications, built with Textual.
Features
- Dashboard overview: System stats, app summary, recent activity
- Application management: List, filter, start/stop/restart apps
- Environment variables: View, add, edit, delete with sensitive value hiding
- Real-time log streaming: Filter logs, pause/resume, auto-scroll
- Chat interface: Interactive command line with tab completion
- System monitoring: CPU, memory, disk usage and service status
- Addon management: Create, attach, detach PostgreSQL, Redis, MySQL
- Backup management: Create, restore, delete app backups
- Connection status indicator: Visual feedback for server connectivity
Installation
pip install hop3-tui
Quick Start
# Set your server URL
export HOP3_SERVER_URL="https://hop3.example.com"
export HOP3_TOKEN="your-api-token"
# Run the TUI
hop3-tui
Configuration
Configuration via environment variables or ~/.config/hop3/tui.toml:
| Variable | Description | Default |
|---|---|---|
HOP3_SERVER_URL |
Server URL | http://localhost:5000 |
HOP3_TOKEN |
API authentication token | - |
HOP3_TUI_THEME |
Color theme (dark/light) |
dark |
Config File
[server]
url = "https://hop3.example.com"
token = "your-api-token"
[display]
theme = "dark"
refresh_interval = 5
Keyboard Shortcuts
Global
| Key | Action |
|---|---|
d |
Dashboard |
a |
Apps list |
s |
System status |
o |
Addons |
b |
Backups |
c |
Chat interface |
? |
Help |
q |
Quit |
Navigation
| Key | Action |
|---|---|
j/Down |
Move down |
k/Up |
Move up |
Enter |
Select |
Escape |
Go back |
/ |
Filter |
R |
Refresh |
Apps
| Key | Action |
|---|---|
s |
Start app |
S |
Stop app |
r |
Restart app |
l |
View logs |
e |
Environment variables |
Architecture
hop3-tui/
├── src/hop3_tui/
│ ├── __main__.py # Entry point
│ ├── app.py # Main Hop3TUI class with connection state
│ ├── config.py # Configuration loading (env vars + TOML)
│ ├── api/
│ │ ├── client.py # JSON-RPC client with error handling
│ │ └── models.py # Pydantic data models
│ ├── screens/
│ │ ├── dashboard.py # Overview with app counts
│ │ ├── apps.py # App list and management
│ │ ├── app_detail.py # Single app view
│ │ ├── logs.py # Real-time log streaming
│ │ ├── env_vars.py # Environment variable editor
│ │ ├── system.py # System status
│ │ ├── addons.py # Addon management
│ │ ├── backups.py # Backup management
│ │ └── chat.py # Command interface
│ └── widgets/
│ ├── confirmation.py # Confirmation dialogs
│ ├── status_panel.py # Resource meters
│ └── status_badge.py # Status indicators
└── tests/ # pytest test suite (167 tests)
Connection Handling
The TUI tracks connection state to the Hop3 server:
- Connected (green indicator): Server is reachable
- Disconnected (red indicator): Connection lost, will retry
- Connecting (yellow indicator): Attempting to connect
Connection failures are tracked and the state updates automatically. The UI continues to show cached data while disconnected.
Development
# Run with auto-reload
textual run --dev src/hop3_tui/app.py
# Run tests
uv run pytest tests/ -v
# Lint and format
uv run ruff check src/
uv run ruff format src/
Documentation
Related Packages
- hop3-server - The server that hop3-tui communicates with
- hop3-cli - Alternative command-line interface
License
Apache-2.0 - Copyright (c) 2024-2026, Abilian SAS
Metadata
Release files for hop3-tui 0.7.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| hop3_tui-0.7.2.tar.gz | 35.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| hop3_tui-0.7.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 91.3 kB
Release files / hop3_tui-0.7.2.tar.gz
| Download URL | hop3_tui-0.7.2.tar.gz |
|---|---|
| Size | 35.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
66f095c295f390ef195ce864742eab6be3b14cd9c9b241a7e5c696519ca3aa72
|
|
BLAKE2b-256 checksum How to use checksums |
90d5bbc31d3e30703668381ebdcff5fa7e74a705f1817d719caa39710ca5a62d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.13
|
Release files / hop3_tui-0.7.2-py3-none-any.whl
| Download URL | hop3_tui-0.7.2-py3-none-any.whl |
|---|---|
| Size | 56.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
45d6419c5e3b44079b05aa17fedf4abef7656b9c993b6818317ad97096b62ab1
|
|
BLAKE2b-256 checksum How to use checksums |
7d6c2ea6567c59df14d8f619044cbf9ff76d07a3202f70321d35575b4f6e3ad2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.13
|