taskship

Run history

Every launch of an agent is recorded as a run: the agent, the machine, the folder, the agent’s session, when it started and ended, and its exit code. A run is running while the agent is open, ended once it exits, and failed if the agent couldn’t be started. Runs are separate from task workflow status: a run ending doesn’t change the task.

Runs are numbered per task: the first run of PROJ-1 is run #1, and Taskship calls it, for example, “Claude (run #1)”. A run’s mode says what it was for: run to work on the task, or refine to make it ready to work on (see Launching agents). Both kinds share the task’s numbering.

Listing runs

taskship runs PROJ-1 lists a task’s runs, newest first (--json for scripts):

$ taskship runs PROJ-1
RUN  STARTED           AGENT   MODE    STATE  EXIT  COMPLETED  FOLDER            SESSION
#3   2026-11-12 14:03  claude  run     ended  0     ✓          ~/code/myproject  6320422c-f7e9-4ccc-9db9-b2ff8d38d95e
#2   2026-11-12 13:40  claude  run     ended  130              ~/code/myproject  a3036f1a-1c58-4c6d-a349-a29c3f35f74d
#1   2026-11-12 11:15  claude  refine  ended  0                ~/code/myproject  0b9e33d1-58aa-4f7e-8c51-6a1f0d2c7e44

To resume a session, run "claude --resume SESSION" in its folder.

COMPLETED marks the run whose agent marked the task done. To pick up a Claude Code session where it stopped, run claude --resume SESSION from the run’s folder.

Which run finished a task

When a task moves to done, Taskship records when, and show prints it, such as Completed: 2026-11-12 14:31:40 by Claude (run #2); the time is cleared if the task leaves done again.

While an agent runs, its TASKSHIP_RUN_ID environment variable tells the taskship commands it runs which run they belong to: if the agent marks the task done, the task records that run as the one that completed it, and comments the agent adds record the run too, shown in their heading: #2 · 2026-11-12 14:30 · Claude (run #2). Taskship only accepts a run that is still running and belongs to the same task, so a leftover value does nothing. --json output includes completed_at, completed_run_id, and a comment’s run_id.