Skip to content
These are temporary community docs. The official docs are in progress.Help improve them
Markless
Esc
↑↓navigate↵open⌘Jpreview
On this page

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.

Was this page helpful?