Terminal UI
Launch the interactive terminal interface with:
noorm ui
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

Navigation Map
┌─────────┐
│ 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 ListSecrets 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
| Key | Screen | Description |
|---|---|---|
r | Run | Execute schema files |
c | Config | Manage database connections |
g | Changes | View and apply changes |
d | Database | Explore schema, run queries |
+ | More | Settings, vault, identity, lock |
s | Settings | Project configuration |
v | Vault | Team-shared encrypted secrets |
i | Identity | View/edit your identity |
l | Lock | View/manage database locks |
u | Update | Check for a newer noorm |
q | — | Quit 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:
| Key | Action |
|---|---|
1 | Run build |
2 | Apply changes (fast-forward) |
3 | View 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)
| Key | Action | Available In |
|---|---|---|
a | Add new | Config, Changes, Secrets |
e | Edit | Config, Changes, Secrets |
d | Delete | Config, Changes, Secrets |
c | Copy | Config |
k | Secrets | Config (secrets for the highlighted config) |
+ | More | Config (export, import, validate) |
Enter | Use/Activate | Config (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
| Key | Action |
|---|---|
↑ | Move up |
↓ | Move down |
Enter | Select |
Escape | Go back |
1-9 | Quick 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
| Key | Action |
|---|---|
Shift+L | Toggle log viewer overlay |
Shift+Q | Open the SQL terminal |
? | Show help |
Escape | Go back / Cancel |
Ctrl+C | Quit |
Screen Reference
Config List

●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
Enteron 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 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

✓= 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:

Run Menu

Database Menu

Schema Explorer

Press a number to drill into a category:

Select a table to see its full schema:

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

- 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 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:

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

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

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 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:

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

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 → ↓ → EnterEnter on the config that is already active opens its edit form instead.
Fast Forward All Changes
g → fRun Build
r → bCheck Connection
Validate lives behind [+] More on the config list:
c → + → v (validate highlighted config)Color Coding
| Color | Meaning |
|---|---|
| Green | Success, applied, active |
| Yellow | Warning, pending, in progress |
| Red | Error, failed |
| Gray | Skipped, unchanged |
| Cyan | Info, links |