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

Set up the repo on your machine

Clone Markless, install it with pnpm on Node 24, and learn the root scripts you run every day.

Last page, you saw the stack of packages. Now get all of them to build on your machine.

One pnpm install sets up every package. It also turns on the git hooks, so your first commit runs CI’s fast checks.

What you need

  • Node 24. Every job in .github/workflows/ci.yml uses Node 24.
  • pnpm 10.33.2. The root package.json pins it in packageManager.
  • git. The hooks are shell scripts in .githooks/.
  • The gh CLI, if you push to main. The pre-push hook uses it.

Clone and install

git clone https://github.com/compiled-run/markless.git
cd markless
corepack enable
pnpm install

pnpm install runs the root prepare script. That script runs git config core.hooksPath .githooks.

Some tests start real browsers. CI installs them with this command:

pnpm --dir packages/vitest-browser exec playwright install chromium webkit

You can also run pnpm ci:local --install. It runs each job’s setup steps before its checks, and the Playwright install is one of them.

The scripts you will use

Command What it does
pnpm run typecheck Runs the .tsrx-aware checker, packages/typescript-plugin/src/tsc.ts, on the root tsconfig.json
pnpm ci:local --fast Runs CI’s fast jobs with the exact commands from ci.yml
pnpm exec vp test <file> Runs one test file
pnpm test:compiler Runs packages/compiler/test/*.test.ts
pnpm test:headless Runs the ui test project, the @markless/ui browser tests
pnpm lint Runs vp lint
pnpm check Runs vp check
pnpm fmt Runs vp fmt
pnpm build Packs the packages with vp pack, plus CommonJS builds of router and typescript-plugin
pnpm test Runs the long local suite: completion matrix, every test project, benchmark guard, box tests, perf guards
pnpm rules Regenerates the agent files from .ruler/

vp is the Vite+ command line. The repo installs it as the vite-plus dev dependency.

The root vite.config.ts defines three test projects: node, browser and ui. Pass --project <name> to run one.

Next: What does one change look like, from branch to merged PR? Your first PR →

Was this page helpful?