@agimon-ai/doompi-task
Persistent, dependency-aware task graphs and subagent delegation for Pi coding sessions.
Package details
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