The board

$ ptln board

The work board in the terminal. partyline's own board has five columns: backlog, building, blocked, review, accepted. Piped or redirected, it prints once and exits.

Boards from other trackers appear as sources. An Odoo provider ships with partyline; S switches source, p picks the project. Foreign boards are read on open, not polled.

Keys

KeyDoes what
↑↓←→ / jkhlmove; skip empty columns
fold a chain, or run a card's primary move
aevery move this card has, with what each does
mgrab the card — it follows the arrows, other cards make room, drops it where shown, esc puts it back
e · cedit the title · comment (an internal note on a foreign card)
ddetail: acceptance criteria, the live run log, why it is stuck
s · r · oattach the run's session · review the diff · open the PR
n · D · Pfile a new backlog item · describe a problem for an agent to shape · promote a planned item onto a machine
S · p · iswitch source · pick project/team · import a foreign card as planned work
g · ? · qrefresh · keymap · leave

Moving cards (m)

The drop means what the screen shows, and it applies immediately; the write to the source runs behind it. A refused write reloads the board and reverts the preview.

  • partyline Backlog↑↓ reorders. Order in the Backlog is priority; the other columns follow what happened and are not reorderable.
  • Across columns — a transition. A partyline card can only be carried into columns one of its a-menu actions reaches; the drop runs that action, confirms included.
  • Odoo, across stages — writes stage_id through the server's curated update tool.
  • Odoo, within a stage — writes the kanban sequence. Odoo ranks priority above sequence, so the board displays Odoo's exact order (priority first) and a drop that lands inside a different priority band writes the priority too. The status line says so every time; a drop on a band boundary keeps the card's own priority.

Odoo requirements

  • Scope into a project first (p) — writes act on tasks, not on the projects overview.
  • The server's update tool must accept stage_id (moves) and sequence (row order). A server without them stays read-only and the refusal appears on the status line.