@agimon-ai/doompi-task

Persistent, dependency-aware task graphs and subagent delegation for Pi coding sessions.

Packages

Package details

extension

Install @agimon-ai/doompi-task from npm and Pi will load the resources declared by the package manifest.

$ pi install npm:@agimon-ai/doompi-task
Package
@agimon-ai/doompi-task
Version
0.0.1-alpha.69
Published
Sep 9, 2026
Downloads
9,487/mo · 2,272/wk
Author
agiflow-ai
License
MIT
Types
extension
Size
931.5 KB
Dependencies
7 dependencies · 2 peers
Pi manifest JSON
{
  "extensions": [
    "./dist/extensions/pi.mjs"
  ]
}

Security note

Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.

README

@agimon-ai/doompi-task

Track persistent, dependency-aware tasks in Pi and optionally delegate them through DoomPi Team.

Part of the DoomPi distribution.

Task owns task records and tasks.json. Team owns agents and runs. When both are loaded, Task delegates pending work through Team without merging their stored state.

Alpha: task and delegation contracts may change between releases.

Requirements

  • Node.js 22.19.0 or newer
  • Pi 0.85.0 and Pi TUI 0.85.0

Install

Define a layer and select it in .doom/modes.yaml:

layers:
  task:
    packages: ['@agimon-ai/doompi-task']

majorMode:
  minimal:
    description: Lean mode with persistent tasks.
    layers: [task]

For standalone Pi:

pi install npm:@agimon-ai/doompi-task

Task works without Team for local graph management. Add @agimon-ai/doompi-team to the same selected mode when assign and cancel should launch or control subagents.

Use the task tool

Supported actions are:

Action Purpose
upsert Create tasks or update status, metadata, dependencies, and details
list, get Read the graph or one task
delete Tombstone a task
clear Close and reset the graph after active delegations stop
assign Delegate a pending, unblocked task through Team
cancel Stop a delegated run and return its task to pending
{
  "action": "upsert",
  "tasks": [
    { "ref": "design", "subject": "Design the API" },
    {
      "subject": "Implement the API",
      "blockedBy": ["design"]
    }
  ]
}

The reducer enforces lifecycle transitions and rejects dependency cycles. A graph allows 15 non-deleted tasks by default; updates still apply when full, but new tasks are rejected until space is freed.

TUI

Use /tasks or SPC t l to open the interactive task view. These surfaces require a TUI. The task tool remains available in headless sessions.

Storage and cleanup

The default session-tree store is:

~/.pi/agent/doom-task/<session>/tasks.json

Task is authoritative across transcript compaction because the graph is file-backed. This does not mean Task persists Team membership, intercom, or child-process state.

Defaults and overrides:

Setting Default Purpose
DOOM_TASK_MAX_TASKS 15 Maximum non-deleted tasks
DOOM_TASK_STORE_TTL_MS 30 days Retention for inactive session-tree stores
DOOM_TASK_DELEGATION_TIMEOUT_MS 20 minutes Delegated-run result timeout
DOOM_TASK_STORE Unset Override the complete store file path
DOOM_TASK_COLLAPSE_KEY ctrl+shift+t Override the task-view collapse key

Startup reconciliation removes expired stores and repairs delegation records whose owning process is no longer live.

Task and Team together

Task uses Team's delegation service and records its lifecycle events on the task. It also contributes pending assignments through doom/background-work. Team discovers the selected agent, applies model and tool policy, owns the run, and returns completion or failure. If Team unloads or is replaced, both connections are removed and rebound without leaving a process-global registration. Intercom and Team membership remain Team state; tasks.json remains Task state.

Public API

import { detectCycle, isBlocked, TaskStore, taskExtension } from '@agimon-ai/doompi-task';
import type { Task, TaskStatus } from '@agimon-ai/doompi-task';

Focused subpaths include /tool/schema, /store/reducer, /store/taskStore, /delegation/manager, and /tui/selectors. Pi loads /extensions/pi through package metadata.

Development

Run from this package directory in the workspace:

pnpm build
pnpm typecheck
pnpm test
pnpm lint

Maintained by Agimon.

License

MIT