CLI
The create-markless flags, the four starters, the agents subcommand, and the scripts a new app gets.
The glossary defined the words. This page lists the commands.
Create an app
npm create markless@latest my-app
With no flags, the CLI asks you questions. With --yes, it takes the defaults, and you must give a folder name.
npm create markless@latest my-app -- --yes --starter app --no-git
Flags
This is the real --help output. The repo source (0.5.0) and the npm release (0.4.0) print the same text.
create-markless
Create Markless apps
Usage:
create-markless <target> [--yes]
Options:
--yes, -y Use defaults
--format <name> node, deno, or bun
--starter <name> minimal, app, docs, or full-stack
--agents <list> claude-code, codex, gemini-cli, github-copilot, or none
--no-install Skip dependency installation
--no-git Skip git initialization
--workspace Add the app to the enclosing workspace, if there is one
--no-workspace Keep the app separate from the enclosing workspace
--force Write into a non-empty directory
With --yes, the format is node and the starter is minimal. The CLI also installs the packages and runs git init. The target folder must be empty unless you pass --force.
If the folder sits inside an existing workspace, the CLI keeps the app separate by default. Pass --workspace to add it to that workspace.
Starters
All four starters are multi-page apps built on @markless/router and Nitro. That is a choice of the starters. Markless itself does not need a server. See Use Markless without a server.
--starter |
Prompt label | What you get |
|---|---|---|
minimal |
Learn Markless | A small TSRX counter app in pages/index.tsrx. |
app |
Build an app | The minimal files plus document.tsrx and 404 and 500 pages. |
docs |
Write docs | An MDX docs site with a layout and sidebar components. |
full-stack |
Full-stack app | The app files plus api/ and middleware/ folders. |
A minimal app made with --yes --no-install --no-git --agents none holds these files:
.gitignore
.vscode/extensions.json
.vscode/settings.json
.zed/settings.json
README.md
package.json
pages/index.tsrx
public/.gitkeep
scripts/markless-doctor.mjs
tsconfig.json
vite.config.ts
Coding agent skills
The CLI can write a Markless skill file for a coding agent. The file goes into the agent’s folder in your home folder, like ~/.claude/skills/markless/SKILL.md. A subcommand adds or removes it later.
Usage: create-markless agents <add|remove> [--agents <list|none>]
Cursor shows in the list, but you can’t pick it. Its User Rules apply to every project, so the CLI does not write one.
Scripts in a new app
| Script | Runs | What it does |
|---|---|---|
npm run dev |
vp dev |
Starts the dev server on http://localhost:5173. |
npm run build |
vp build |
Builds the app and its server into .output/. |
npm run preview |
vp preview |
Serves the build. |
npm run check |
vp check |
Runs the Vite+ checks. |
npm run doctor |
node scripts/markless-doctor.mjs |
Checks the Markless packages and tsconfig.json, then runs pnpm exec vp build. Add -- --no-build to skip the build. |
npm run fmt |
vp fmt |
Formats the code. |
npm run test |
vp test |
Runs Vitest. |
A Deno app gets the same tasks in deno.json, without doctor. Run them with deno task dev.
To run the built server without Vite, use node .output/server/index.mjs. It reads the PORT variable.
That’s the end of the docs. Go back to the start page, or help make these pages better with Improve these docs.
