@mozartec/mos-cli
v0.3.1
Published
The mos CLI: serve any vault's board and wiki locally (`mos serve`), scaffold a new vault (`mos init`), and validate one (`mos validate`). Read-only over existing vaults; ships the built web app bundled with the vault endpoints in one Node process.
Readme
@mozartec/mos-cli
mos (markdown on steroids) renders a folder of markdown as a wiki and a Kanban board. The folder is the source of truth; the app is strictly read-only — your editor and your AI agent do the writing.
Requires Node ≥ 20.
Quick start
npx @mozartec/mos-cli init # turn the current folder into a vault
npx @mozartec/mos-cli serve # board + wiki at http://127.0.0.1:4400Or install globally for a plain mos command:
npm i -g @mozartec/mos-cli
mos init && mos serveCommands
| Command | What it does |
| --- | --- |
| mos serve [dir] [--port <n>] | Serve the vault at dir (default: the nearest vault at or above the current directory). Live-reloads on file changes. |
| mos init [dir] | Scaffold a vault: starter .mos/config.json, one example card, an AGENTS.md write guide. One-time bootstrap — refuses to touch an existing vault. |
| mos validate [dir] | Validate the vault(s) at or under dir (default: the current directory) against .mos/config.json. Exits non-zero if any vault has errors — usable as a CI check. |
| mos --version / mos --help | Version / usage. |
What a vault is
Any folder containing .mos/config.json. Markdown files under board/ whose frontmatter
declares a configured type are cards on the board; the rest of the folder renders as a
wiki. Card types, states, and columns all come from the config — nothing about your
vocabulary is hardcoded. Internal links (id references like T-001 and ordinary relative
markdown links) navigate in-app, and the same files render unchanged on GitHub.
The full format contract, the architecture, and the agent-driven write convention live in
the mos repository — start with
docs/12-ADOPTING.md.
Read-only by design
mos serve has no write endpoint and rejects non-GET requests; init never overwrites a
file. Every change to your vault happens through your editor or your AI assistant.
