TUI Views
The Teabar TUI has four main views, accessible via the tab bar. Each view is optimized for specific tasks.
Environments View
The default view showing all your environments with real-time status.
┌─[ Environments ]─[ Logs ]─[ Catalog ]─[ Activity ]─────────────────────────┐
│ Filter: _________ Status: [All ▼] Sort: [Age ▼] 3 envs │
├─────────────────────────────────────────────────────────────────────────────┤
│ NAME STATUS BLUEPRINT AGE CPU/MEM │
│ ▶ march-seminar Running gitlab-cicd 2d 45%/62% │
│ test-env Sleeping k8s-basics 5h 0%/0% │
│ demo Running argocd-demo 1h 12%/34% │
│ │
├─────────────────────────────────────────────────────────────────────────────┤
│ org:teabar project:seminars c:create s:start S:stop d:delete l:logs │
└─────────────────────────────────────────────────────────────────────────────┘ Keyboard Shortcuts
| Key | Action |
|---|---|
Enter | View environment details |
c | Create new environment |
s | Start (wake) selected environment |
S | Stop (sleep) selected environment |
d | Delete selected environment |
l | View logs for selected |
a | View activity for selected |
Space | Toggle selection (multi-select) |
/ | Filter environments |
Status Colors
| Color | Status |
|---|---|
| Green | Running |
| Yellow | Starting/Stopping |
| Blue | Sleeping |
| Red | Failed/Error |
| Gray | Creating/Pending |
Multi-Select Operations
Use Space to select multiple environments, then:
# Start all selected
s
# Stop all selected
S
# Delete all selected (with confirmation)
d Environment Detail View
Press Enter on an environment to see details:
┌─[ ← Environments ]─[ march-seminar ]───────────────────────────────────────┐
│ Status: ● Running Blueprint: gitlab-cicd v1.2.0 │
│ Created: 2 days ago by [email protected] │
│ TTL: 46h remaining Cost: $12.34 │
├────────────────────────────────┬────────────────────────────────────────────┤
│ Resources │ Access URLs │
│ ├─ Cluster: main (3 nodes) │ GitLab: https://gitlab.march... │
│ │ ├─ control-plane-1 ● │ ArgoCD: https://argocd.march... │
│ │ ├─ worker-1 ● │ Registry: https://reg.march... │
│ │ └─ worker-2 ● │ │
│ ├─ VMs: 10 participants │ Actions │
│ └─ Storage: 50GB (23% used) │ [k]ubeconfig [s]sh [p]ort-forward │
├────────────────────────────────┴────────────────────────────────────────────┤
│ Recent Activity │
│ 10:23 participant-3 kubectl apply -f deployment.yaml ✓ │
│ 10:21 participant-1 git push origin main ✓ │
├─────────────────────────────────────────────────────────────────────────────┤
│ Esc:back l:logs a:activity s:stop d:delete c:checkpoint k:kubeconfig │
└─────────────────────────────────────────────────────────────────────────────┘ Detail View Shortcuts:
| Key | Action |
|---|---|
Esc | Go back to list |
l | View logs |
a | View activity |
k | Get kubeconfig |
s | SSH to VM |
p | Port forward |
c | Create checkpoint |
d | Delete environment |
Logs View
Stream and search logs from environment pods.
┌─[ Environments ]─[ Logs ]─[ Catalog ]─[ Activity ]─────────────────────────┐
│ Env: march-seminar Pods: [gitlab-* ▼] (3) Since: [1h ▼] │
│ Filter: ___________ Level: [≥INFO ▼] [✓] Follow [✓] Timestamps │
├─────────────────────────────────────────────────────────────────────────────┤
│ 10:23:45 gitlab-web-7f8b9 INFO Request completed 200 /api/v4... │
│ 10:23:44 gitlab-web-7f8b9 INFO Request started GET /api/v4/p... │
│ 10:23:42 runner-1 INFO Job succeeded: build #1234 │
│ 10:23:40 argocd-server WARN Application out of sync: demo │
│ 10:23:38 gitlab-web-7f8b9 ERROR Connection refused: postgres │
│ 10:23:35 gitlab-sidekiq INFO Processing job: send_email │
│ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░░░░░░░░░░░░░░░ │
├─────────────────────────────────────────────────────────────────────────────┤
│ f:follow p:pause w:wrap t:timestamps e:next-error J:json-pretty x:export │
└─────────────────────────────────────────────────────────────────────────────┘ Keyboard Shortcuts
| Key | Action |
|---|---|
f | Toggle follow mode |
p | Pause/resume log stream |
w | Toggle line wrap |
t | Toggle timestamps |
J | Toggle JSON pretty-print |
e | Jump to next error |
E | Jump to previous error |
o | Open pod selector |
x | Export visible logs |
1-5 | Filter by log level |
/ | Search in logs |
Log Level Filters
Press number keys to filter by log level:
| Key | Level |
|---|---|
1 | ERROR only |
2 | WARN and above |
3 | INFO and above |
4 | DEBUG and above |
5 | TRACE (all) |
Pod Selector
Press o to open the pod selector:
┌─ Select Pods ──────────────────────────────────────────────┐
│ Search: _____________ │
│ │
│ [✓] gitlab-webservice-7f8b9c │
│ [✓] gitlab-sidekiq-abc123 │
│ [ ] gitlab-gitaly-def456 │
│ [✓] runner-1 │
│ [ ] runner-2 │
│ │
│ 3 selected │
├────────────────────────────────────────────────────────────┤
│ Space:toggle Enter:confirm a:all n:none m:mode │
└────────────────────────────────────────────────────────────┘ Press m to switch selection modes:
- Checkbox - Individual pod selection
- Glob - Pattern matching (e.g.,
gitlab-*) - Groups - Component-based grouping
JSON Pretty-Print
For structured logs, press J to toggle formatting:
Raw:
{"level":"info","msg":"Request completed","status":200,"path":"/api/v4/projects"} Pretty:
{
"level": "info",
"msg": "Request completed",
"status": 200,
"path": "/api/v4/projects"
} Catalog View
Browse and search blueprints with live preview.
┌─[ Environments ]─[ Logs ]─[ Catalog ]─[ Activity ]─────────────────────────┐
│ Search: gitlab______ Tags: [cicd] [education] Source: [All ▼] │
├───────────────────────────────┬─────────────────────────────────────────────┤
│ BLUEPRINTS │ teabar/gitlab-cicd v1.2.0 │
│ ▶ teabar/gitlab-cicd │ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ │
│ teabar/k8s-basics │ Complete CI/CD training environment │
│ teabar/argocd-demo │ with GitLab, runners, and participant │
│ my-org/custom-env │ workspaces. │
│ community/nginx-demo │ │
│ │ Variables: │
│ │ participant_count: int (1-50) = 10 │
│ │ gitlab_version: string = "16.8" │
│ │ │
│ │ Tags: cicd, gitlab, education │
│ │ Downloads: 1,234 ★ 4.8 (56 reviews) │
│ │ │
│ │ [Enter] Create env [i] Install │
├───────────────────────────────┴─────────────────────────────────────────────┤
│ ↑↓:navigate Tab:switch-pane Enter:use i:install v:view-yaml /:search │
└─────────────────────────────────────────────────────────────────────────────┘ Keyboard Shortcuts
| Key | Action |
|---|---|
Enter | Create environment from blueprint |
i | Install blueprint to project |
v | View full blueprint YAML |
Tab | Switch list/preview pane |
/ | Search blueprints |
t | Toggle tag filter |
Creating Environments
Press Enter on a blueprint to launch the creation wizard:
┌─[ Create Environment ]─────────────────────────────────────────────────────┐
│ │
│ ┌─ Configuration ───────────────┐ ┌─ Infrastructure Preview ───────────┐ │
│ │ │ │ │ │
│ │ ▼ Blueprint │ │ ┌────────────────────────────┐ │ │
│ │ ▶ teabar/gitlab-cicd │ │ │ Hetzner Cloud │ │ │
│ │ │ │ │ │ │ │
│ │ ▼ General │ │ │ ┌────────┐ ┌────────┐ │ │ │
│ │ Name: [march-seminar___] │ │ │ │Network │──│ DNS │ │ │ │
│ │ TTL: [48h ▼] │ │ │ └───┬────┘ └────────┘ │ │ │
│ │ │ │ │ │ │ │ │
│ │ ▼ Variables │ │ │ ┌───┴──────────────┐ │ │ │
│ │ participant_count: [10_] │ │ │ │ Kubernetes │ │ │ │
│ │ gitlab_version: [16.8 ▼] │ │ │ └──────────────────┘ │ │ │
│ │ registry_enabled: [✓] │ │ └────────────────────────────┘ │ │
│ │ │ │ │ │
│ │ [ Cancel ] [ Create → ] │ │ Est: $2.34/hr │ 15 resources │ │
│ └───────────────────────────────┘ └────────────────────────────────────┘ │
│ │
├─────────────────────────────────────────────────────────────────────────────┤
│ ↑↓:navigate Tab:pane Enter:edit Ctrl+Enter:create Esc:cancel │
└─────────────────────────────────────────────────────────────────────────────┘ The wizard shows:
- Left pane - Configuration editor
- Right pane - Live infrastructure preview
Press Ctrl+Enter to create, or navigate to the “Create” button and press Enter.
Activity View
Monitor participant activity in real-time.
Simple View (Default)
┌─[ Environments ]─[ Logs ]─[ Catalog ]─[ Activity ]─────────────────────────┐
│ Env: march-seminar Participant: [All ▼] [●] Live │
├─────────────────────────────────────────────────────────────────────────────┤
│ 10:23:45 participant-3 kubectl apply -f deployment.yaml ✓ │
│ 10:23:42 participant-1 git push origin main ✓ │
│ 10:23:38 participant-7 docker build -t app:latest . ✓ │
│ 10:23:35 participant-3 kubectl get pods ✓ │
│ 10:23:30 participant-2 vim deployment.yaml ✓ │
│ 10:22:55 participant-5 kubectl delete pod nginx ✗ │
│ 10:22:50 participant-1 git commit -m "fix: update config" ✓ │
│ │
├─────────────────────────────────────────────────────────────────────────────┤
│ v:toggle-detail f:filter p:pause x:export Enter:details │
└─────────────────────────────────────────────────────────────────────────────┘ Detailed View (Press v)
┌─[ Environments ]─[ Logs ]─[ Catalog ]─[ Activity ]─────────────────────────┐
│ Env: march-seminar Participant: [All ▼] [●] Live [Detailed] │
├─────────────────────────────────────────────────────────────────────────────┤
│ ┌─ participant-3 ─────────────────────────────────────────────────────────┐│
│ │ 10:23:45 kubectl apply -f deployment.yaml ││
│ │ namespace: default │ duration: 1.2s │ exit: 0 ✓ ││
│ │ resources: deployment/nginx created ││
│ └─────────────────────────────────────────────────────────────────────────┘│
│ ┌─ participant-1 ─────────────────────────────────────────────────────────┐│
│ │ 10:23:42 git push origin main ││
│ │ repo: sample-app │ branch: main │ commits: 2 ││
│ │ +45 -12 lines across 3 files ││
│ └─────────────────────────────────────────────────────────────────────────┘│
├─────────────────────────────────────────────────────────────────────────────┤
│ v:toggle-detail f:filter p:pause x:export Enter:details │
└─────────────────────────────────────────────────────────────────────────────┘ Keyboard Shortcuts
| Key | Action |
|---|---|
v | Toggle simple/detailed view |
f | Filter by participant |
p | Pause/resume live updates |
x | Export visible activity |
Enter | View event details |
/ | Search activity |
Event Details
Press Enter on an event to see full details:
┌─ Event Details ────────────────────────────────────────────────────────────┐
│ │
│ Event ID: evt_abc123 │
│ Participant: participant-3 │
│ Time: 2024-01-15 10:23:45 UTC │
│ Type: kubectl │
│ │
│ Command: │
│ kubectl apply -f deployment.yaml │
│ │
│ Output: │
│ deployment.apps/nginx configured │
│ service/nginx unchanged │
│ │
│ Duration: 1.2s │
│ Exit Code: 0 (success) │
│ Namespace: participant-3 │
│ │
├─────────────────────────────────────────────────────────────────────────────┤
│ Esc:close c:copy-command x:export │
└─────────────────────────────────────────────────────────────────────────────┘ Help Overlay
Press ? in any view to see the help overlay:
┌─[ Keyboard Shortcuts ]─────────────────────────────────────────────────────┐
│ │
│ GLOBAL │
│ Tab / Shift+Tab Switch tabs │
│ ? Toggle this help │
│ q / Ctrl+C Quit │
│ / Search/filter │
│ Esc Close overlay / back │
│ R Refresh │
│ │
│ NAVIGATION │
│ ↑/k ↓/j Move up/down │
│ ←/h →/l Collapse/expand or back/enter │
│ g / G Go to top/bottom │
│ Ctrl+U / Ctrl+D Page up/down │
│ │
│ ENVIRONMENTS VIEW │
│ Enter View details │
│ c Create environment │
│ s / S Start/stop selected │
│ d Delete selected │
│ l / a View logs/activity │
│ │
│ Press any key to close... │
└─────────────────────────────────────────────────────────────────────────────┘ Related Pages
- TUI Overview - Introduction to the TUI
- TUI Navigation - Detailed navigation guide
- CLI Commands - Command-line interface reference