Views
bext-tui is organized into 11 top-level views, each focused on one aspect of running a bext instance. Switch between them with the tab bar at the top, with 1–9 shortcuts, with the g chord (gd = dashboard, gs = sites, gr = requests, gt = TLS, etc.), or via the command palette.
Dashboard#
The home view. Open with 1 or gd.
A four-panel layout:
- Platform health — colored dots for server, cache, workers, license, uptime
- Metrics — labeled sparklines for request rate and average latency (last 60 samples)
- Quick stats — totals for sites, cache entries, requests, errors, workers, certs
- Top sites — leaderboard of sites by request rate
- Recent events — last 10 requests with status code coloring
The Dashboard's data is refreshed on the fast polling tier (default 2s).
Sites#
Open with 2 or gs. List view of every site bext is serving. Columns:
| Column | Source |
|---|---|
| Name | site name |
| Framework | detected framework (Next.js, Astro, PHP, static, …) |
| Status | running / building / stopped / error (color-coded) |
| Version | current version or deploy hash |
| Req/s | per-site request rate |
| Cache | hit ratio percentage |
| Domains | comma-separated domain list |
Press Enter on a row to drill into the detail view, which has five tabs (cycle with h / l):
- Info — name, framework, version, uptime, full domain list
- Metrics — request rate, cache hit, extended latency stats
- Deploys — deployment history filtered to this site
- Logs — recent requests filtered to this site's domains
- Workers — workers attached to this site
Esc collapses the detail view back to the list. Press d to deploy, r to rollback, e to edit env vars.
Requests#
Open with 3 or gr. A live-scrolling request log — your tail -f for HTTP traffic.
Columns: timestamp, method, path, status, duration, cache status, host. Status codes are color-coded (2xx green, 3xx cyan, 4xx yellow, 5xx red bold). Cache status uses HIT green / STALE blue / MISS yellow / BYPASS dim.
Controls:
Space— pause/resume the live feed (the count keeps ticking but rows freeze)/— filter on path, host, or status code. The filter is interpreted as a case-insensitive regular expression when it compiles, falling back to substring match when it doesn't. The active mode is shown in the input bar ((regex)or(substring)).Enter— open a detail popup for the selected row (full method, status, timing, headers)Esc— close the detail popup or clear the filter
The data source is the /__bext/admin/ws/logs WebSocket if available, polled /__bext/admin/api/requests otherwise. The TUI buffers up to 2,048 entries client-side.
Cache#
Open with 4 or gc. Two panels:
- Cache overview — ISR entries, stampede locks, hit rate, miss rate, memory
- Hit rate meter — color-coded utilization bar (green > 60% > yellow > 85% > red)
Actions:
p— purge all (with confirmation)P— purge by pattern (opens an input — supports glob)w— pre-warm the cache (queues a render of every known route)
Purge actions are confirmed before firing. Pattern purge accepts a path glob like /api/* or /blog/2025-*.
Workers#
Open with 5 or gw. Table of every worker across every runtime (V8, Bun, PHP, plugins).
Columns: kind, ID, PID, memory, requests handled, status, uptime.
Actions:
r— restart the selected worker (single-worker restart, no confirmation)R— restart all workers of the selected kind (confirmed — drains in-flight requests first)
Worker restarts are graceful: in-flight requests finish before the worker is replaced.
TLS#
Open with 6 or gt. Certificate inventory.
Columns: domain, issuer, valid until, days remaining, key type, OCSP status. The "days remaining" cell is color-coded:
- Green: > 30 days
- Yellow: 10–30 days
- Red: < 10 days
Actions:
r— force renewal of the selected certificatep— provision a new certificate (opens domain input)Enter— show the full chain, fingerprint, and SANs
Proxy#
Open with 7 or gp. Upstream health monitoring.
Columns: name, address, status, active connections, request rate, latency, error %, circuit breaker state. Statuses and circuit breaker states are color-coded.
Actions:
h— force a health check probe right nowd— drain the upstream (graceful removal — finishes in-flight requests, then removes from the pool)Enter— open the upstream detail with latency histogram and recent error log
WAF#
Open with 8 or gf. Web Application Firewall monitoring.
Three summary panels at the top:
- Total blocked / 24h blocked
- Top rules by hit count
- Top blocked IPs
Below: rule table with ID, name, enabled flag, action, hit count.
Actions:
e— enable / disable the selected ruleEnter— show rule pattern and recent matches
Deploy#
Open with 9 or gy. Deployment timeline across all sites.
Columns: timestamp, site, version, status, duration, triggered by. Status colors: green for success, red for failed, yellow for in-progress.
Actions:
d— deploy the selected site (latest commit)r— rollback the selected deploymentp— promote a canary to stable
All three are confirmed.
Logs#
Open with gl. Searchable log viewer backed by the bext log store (SQLite).
/— search across all stored logs (full-text)- Time range picker at the top: 1h / 6h / 24h / 7d / custom
Enteron a row shows the full structured log entry with JSON body
The Logs view is the right place to look for historical events — the Requests view shows live traffic only, and old entries scroll off the buffer.
Config#
Open with go. Read-only viewer for the parsed bext.config.toml.
Actions:
r— hot-reload the config (confirmed — runs validation first, refuses to apply if invalid)v— re-run validation only
The config text is fetched from /__bext/admin/api/config in remote mode, or read directly from disk in local mode.
Tutorials#
Interactive guided walkthroughs built into the TUI codebase. They are not yet wired to a navigable view or keybinding — the content below ships once the Tutorials view is exposed in an upcoming release.
Four tutorials are planned:
| Tutorial | Steps | Description |
|---|---|---|
| First 5 minutes | 5 | Init, dev mode, visit, edit config, check |
| Caching | 4 | Enable ISR, observe hits, purge, warm |
| Plugins 101 | 4 | List, inspect, install, see pipeline |
| Deploying | 4 | Build, deploy, health check, rollback |
Each tutorial is a scripted walkthrough that shows the command to run and a hint. Navigation:
j/k— browse the tutorial listEnter— select a tutorial or advance to the next stepBackspace— go to the previous stepEsc— return to the tutorial list
The tutorial view is designed for terminal-first onboarding — new users can learn bext entirely from the TUI without switching to a browser.
Help#
Press ? from any view to overlay a context-sensitive help sheet showing all keybindings active in the current view. Press ? again or Esc to close.
The Tutorials view is not yet exposed via a keybinding or tab entry — the content is implemented but the navigation hook ships in an upcoming release.
Related#
- TUI Keybindings — complete keyboard reference for every view
- TUI Command Palette — fuzzy-search actions without memorizing keys
- TUI Connection Modes — how to connect before navigating views
- Guides → Caching — background on the ISR stats the Cache view displays
- Operations → Monitoring — context for the metrics and log views