quay-tui-0.2.0 is not a library.
Quay
A TUI port manager for local processes, SSH forwards, and Docker containers.
Features
- Unified View: See all ports in one place (local, SSH, Docker)
- Remote Mode: Scan remote hosts via SSH and forward ports with one key (
quay --remote user@server) - Interactive TUI: Navigate with keyboard, filter by source, search by name/port
- Quick Actions: Kill processes or create SSH forwards directly from the interface
- SSH Presets: Save frequently used port forwards as presets for one-key launch
- Mouse Support: Click and scroll navigation (configurable)
- Configuration: Customize auto-refresh interval, default filter, and more via
~/.config/quay/config.toml - CLI Support: Non-interactive commands for scripting (
quay list --json) - Fast: Written in Rust with ratatui
Installation
Usage
TUI Mode (default)
Remote Mode
Scan remote host ports via SSH and forward them locally:
# TUI with remote port scanning
# List remote ports
# Kill remote process
In remote TUI mode:
- Header shows
Quay [remote: user@server] - Press
Fon any port to Quick Forward (same port number, no form) - Press
fto open the forward form (SSH Host is auto-filled and locked)
CLI Commands
# List all ports
# Output as JSON
# Filter by source
# Kill process on port
# Kill by PID
# Create SSH port forward
# Create reverse SSH forward
Keybindings
| Key | Action |
|---|---|
j / ↓ |
Move down |
k / ↑ |
Move up |
g / Home |
Go to first |
G / End |
Go to last |
/ |
Search mode |
Enter |
Show details |
K |
Kill selected process |
f |
Create SSH forward |
F |
Quick forward (remote mode, same port) |
p |
Open presets |
r |
Refresh |
a |
Toggle auto-refresh |
0 |
Show all |
1 |
Local only |
2 |
SSH only |
3 |
Docker only |
? |
Help |
q / Esc |
Quit |
Screenshots
┌─────────────────────────────────────────────────────────────┐
│ Quay - Port Manager │
├─────────────────────────────────────────────────────────────┤
│ Filter: [0] All [/] search [?] help │
├─────────────────────────────────────────────────────────────┤
│ TYPE │ LOCAL │ REMOTE │ PROCESS/CONTAINER │
├────────┼────────┼─────────────────┼─────────────────────────┤
│ LOCAL │ :3000 │ │ node (pid:1234) │
│ LOCAL │ :8080 │ │ python (pid:5678) │
│ SSH │ :9000 │ localhost:80 │ ssh (pid:2345) │
│ DOCKER │ :5432 │ postgres:5432 │ postgres (abc123) │
├─────────────────────────────────────────────────────────────┤
│ [j/k] Navigate [Enter] Details [K] Kill [f] Forward [p] Presets [?] Help [q] Quit│
└─────────────────────────────────────────────────────────────┘
Configuration
Configuration files are stored in ~/.config/quay/.
config.toml
[]
= true
= 5
= "all" # all, local, ssh, docker
= "user@server" # optional: default remote host
[]
= true
presets.toml
[[]]
= "Production DB"
= "1"
= 5432
= "localhost"
= 5432
= "prod-bastion"
[[]]
= "Staging Redis"
= 6379
= "localhost"
= 6379
= "staging-bastion"
Requirements
- macOS or Linux (
lsoffor port detection) - Docker (optional, for container port detection)
Developer Tools
Built-in tools for testing without real services running:
# Launch TUI with mock data
# Run a scenario (spawns listeners + launches TUI)
# Listen on specific ports
# Check if ports are open/closed
Scenarios launch the TUI with pre-built entries, so both open (●) and closed (○) ports are visible even if the underlying ports are already in use.
Development
# Run in development
# Build release
# Run tests
See docs/DEVELOPMENT.md for more details.
License
MIT