TallpineTallpine Docs

Backlog

Keep deferred work in a per-project backlog and let an orchestrator run it with tallpine backlog.

View on GitHub

The backlog is a per-project list of deferred work. Humans, orchestrators, workers and reviewers file items; the orchestrator picks them up in order. Open it from the desktop Backlog page, or use tallpine backlog from a terminal or an agent session. Every command takes --project <id> and defaults to TALLPINE_PROJECT_ID, the current session's project, or the current registered repository. Most commands accept --json.

For every flag, see the generated command reference. The commands are also listed in the CLI reference.

Items

Each item has a short ref such as B12, numbered per project. Refs are never reused. tallpine backlog accepts B12, b12 or 12.

FieldMeaning
Title and --noteThe task and a Markdown description.
--done-whenAcceptance criteria.
--agent-notesNotes written for the orchestrator.
--scopePublishing scope override: local, pr or pr-merge. Empty means the orchestrator asks.
--parentA parent item. Nesting is one level deep.
Custom fieldsFree-form key=value pairs set with tallpine backlog set (up to 32 fields, values up to 500 characters; keys are lowercase letters, digits, ., _ or -). key= clears a field.

States

StateMeaning
inboxFiled by an agent and waiting for triage. Each project holds at most 50 inbox items.
openAccepted and queued in drag order.
doneFinished.
droppedAbandoned; kept in the archive.

Progress such as "active" or "in review" is not stored. It is derived from the item's links.

An item can also be held with a reason. tallpine backlog next and run mode skip held items.

File and triage

tallpine backlog add "Rename the settings route"
tallpine backlog add - <<'NOTE'
Title on the first line
Everything after it becomes the note, so backticks and quotes stay literal.
NOTE

Agents file into the inbox. Humans always create open items, and an orchestrator can skip the inbox with --open. Workers can also file follow-ups they will not do now with tallpine report --defer "<line>" (repeatable, at most three lines per report, 1 to 200 characters each).

TaskCommand
Accept an inbox itemtallpine backlog accept <ref>
List itemstallpine backlog ls [--state inbox|open|done|dropped|all] [--held|--unheld] [--parent <ref>] [--q <text>]
Show one item with its linkstallpine backlog show <ref>
Edittallpine backlog edit <ref> [--title ...] [--note ...] [--done-when ...] [--scope ...] [--parent <ref>|--no-parent]
Reordertallpine backlog move <ref> --before <ref> or --after <ref>
Hold and releasetallpine backlog hold <ref> <reason...>, tallpine backlog unhold <ref>
Closetallpine backlog done <ref>, tallpine backlog drop <ref> (both take --reason)
Reopentallpine backlog reopen <ref>

tallpine backlog next prints the topmost open, unheld, unblocked item that is not a parent. Add --parent <ref> to look only at one parent's children.

tallpine backlog link <ref> <kind:value> attaches something to an item, and unlink removes it. The kinds are session, pr, issue, artifact, memory, item and blocked-by. An item with an unfinished blocked-by item is not returned by next.

tallpine backlog link B12 pr:https://github.com/acme/app/pull/42
tallpine backlog link B14 blocked-by:B12

Delete

tallpine backlog delete <ref> permanently removes a done or dropped item together with its links and closed children. It refuses open and inbox items, and a parent that still has an open child. tallpine backlog purge --done --dropped --older-than 30d removes closed items in bulk; use --dry-run first.

Start a worker from an item

tallpine spawn --name rename-route --backlog B12

The item's title, note, done-when and agent notes join the worker's task, and the new session is linked to the item. If the item is held, the spawn is refused unless you add --force. --backlog is for project worker sessions, not orchestrators or standalone workers.

Run mode

Run mode lets an orchestrator work through the backlog ("finish the backlog"). A project has at most one open run. The orchestrator writes the plan and records progress with tallpine backlog run; the Backlog page shows the run card, and adds cost and elapsed time per item from the usage records.

tallpine backlog run start --scope pr --all          # or --parent B3, or B12 B14 ...
tallpine backlog run plan R1 --file plan.json
tallpine backlog run item R1 B12 --status active
tallpine backlog run status
tallpine backlog run finish R1 --summary-file summary.md

--scope names the publishing scope the owner chose for the run:

ScopeThe work is finished when
localThe change is committed in the worktree.
prA pull request is green and reviewed.
pr-mergeThe pull request is merged.

Plan

The plan is JSON. Lanes run in parallel; items inside a lane run in order, each with a model:

{"lanes":[[{"ref":"B12","model":"opus"},{"ref":"B14","model":"sonnet"}],[{"ref":"B13","model":"haiku"}]]}

A blocked item must follow its blocker in the same lane. Parents are not planned; plan their children. The first plan starts the run. These plan lanes belong to run mode; they are not the orchestrator lanes started with tallpine orchestrator new --lane.

Item progress

tallpine backlog run item <run> <item> --status <status> records one of:

StatusNotes
queuedPlanned, not started.
activeNeeds a running run and a free slot. At most 3 items are active per project.
in_reviewA pull request is under review.
needs_youRequires --question: one specific question for the owner.
landedFinished at the run's scope.
heldRequires --reason.
failedA second failure holds the item.

Control and finish

CommandEffect
tallpine backlog run status [<run>]Show the run, its lanes, each item's status, cost and elapsed time. Defaults to the open run.
tallpine backlog run pause <run> [--reason ...] [--resume-at <RFC 3339>]Pause, for example at a usage limit. The reset time appears on the run card.
tallpine backlog run resume <run>Continue a paused run.
tallpine backlog run stop <run>Finish the work in flight and start nothing new.
tallpine backlog run finish <run> (--summary <text> | --summary-file <file|->)End the run with a narrative summary. Refused while an item is active or in review.

Run statuses are planning, running, paused, stopping and done.

Turn it off

Run mode is on by default. Set TALLPINE_BACKLOG_RUN=off on the daemon to hide the Run button and run card and to refuse tallpine backlog run. See Configuration.

On this page