CLI
The Norn CLI is a Charm-powered terminal client for managing your infrastructure. It uses Bubble Tea for interactive TUI components, Lip Gloss for styling, and Cobra for command parsing.
Installation
Build from source
bash
cd norn
make cli # builds to bin/norn
make install # builds + symlinks to /usr/local/bin/nornVerify
bash
norn versionConfiguration
The CLI connects to the Norn API server. Configure the URL with:
bash
# Environment variable (recommended)
export NORN_URL=http://localhost:8800
# Or per-command flag
norn --api http://localhost:8800 statusDefault: http://localhost:8800
Global flags
| Flag | Description |
|---|---|
--api <url> | Norn API URL (overrides NORN_URL) |
Commands
| Command | Description |
|---|---|
norn status | List all apps with health, commit, hosts, services |
norn deploy | Deploy a commit with live pipeline progress |
norn restart | Rolling restart with spinner |
norn rollback | Rollback to previous deployment |
norn logs | Stream pod logs (fullscreen, scrollable) |
norn secrets | List secret names |
norn health | Check all backing services |
norn version | Version and API endpoint info |
norn forge | Provision infrastructure for an app |
norn teardown | Remove infrastructure for an app |
norn cluster | Manage k3s cluster nodes |
Charm libraries
The CLI uses the Charm ecosystem:
- Bubble Tea — TUI framework (Model-Update-View architecture)
- Lip Gloss — Terminal styling (colors, borders, layout)
- Bubbles — Reusable TUI components (spinners, tables, viewports)
- Cobra — Command-line argument parsing
Color palette
The CLI uses a consistent purple-themed color palette:
| Name | Hex | Usage |
|---|---|---|
| Primary | #7C3AED | Titles, banners, badges |
| Green | #10B981 | Healthy, success, done |
| Red | #EF4444 | Unhealthy, errors, failed |
| Yellow | #F59E0B | Warnings, running state |
| Cyan | #06B6D4 | Role badges |
| Dim | #6B7280 | Secondary text |
| White | #F9FAFB | Primary text |