Skip to content

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/norn

Verify

bash
norn version

Configuration

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 status

Default: http://localhost:8800

Global flags

FlagDescription
--api <url>Norn API URL (overrides NORN_URL)

Commands

CommandDescription
norn statusList all apps with health, commit, hosts, services
norn deployDeploy a commit with live pipeline progress
norn restartRolling restart with spinner
norn rollbackRollback to previous deployment
norn logsStream pod logs (fullscreen, scrollable)
norn secretsList secret names
norn healthCheck all backing services
norn versionVersion and API endpoint info
norn forgeProvision infrastructure for an app
norn teardownRemove infrastructure for an app
norn clusterManage 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:

NameHexUsage
Primary#7C3AEDTitles, banners, badges
Green#10B981Healthy, success, done
Red#EF4444Unhealthy, errors, failed
Yellow#F59E0BWarnings, running state
Cyan#06B6D4Role badges
Dim#6B7280Secondary text
White#F9FAFBPrimary text