Skip to main content
Your board is a real Next.js codebase. The CLI lets you pull it, edit it with any tool you like, and ship it back, without opening the dashboard editor. It is also the interface AI coding agents use. Claude Code, Cursor and Codex can run these commands directly, so “change my job board” becomes a task you hand to an agent instead of a ticket you write.
Source: github.com/Kardow/kardow-cli (Apache-2.0). Prefer working in chat rather than code? The MCP connector covers jobs, pages and analytics without touching the source.

Install

Requires Node 18 or newer. Check it worked:

Quickstart

kardow pull writes a .env.local with everything the project needs, so the folder runs with nothing to configure. kardow dev installs dependencies the first time and reinstalls only when they actually change.

Commands

Inside a pulled folder, the board is inferred, so --board is optional.

Create a whole board in one command

That creates the organization, claims a subdomain, deploys a live site, creates the source repo, and pulls it into a local folder. One command, from nothing to a running job board you can edit. To give a new client the same design as an existing board, with their own data:

Preview before you go live

Every site version has its own URL, so you can deploy and check a change before pointing your domain at it.

Secrets

Values are write only. Store one, then reference it in configuration as vault:<name>.
Passing the value as an argument (kardow secrets set NAME sk_live_...) works but puts it in your shell history. Omit it to be prompted, or pipe it with --stdin.

Working with an AI agent

Point Claude Code, Cursor or Codex at a pulled folder and it can read the code, make changes, and ship them. A useful first prompt:
For headless environments such as CI or a cloud agent, set KARDOW_TOKEN instead of running kardow login.

Troubleshooting

The CLI installs with --legacy-peer-deps already, because boards pin React 19 while some packages still declare a React 18 peer range. If you installed by hand and hit ERESOLVE, run kardow install instead.
You edited a platform-managed file. kardow pull writes .kardow/managed.json listing them, and kardow deploy warns when you change one. Those paths are rewritten from the base template every deploy.
Deploy compares against the last pull. Use --force to deploy anyway, or --dry-run to see what it thinks changed.