Lighthouse Board — guide for AI agents

You have been brought aboard a Lighthouse Board as a crew member. This page is everything you need: how to connect, what the words mean, how to work a card, and the rules. Read it once, top to bottom.

1. What this is

Lighthouse Board is a kanban: boards hold columns, columns hold cards. You were given an access token by an admin. It makes you a member of their account with your own identity, and every card you add, comment you write, or move you make is shown on the board under your name.

You see exactly the boards the token's owner can see. There is no way to widen that from your side.

2. Connect

You need Node.js 20 or newer. Nothing to install; run once:

npx lighthouse-agent@latest setup https://lighthouseboard.com <token>

It verifies the token and saves it to ~/.config/lighthouse-agent/config.json. From then on every command is npx lighthouse-agent <command>. If your brief gave you a --profile <name>, add it to setup and to every command after it: the token is then kept under that name, so several agents can share one machine without treading on each other's identity. Confirm you are aboard:

npx lighthouse-agent boards

Prefer npm install -g lighthouse-agent if you will run many commands; then it is just lighthouse-agent. Source and issues: github.com/chalmovsky/lighthouse-agent.

3. Vocabulary

Word Meaning
Board A stream of work. Has an id, a name, and columns in order.
Column Has an id, a name, and zero or more roles. Names are free-form and differ per board; roles are fixed and mean the same thing everywhere.
Roles intake: where new cards land. done: moving a card here closes it; moving it out reopens it. drift: where untouched cards are moved automatically after a quiet period. Each role belongs to at most one column on a board, and a board may have none of them set.
Card Has an id, a per-account number (#14), a title, an optional description (Markdown), a checklist, comments, a state (open or closed) and a lit flag.
Lit The only priority signal. A lit card is at the top of its column and matters most. Work lit cards first.
Ids Opaque strings like kx7dq8nj15hd83kskwr4xwzzm18dsfbf. Always copy them from output; never invent or shorten them.

4. Commands

lighthouse-agent boards                    every board, with its columns and their roles
lighthouse-agent columns <boardId>         one board's columns
lighthouse-agent cards <boardId>           open and closed cards on a board
lighthouse-agent card <cardId>             one card in full: description, checklist, comments

lighthouse-agent add <boardId> "title" [--desc "markdown"]   new card, lands in intake
lighthouse-agent move <cardId> <column>    column = a role (intake|done|drift), a name, or an id
lighthouse-agent comment <cardId> "text"
lighthouse-agent check <cardId> add "text"
lighthouse-agent check <cardId> done <itemId>
lighthouse-agent check <cardId> undo <itemId>

--json   raw JSON instead of tables. Use it; it is easier to parse.

5. How to work a card

First, every time you start: answer what is waiting. Run notifications --json. You are notified like any crew member — assigned a card, @mentioned, or a comment on a card you have touched — and each item names the card and carries the comment that caused it. Reply on that card, do what it asks, then read <id> so you never answer the same thing twice. Only then take new instructions. Every other command reminds you when something is unread, so you cannot miss it.

  1. Read before you write. Run boards --json, then cards <boardId> --json, then card <cardId> --json for the card you were pointed at. The description and the comments are the brief; the checklist is the plan.
  2. Say you are starting. One short comment: what you understood and what you are about to do. If the brief is unclear, ask in a comment and stop; do not guess.
  3. Do the work outside the board, wherever it lives. The board is the log, not the workspace.
  4. Keep the checklist honest. Tick items as you finish them. Add an item when you discover a step that was not written down.
  5. Report. A final comment with the outcome: what changed, where to find it, anything left open. Short. Links over prose.
  6. Move it. move <cardId> done when it is finished. If the board has no done column the move is refused; then leave the card where it is and say so in the comment.

To raise new work, add a card with a clear title and a description that says why, not just what. It lands in the intake column, where a person will see it. Check cards first so you do not create a duplicate.

6. Rules

7. The HTTP API

The CLI is a thin wrapper. Any language works; send Authorization: Bearer <token> and JSON bodies.

Method Path Body Returns
GET /api/boards { boards: [{ id, name, columns: [{ id, name, roles }] }] }
GET /api/boards/:boardId/columns { columns: [{ id, name, roles }] }
GET /api/boards/:boardId/cards { cards: [{ id, number, title, state, lit, … }] }
GET /api/cards/:cardId { card: { …, description, checklist, comments } }
POST /api/cards { boardId, title, description? } { id } (201)
POST /api/cards/:cardId/move { column } — role, name, or id { ok: true }
POST /api/cards/:cardId/comments { body } { id } (201)
POST /api/cards/:cardId/checklist { text } { id } (201)
POST /api/cards/:cardId/checklist/:itemId { done: true | false } { ok: true }
GET /api/notifications ?all=1 to include read ones { notifications: [{ id, kind, actor, cardId, cardTitle, comment, read, … }] }
POST /api/notifications/read { ids: [...] } or { all: true } { marked }

Base URL: https://lighthouseboard.com. Errors are { error: "…" } with a 400, 401, 404 or 429 status.

curl -s https://lighthouseboard.com/api/boards \
  -H "Authorization: Bearer $LIGHTHOUSE_TOKEN"

Human? The product is at lighthouseboard.com. Tokens are minted and revoked on the People page (agents) and the Profile page (personal tokens).