Skip to content

Terminal UI

Launch the interactive terminal interface with:

bash
noorm ui

A full pass through the TUI: adding a config, creating the database, building the schema, fast-forwarding changes, and browsing the result in the explorer

Everything in noorm is accessible through keyboard shortcuts. No mouse needed.

The TUI is a dedicated subcommand — every other noorm command runs as a non-interactive CLI. Running noorm on its own prints the command list (citty's --help) instead of opening the wizard, so the entry into the TUI is always explicit. See the CLI Reference for the headless surface.

Home Screen

The noorm TUI home screen: status, quick actions, and recent activity

                              ┌─────────┐
                              │  Home   │
                              └────┬────┘
        ┌──────────┬──────────┬────┴────┬──────────┐
        │          │          │         │          │
     [c]│       [g]│       [r]│      [d]│       [s]│
        ▼          ▼          ▼         ▼          ▼
   ┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐
   │ Config │ │ Change │ │  Run   │ │Database│ │Settings│
   │  List  │ │  List  │ │  Menu  │ │  Menu  │ │  Menu  │
   └────────┘ └────────┘ └────────┘ └────────┘ └────────┘
        │          │          │         │
        │          │          │         ├── Explore (tables, views...)
        │          │          │         └── Terminal (SQL REPL)
        │          │          │
        │          │          └── Build, File, Directory, Exec, Inspect
        │          │
        │          └── FF, Next, Run, Revert, Rewind, History

        ├── Add, Edit, Delete, Copy, Use

        └──[k]── Secrets List

Secrets hang off a config, so k opens them from the Config List, not from Home. Export, import, and validate sit behind [+] More on the Config List.

Keyboard Shortcuts

Home Navigation

KeyScreenDescription
rRunExecute schema files
cConfigManage database connections
gChangesView and apply changes
dDatabaseExplore schema, run queries
+MoreSettings, vault, identity, lock
sSettingsProject configuration
vVaultTeam-shared encrypted secrets
iIdentityView/edit your identity
lLockView/manage database locks
uUpdateCheck for a newer noorm
qQuit noorm

s, v, i, and l work from Home directly as well as from [+] More. Three number keys run the quick actions listed on the home screen:

KeyAction
1Run build
2Apply changes (fast-forward)
3View lock status

Per-config secrets are not on this list — they hang off a config rather than the project, so you reach them with k from the config list.

Common Actions (in sub-screens)

KeyActionAvailable In
aAdd newConfig, Changes, Secrets
eEditConfig, Changes, Secrets
dDeleteConfig, Changes, Secrets
cCopyConfig
kSecretsConfig (secrets for the highlighted config)
+MoreConfig (export, import, validate)
EnterUse/ActivateConfig (set as active)

Export, import, and validate live behind [+] More on the config list rather than on the list itself, which keeps the destructive and the routine actions apart.

List Navigation

KeyAction
Move up
Move down
EnterSelect
EscapeGo back
1-9Quick select by number, on lists that show numbers

Numbered selection is enabled per list — if a list renders numbers down its left edge (Settings and the schema explorer do), the digits work there.

Global Shortcuts

KeyAction
Shift+LToggle log viewer overlay
Shift+QOpen the SQL terminal
?Show help
EscapeGo back / Cancel
Ctrl+CQuit

Screen Reference

Config List

The configuration list screen

  • indicates active config
  • indicates inactive config
  • > indicates cursor position
  • [user:<role> agent:<role|off>] tag shows access roles for any config whose access differs from the default (user: admin, agent: viewer) — omitted entirely for configs still on the default
  • [test] tag shows test configs
  • Press Enter on a config to activate it

Press a to add one. Adding a config is the one operation that is interactive only — noorm config add on the CLI directs you here:

The add-config form: name, dialect, connection details, and per-channel access roles

The two role fields set access per channel — who is driving. User Role covers a human on the CLI, TUI, or SDK; Agent Role covers an AI agent, over MCP and the CLI alike. They are independent, so a config can be wide open at your terminal and read-only — or invisible — to an agent. New configs default to admin for you and viewer for the agent. See Configs for what each role permits.

Changes List

The changes list, showing applied and pending changes

  • = Applied
  • = Pending
  • = Failed

When no changes exist:

No changes found. Press [a] to create one.

Press h for the execution history — what ran, when, and who ran it:

Change execution history, with per-change status and the identity that applied it

Run Menu

The run menu

Database Menu

The database operations menu

Schema Explorer

The schema explorer overview, with object counts by category

Press a number to drill into a category:

The explorer table list

Select a table to see its full schema:

Table detail: columns, indexes, and foreign keys

SQL Terminal

Press Shift+Q anywhere to open the SQL terminal against the active config:

The built-in SQL terminal

  • Tab completion for table/column names
  • Query history with up/down arrows
  • Results cached for review

Log Viewer

Press Shift+L anywhere to toggle the log overlay:

The log viewer overlay, opened with Shift+L

The overlay sits on top of whatever screen you were on, so you can watch events while an operation runs. [/] searches, [Space] pauses the live tail, and [Enter] opens a single entry in full.

More Options

Press + from home for the screens that aren't part of the day-to-day loop:

The More Options menu: settings, vault, identity, and lock

Each of these also has a direct key from home — + just groups them.

Settings

The settings screen, listing the seven setting groups

Edits here write to .noorm/settings.yml. Press i to create that file if the project doesn't have one yet. See Configs and SQL File Organization for what each group controls.

Identity

The identity screen, showing the current keypair and fingerprint

Your identity signs your name to every change execution, which is what makes change history attributable across a team. It lives in ~/.noorm/, not in the project, so it follows you between repositories.

Vault

The vault screen before initialization

The vault holds team-shared encrypted secrets in the database itself, so teammates get them by connecting rather than by copying a .env around. It starts uninitialized — press i to create it. See Vault.

Secrets

Per-config secrets are reached with k from the config list, not from home — they belong to a config rather than to the project:

The secrets screen for a config

These are values a config needs at connection or render time. See Secrets for how they resolve against stages.

Lock

The lock screen, showing current lock state

noorm takes a lock around operations that write to the database, so two people running a build against the same environment don't interleave. [s] shows status, [a] acquires, [r] releases, and [f] force-breaks a stale lock. See Locking.

Tips

Quick Config Switching

From home, press c, arrow to the config you want, then Enter to activate it. The config list is not numbered, so the digits do nothing there:

c → ↓ → Enter

Enter on the config that is already active opens its edit form instead.

Fast Forward All Changes

g → f

Run Build

r → b

Check Connection

Validate lives behind [+] More on the config list:

c → + → v (validate highlighted config)

Color Coding

ColorMeaning
GreenSuccess, applied, active
YellowWarning, pending, in progress
RedError, failed
GraySkipped, unchanged
CyanInfo, links