CLI reference
Four commands. Zero-config defaults.
Zero-config by default: src/ is the source directory, dist/ the output. Pass a source path and/or --out to override.
| Command | What it does |
|---|---|
marisjs init | Scaffold a starter package.json with dev/build/serve scripts, a .gitignore that excludes .env, and a no-real-values .env.example. |
marisjs dev | Dev server with hot reload on file change (defaults: src/ → dist/, port 3000). |
marisjs build | Validate, compile, and prerender to static output (defaults: src/ → dist/). |
marisjs validate ./src/App.tsx | Check a single file against every rule in this spec. |
marisjs build ./src --out dist is exactly what the defaults do - the explicit form exists for non-standard layouts and CI pipelines that need a custom output directory. Your daily commands
After marisjs init, the daily loop is npm run dev, npm run build, and npm run serve - which runs @marisjs/adapter-node to preview the finished output at http://localhost:3000.
The compiler ships as a native binary in the marisjs package, so builds are fast and do not depend on TypeScript or Babel being installed in your project.
AI agents: the MCP server
The same validator is exposed as an MCP server (marisjs-mcp) so AI coding agents can check files against the spec directly. It is the same code as marisjs validate, with structured JSON output and a fix hint per error. See the MCP server docs for registration snippets.