A CLI for SQL-first database development. Manage SQL files, track changes, and run builds across dev, staging, and production — no ORM required.
Documentation | Getting Started | npm
curl -fsSL https://noorm.dev/install.sh | shOr via npm:
npm install -g @noormdev/cliThe install script is fully transparent and open source — it downloads a prebuilt binary from GitHub Releases, built from this repository's source. It installs to a user-writable directory already in your PATH when possible (e.g. ~/.local/bin), falling back to ~/.local/bin if none is found.
Corporate network? Use the GitHub mirror:
curl -fsSL https://raw.githubusercontent.com/noormdev/noorm/master/install.sh | sh
- SQL files define your current schema — no migration archaeology
- Changes evolve existing databases from any state to current
- Stages manage dev, staging, and production with different configs
- SDK provides type-safe programmatic access to your database
You write SQL. noorm executes it, tracks what ran, and keeps multiple environments in sync.
Supports PostgreSQL, MySQL, SQLite, and SQL Server.
# Initialize a project
noorm init
# Launch the interactive TUI
noorm
# Or use headless mode
noorm -H config add
noorm -H run build
noorm -H change ffFrom the TUI:
- [i] Identity — Set your name (for team tracking)
- [c] Config → [a] Add — Create a database config
- [r] Run → Build — Execute your SQL files
ORMs push you toward surrogate IDs on every table and join-heavy queries. Proper relational design uses inherited keys, basetype-subtypes, and compound constraints — things ORMs can't express.
noorm lets you write the SQL your database was designed for, then manages execution across environments.
Read more: noorm.dev
For programmatic access in your applications:
npm install @noormdev/sdk kyselyBuild type-safe domain classes — consumers (queries), producers (mutations), and guards (validation). One package, used everywhere.
MIT