vibeflow serve.
Prototypes, or your own app.

Two modes in one command: point it at an HTML file or directory to serve prototypes with the overlay attached — or run it with no target as an API-only task server behind an app you already host.

Two modes

A target, or no target.

01 With a target

Serve HTML with the overlay attached.

Pass a directory to serve every .html file in it (listed at /), or a single file to serve just that screen. The overlay script and task API run alongside, so annotating works immediately — click an element, get a task with its selector and source location.

  • Single file — serve dashboard.html.
  • Custom port — -p 4000.
  • Headless — --no-open skips the browser.
terminal
$ npx @vibeflow-tools/cli serve .
 
✓ Vibeflow running · http://localhost:3700
02 No target

API-only: attach to an app you already run.

With no target, serve starts the task API, the WebSocket, the board route and the MCP endpoint — but serves no pages of its own. Your app keeps its own server; it only needs the overlay script tag (or the bookmarklet from /inject) pointing at localhost:3700.

terminal
$ npx @vibeflow-tools/cli serve
 
✓ Vibeflow running · API-only mode

Flag reference

Flags.

Run npx @vibeflow-tools/cli serve --help for the canonical list.

vibeflow serve flags
Flag What it does
Usage
[target] HTML file or directory of HTML files. Omit it for API-only mode.
Options
-p, --port <port> Port number (default 3700).
--host <host> Bind hostname — default localhost; use 0.0.0.0 for LAN sharing.
--no-open Do not open the browser automatically.

Choosing

kanban vs serve, mode by mode.

Both start the same local server on port 3700. The difference is what the browser opens and which extra endpoints are mounted.

kanban and serve modes compared
Capability kanban serve <target> serve (API-only)
Local server on port 3700 yes yes yes
Kanban board at /kanban opens it serves it serves it
Your HTML files served — yes —
Task API + WebSocket yes yes yes
Overlay at /vibeflow-overlay.js yes yes yes
MCP at /api/mcp yes — yes

If something looks wrong

Common questions.

Can I serve a whole directory of prototypes?

Yes — point the target at a directory and every .html file in it is served; the server lists them at /. One file per screen is the convention: name each file after its route and navigate between them with relative links.

Where did my MCP endpoint go?

The MCP endpoint is mounted by the API-only mode — vibeflow serve with no target, or vibeflow kanban. When serve is busy serving static HTML files, run the API-only mode for MCP clients instead.

Does this expose my machine to the network?

No — the server binds localhost by default. Opt into LAN sharing explicitly with --host 0.0.0.0; nothing is uploaded either way.

Related pages

Ten seconds to your
first annotated task.

No account, no cloud, no browser extension.

Apache-2.0 · Node.js 22+ · tasks stay in your repository