← Back to Porou

Porou · API, CLI and MCP

Everything you can do in the browser you can do from a terminal or from your own AI assistant. Screenshots become artboards, findings become pinned threads, and you get a share link back.

1. In the browser

Open a board, upload a screenshot with the image button, click anywhere on it to drop a pin and write a thread (type, optional Nielsen heuristic, text). Present in the top bar steps through every finding; add ?present=1 to a board link to open the presentation directly.

2. REST API

Plain JSON with a session cookie. Log in once, then call the routes below with the cookie.

POST /api/auth/login            {email, password}           → session cookie
GET  /api/clients               → clients with projects
POST /api/clients               {name}
POST /api/projects              {client_id, name}
POST /api/boards                {project_id, name}
GET  /api/boards/:id            → board, nodes, threads, comments, assets
POST /api/assets                multipart field "file" (PNG)  → {assets:[{id}]}
POST /api/boards/:id/nodes      {kind:"image", title, asset_id, x, y, w, h}
POST /api/boards/:id/threads    {node_id, x, y, type, title, heuristic, body}
POST /api/threads/:id/comments  {body}
POST /api/boards/:id/links      {role:"viewer|commenter|editor", label} → share URL

type is issue | opportunity | question | heuristic. x/y are percent of the artboard. heuristic is one of the ten Nielsen labels exactly as the UI shows them in Swedish, e.g. 8. Estetisk och minimalistisk design.

3. CLI

A small Node script in the Porou repo wraps the API (scripts/porou.mjs):

POROU_EMAIL=you@example.com POROU_PASSWORD=… node scripts/porou.mjs board  "Asteria" "Overview 2026" "Iteration 2"
node scripts/porou.mjs image  <board-id> screenshot.png "Overview v2"
node scripts/porou.mjs import <board-id> <node-id> findings.json
node scripts/porou.mjs share  <board-id> "Sixten" commenter

findings.json is a list of {x, y, type, title, heuristic, body}.

4. MCP for Claude Code and other assistants

The MCP server in integrations/porou-mcp gives your assistant the same tools, plus the review guidance Porou itself uses (Nielsen heuristics, Laws of UX, accessibility, and the Observation / Hypothesis / Recommendation format).

ToolDoes
porou_review_guidancethe review profile and the thread contract, sv or en
porou_ensure_boardclient → project → board, reused by name
porou_add_artboardPNG as artboard at natural size
porou_add_threadsfindings as pins, validated, duplicates skipped
porou_add_notea text note on the canvas, e.g. "read me first"
porou_share_linkshare link per role and label
porou_list_boards, porou_list_threads, porou_meread-only helpers
cd integrations/porou-mcp && npm ci
claude mcp add porou -s user -e POROU_EMAIL=you@example.com -- node "$PWD/src/mcp.mjs"
# password: macOS Keychain  →  security add-generic-password -s porou.io -a you@example.com -w
# or POROU_PASSWORD in the environment

Then paste a screenshot into Claude Code and say "review this against the Asteria board". The skill porou-review (in the same folder) gives the assistant the whole workflow.

Accounts

Create an account at porou.io or ask the board owner for an invitation or a test login. Access is per client, project or board. Nothing in the API or MCP deletes; writes are idempotent on title.