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.
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-openskips the browser.
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.
Flag reference
Flags.
Run npx @vibeflow-tools/cli serve --help
for the canonical list.
| 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.
| 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
Where to go next.
- How to use Vibeflow — the three-step workflow from annotation to merge
- vibeflow kanban — the board-first entry point
- vibeflow tasks — the full flag reference for the agent command
- MCP setup guide — MCP lives in API-only mode
- Give your AI agent UI context — why structured tasks beat prose
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