Command Reference

95 generated command pages

Generated from 96 latest CLI contract commands. Alias and meta commands are counted in contracts and surfaced through their canonical command pages.

Auto-generated from pm help --json and pm contracts --json for the currently installed version. v2026.6.17

79
action schemas
96
flag contracts
79
CLI actions
0
extension-only actions
New in this release
pm schema add-type Register custom item types for any project pm history-repair Recover drifted history chains with full audit trail pm delete --dry-run Preview item deletion safely before committing
🚀
Bootstrap
Set up and configure your pm workspace
9 commands
pm config Read or update pm settings for the current workspace or global profile.
pm config [options] [scope] [action] [key] [value]

Reads or updates project/global settings such as definition-of-done, item format, telemetry, and policy toggles.

Arguments
<scope> Config scope: project|global, or action shorthand list|export|get|set for project scope
<action> Config action: get|set|list|export
<key> Config key for get|set: definition-of-done|item-format|history-missing-stream-policy|sprint-release-format-policy|parent-reference-policy|metadata-validation-profile|metadata-required-fields|lifecycle-stale-blocker-reason-patterns|lifecycle-closure-like-blocked-reason-patterns|lifecycle-closure-like-resolution-patterns|lifecycle-closure-like-actual-result-patterns|governance-preset|governance-ownership-enforcement|governance-create-mode-default|governance-close-validation-default|governance-require-close-reason|governance-parent-reference-policy|governance-metadata-validation-profile|governance-force-required-for-stale-lock|test-result-tracking|telemetry-tracking|context
<value> Optional value for set: routed to the right typed flag by key (e.g. config set telemetry-tracking off, config set item-format toon, config set definition-of-done "Tests pass"). Equivalent to --policy/--format/--criterion. context keys still require --default-depth/--section-* flags.
Options
--criterion <text> Criteria value for definition-of-done, metadata-required-fields, or lifecycle pattern keys (repeatable for set)
--clear-criteria Clear criteria-list keys for config set operations
--format <value> Item format for item-format key: toon
--policy <value> Policy key values: history-missing-stream-policy=auto_create|strict_error; sprint-release-format-policy=warn|strict_error; parent-reference-policy=warn|strict_error; governance-preset=minimal|default|strict|custom; governance-ownership-enforcement=none|warn|strict; governance-create-mode-default=progressive|strict; governance-close-validation-default=off|warn|strict; governance-require-close-reason=enabled|disabled; governance-parent-reference-policy=warn|strict_error; governance-metadata-validation-profile=core|strict|custom; governance-force-required-for-stale-lock=enabled|disabled; test-result-tracking=enabled|disabled; telemetry-tracking=enabled|disabled
--value <value> Value for nested leaf settings keys (search_provider, search_mutation_refresh_policy, search_query_expansion_enabled, search_rerank_enabled, openai_base_url, ollama_model, vector_store_adapter, vector_store_collection_name, qdrant_url, lancedb_path, etc.). Equivalent to the positional value.
--default-depth <value> Context default depth: brief|standard|deep
--activity-limit <n> Context default activity limit
--stale-threshold-days <n> Context staleness cutoff in days
--section-hierarchy <value> Enable/disable context hierarchy section (true|false)
--section-activity <value> Enable/disable context activity section (true|false)
--section-progress <value> Enable/disable context progress section (true|false)
--section-blockers <value> Enable/disable context blockers section (true|false)
--section-files <value> Enable/disable context files section (true|false)
--section-workload <value> Enable/disable context workload section (true|false)
--section-staleness <value> Enable/disable context staleness section (true|false)
--section-tests <value> Enable/disable context tests section (true|false)
Examples
pm config project get definition-of-done
pm extension Manage extension lifecycle operations for project or global scope.
pm extension [options] [command] [target]

Compatibility command for package-backed runtime extension lifecycle operations across project or global scope.

Arguments
<target> Extension source/name or scaffold target path (for --init/--scaffold)
Options
--init Generate a starter extension scaffold at target path
--install Install extension from local path, bundled alias, npm: source, wildcard, or GitHub source
--uninstall Uninstall an installed extension
--explore List discovered extensions in selected scope
--manage List managed extensions with update-check metadata
--reload Reload extensions with cache-busted module imports
--watch Use watch mode with --reload
--doctor Run consolidated extension diagnostics (summary/deep modes)
--catalog List bundled first-party extension catalog metadata
--adopt Adopt an existing unmanaged extension into managed metadata
--adopt-all Adopt all unmanaged extensions into managed metadata
--activate Activate a extension in selected scope settings
--deactivate Deactivate a extension in selected scope settings
--project Use project extension scope (default)
--global Use global extension scope
--gh <github-source> Install from GitHub shorthand source (owner/repo[/path])
--ref <ref> Git ref/branch/tag for GitHub install sources
--detail <mode> Extension diagnostics detail mode (summary|deep)
--trace Include actionable registration traces in doctor deep diagnostics
--runtime-probe Opt-in runtime activation probe for manage output parity
--fix-managed-state Adopt unmanaged extensions before diagnostics/update checks
--strict-exit Return non-zero exit when doctor warnings are present (ok=false)
Examples
pm install ./my-package --project
pm health Show project tracker health checks.
pm health [options]

Validates tracker/runtime health including extension triage, migration, and integrity diagnostics.

Options
--strict-directories Treat optional item-type directories as required failures
--check-only Run read-only health diagnostics without refreshing vectors
--check-telemetry Probe telemetry endpoint health and include network diagnostics
--no-refresh Disable automatic vector refresh attempts during health checks
--refresh-vectors Explicitly enable vector refresh attempts during health checks
--verbose-stale-items Include full stale vectorization ID lists in health output
--brief Emit compact health details for low-token agent checks
--summary Emit one-line-style health status with check names and warning count
--skip-vectors Skip vectorization check for a faster run
--skip-integrity Skip item/history file integrity check for a faster run
--skip-drift Skip history drift hash check for a faster run
--full Run all checks including slow integrity, drift, and vectorization checks
--strict-exit Return non-zero exit when health is not ok (advisory telemetry warnings are excluded; see warnings[])
Examples
pm health
pm init Initialize pm storage and defaults for the current workspace.
pm init [options] [prefix]

Bootstraps tracker storage and settings so all other commands can run safely.

Arguments
<prefix> Optional id prefix
Options
--preset <value> Governance preset for new setups: minimal|default|strict
--defaults Use non-interactive setup defaults without opening the wizard
--author <value> Set the default mutation author for this project
--agent-guidance <mode> Agent guidance mode: ask|add|skip|status
--type-preset <name> Register domain item types during init: agile|ops|research
--with-packages Install all bundled first-party packages during initialization
--force Allow initializing tracker files directly in a directory that looks like a workspace root
--verbose Include the full resolved settings tree in the output (default output is a concise summary)
Examples
pm init
pm install Install a pm package into the project package scope by default.
pm install [options] [targets...]

Installs a pm package into project scope by default, using local, npm, GitHub, or bundled alias sources.

Arguments
<targets> Package source (local path, bundled alias, npm: source, wildcard, or GitHub source)
Options
--gh <github-source> Install from GitHub shorthand source (owner/repo[/path])
--ref <ref> Git ref/branch/tag for GitHub install sources
--project Use project package scope (default)
--global Use global package scope
Examples
pm install '*' --project
pm package Manage package lifecycle operations for project or global scope. Backward-compatible with extension packages.
pm package [options] [command] [target]

Installs, explores, manages, diagnoses, adopts, activates, deactivates, and refreshes package-backed pm runtime extensions.

Arguments
<target> Package source/name or scaffold target path (for --init/--scaffold)
Options
--init Generate a starter package scaffold at target path
--install Install package from local path, bundled alias, npm: source, wildcard, or GitHub source
--uninstall Uninstall an installed package
--explore List discovered packages in selected scope
--manage List managed packages with update-check metadata
--reload Reload packages with cache-busted module imports
--watch Use watch mode with --reload
--doctor Run consolidated package diagnostics (summary/deep modes)
--catalog List bundled first-party package catalog metadata
--adopt Adopt an existing unmanaged package into managed metadata
--adopt-all Adopt all unmanaged packages into managed metadata
--activate Activate a package in selected scope settings
--deactivate Deactivate a package in selected scope settings
--project Use project package scope (default)
--global Use global package scope
--gh <github-source> Install from GitHub shorthand source (owner/repo[/path])
--ref <ref> Git ref/branch/tag for GitHub install sources
--detail <mode> Package diagnostics detail mode (summary|deep)
--trace Include actionable registration traces in doctor deep diagnostics
--runtime-probe Opt-in runtime activation probe for manage output parity
--fix-managed-state Adopt unmanaged packages before diagnostics/update checks
--strict-exit Return non-zero exit when doctor warnings are present (ok=false)
Examples
pm install npm:@scope/pm-package --project
pm packages Manage package lifecycle operations for project or global scope. Backward-compatible with extension packages.
pm packages [options] [command] [target]

Installs, explores, manages, diagnoses, adopts, activates, deactivates, and refreshes package-backed pm runtime extensions.

Arguments
<target> Package source/name or scaffold target path (for --init/--scaffold)
Options
--init Generate a starter package scaffold at target path
--install Install package from local path, bundled alias, npm: source, wildcard, or GitHub source
--uninstall Uninstall an installed package
--explore List discovered packages in selected scope
--manage List managed packages with update-check metadata
--reload Reload packages with cache-busted module imports
--watch Use watch mode with --reload
--doctor Run consolidated package diagnostics (summary/deep modes)
--catalog List bundled first-party package catalog metadata
--adopt Adopt an existing unmanaged package into managed metadata
--adopt-all Adopt all unmanaged packages into managed metadata
--activate Activate a package in selected scope settings
--deactivate Deactivate a package in selected scope settings
--project Use project package scope (default)
--global Use global package scope
--gh <github-source> Install from GitHub shorthand source (owner/repo[/path])
--ref <ref> Git ref/branch/tag for GitHub install sources
--detail <mode> Package diagnostics detail mode (summary|deep)
--trace Include actionable registration traces in doctor deep diagnostics
--runtime-probe Opt-in runtime activation probe for manage output parity
--fix-managed-state Adopt unmanaged packages before diagnostics/update checks
--strict-exit Return non-zero exit when doctor warnings are present (ok=false)
Examples
pm install npm:@scope/pm-package --project
pm schema Inspect and manage config-driven runtime schema (types, statuses, fields, presets).
pm schema [options] [subcommand] [name]

Provides deterministic project management workflows for humans and coding agents.

Arguments
<subcommand> Schema subcommand: list, show, show-status, add-type, remove-type, add-status, remove-status, or a custom item type name shorthand
<name> Item type name (add-type/remove-type/show) or status id (show-status/add-status/remove-status)
Options
--description <text> Human description for the custom item type, status, or field
--default-status <status> Default status hint recorded for the custom item type
--folder <dir> Storage folder for items of this custom type
--role <value> Lifecycle role for a custom status (repeatable): draft, active, blocked, terminal, terminal_done, terminal_canceled, default_open, default_close, default_cancel
--order <n> Display/sort order for a custom status
--type <type> Value type for a custom field (add-field): string, number, boolean, string_array
--commands <list> Commands a custom field is wired onto (add-field; repeatable, comma-friendly): create, update, update_many, list, search, calendar, context
--cli-flag <flag> Override the auto-derived CLI flag for a custom field (add-field)
--required Mark a custom field as always required (add-field)
--required-on-create Mark a custom field as required at create time (add-field)
--no-allow-unset Disallow clearing a custom field via --unset (add-field)
--required-types <list> Restrict a custom field's requirement to specific item types (add-field; repeatable, comma-friendly)
--infer Infer custom item types from title-prefix conventions (add-type; preview unless --apply)
--min-count <n> Minimum items sharing a prefix for add-type --infer (default 10)
--apply Register inferred types (add-type --infer); without it the command previews only
--author <value> Mutation author
--force Force ownership/lock override
Examples
pm init
pm upgrade Upgrade the pm CLI/SDK and refresh managed installable pm packages.
pm upgrade [options] [target]

Updates the global pm CLI/SDK and refreshes managed pm packages from recorded install sources.

Arguments
<target> Optional managed package name/source to upgrade; omit to upgrade pm CLI and all managed packages
Options
--dry-run Plan CLI/package upgrades without running npm or reinstalling packages
--cli-only Upgrade only the pm CLI/SDK npm package
--packages-only Upgrade only managed pm packages
--repair Force npm global reinstall when upgrading the pm CLI/SDK
--tag <value> npm dist-tag/version for CLI and registry package upgrades
--package-name <value> Override the CLI package name for self-upgrade testing
--project Use project package scope (default)
--global Use global package scope
Examples
pm upgrade --dry-run
🔍
Triage
Orient, search, and prioritize work
13 commands
pm aggregate Aggregate grouped item counts for governance queries.
pm aggregate [options]

Runs grouped aggregation queries for governance checks such as decomposition by parent/type or triage by status/priority.

Options
--group-by <value> Comma-separated group-by fields (supported: parent,type,priority,status,assignee,tags,sprint,release)
--count Return grouped counts (default behavior)
--completion Add open/in_progress/closed/other counts and completion_pct per group
--sum <field> Sum a numeric field per group
--avg <field> Average a numeric field per group
--include-unparented Include unparented rows when grouping by parent
--status <value> Filter by item status
--type <value> Filter by item type
--tag <value> Filter by tag
--priority <value> Filter by priority
--deadline-before <value> Filter by deadline upper bound (ISO/date string or relative)
--deadline-after <value> Filter by deadline lower bound (ISO/date string or relative)
--assignee <value> Filter by assignee
--assignee-filter <value> Filter assignee presence: assigned|unassigned
--parent <value> Filter by parent item ID
--sprint <value> Filter by sprint
--release <value> Filter by release
Examples
pm aggregate --group-by parent,type --count
pm context Show a token-efficient project context snapshot for next-work decisions.
pm context [options]

Builds an agent-optimized snapshot of critical active work plus near-term agenda context with progressive depth levels.

Options
--date <value> Anchor date/time for agenda window calculations (ISO/date string or relative)
--from <value> Agenda lower bound (ISO/date string or relative)
--to <value> Agenda upper bound (ISO/date string or relative)
--past Include past agenda entries in bounded windows
--type <value> Filter by item type
--tag <value> Filter by tag
--priority <value> Filter by priority
--assignee <value> Filter by assignee
--assignee-filter <value> Filter assignee presence: assigned|unassigned
--sprint <value> Filter by sprint
--release <value> Filter by release
--parent <id> Scope the snapshot to one item's subtree (the item plus all descendants)
--limit <n> Limit focus and agenda rows per section
--format <value> Context output format override: markdown|toon|json
--depth <value> Context depth: brief|standard|deep|full (full = every section, no per-section cap)
--section <value...> Include specific sections (repeatable; overrides --depth)
--activity-limit <n> Limit recent activity entries (default: settings or 10)
--stale-threshold <value> Staleness cutoff in days (e.g. 7 or 7d; default: settings or 7)
Examples
pm context
pm ctx Show a token-efficient project context snapshot for next-work decisions.
pm ctx [options]

Builds an agent-optimized snapshot of critical active work plus near-term agenda context with progressive depth levels.

Options
--date <value> Anchor date/time for agenda window calculations (ISO/date string or relative)
--from <value> Agenda lower bound (ISO/date string or relative)
--to <value> Agenda upper bound (ISO/date string or relative)
--past Include past agenda entries in bounded windows
--type <value> Filter by item type
--tag <value> Filter by tag
--priority <value> Filter by priority
--assignee <value> Filter by assignee
--assignee-filter <value> Filter assignee presence: assigned|unassigned
--sprint <value> Filter by sprint
--release <value> Filter by release
--parent <id> Scope the snapshot to one item's subtree (the item plus all descendants)
--limit <n> Limit focus and agenda rows per section
--format <value> Context output format override: markdown|toon|json
--depth <value> Context depth: brief|standard|deep|full (full = every section, no per-section cap)
--section <value...> Include specific sections (repeatable; overrides --depth)
--activity-limit <n> Limit recent activity entries (default: settings or 10)
--stale-threshold <value> Staleness cutoff in days (e.g. 7 or 7d; default: settings or 7)
Examples
pm context
pm get Show item details by ID.
pm get [options] <id>

Shows details for one item by ID, with optional lower-token projections for agent loops.

Arguments
<id> required Item id
Options
--depth <value> Detail depth: brief|standard|deep|full (full aliases deep; default: standard)
--full Explicit full item read; equivalent to --depth deep (mutually exclusive with --depth/--fields)
--fields <value> Render custom comma-separated item metadata fields (for example: --fields id,title,status,parent,type)
--tree Include descendants rooted at the requested item
--tree-depth <n> Maximum subtree depth for --tree descendants
Examples
pm get pm-a1b2
pm list List active items with optional filters.
pm list [options]

Lists active items with deterministic filtering and ordering.

Options
--status <value> Filter by status
--type <value> Filter by item type
--tag <value> Filter by tag
--priority <value> Filter by priority
--deadline-before <value> Filter by deadline upper bound (ISO/date string or relative)
--deadline-after <value> Filter by deadline lower bound (ISO/date string or relative)
--updated-after <value> Filter by updated_at lower bound: ISO timestamp or signed relative (e.g. "-2h"/"-7d" for the past). "Changed since my last window" → --updated-after <ISO>
--updated-before <value> Filter by updated_at upper bound: ISO timestamp or signed relative (-2h/+1d)
--created-after <value> Filter by created_at lower bound: ISO timestamp or signed relative (-2h/+1d)
--created-before <value> Filter by created_at upper bound: ISO timestamp or signed relative (-2h/+1d)
--ids <value> Filter by explicit item IDs (comma-separated or repeatable)
--assignee <value> Filter by assignee
--assignee-filter <value> Filter assignee presence: assigned|unassigned
--parent <value> Filter by parent item ID
--sprint <value> Filter by sprint
--release <value> Filter by release
--filter-ac-missing Show only items missing acceptance_criteria
--filter-estimates-missing Show only items missing estimated_minutes
--filter-resolution-missing Show only terminal items missing resolution
--filter-metadata-missing Show only items missing any tracked metadata (AC, estimate, or resolution)
--limit <n> Limit returned item count
--offset <n> Skip the first n matching rows before limit is applied
--no-truncate Return every matched row, overriding any --limit (alias: --all)
--include-body Include item body in each returned list row
--compact Render compact list projection fields (mutually exclusive with --brief/--full/--fields)
--brief Ultra-compact output: id, status, type, title only (agent-optimized, mutually exclusive with --compact/--full/--fields)
--full Render full list projection fields (mutually exclusive with --compact/--brief/--fields)
--fields <value> Render custom comma-separated list fields (mutually exclusive with --compact/--brief/--full; valid: --fields id,title)
--sort <value> Sort field: priority|deadline|updated_at|created_at|title|parent (aliases: updated, created)
--order <value> Sort order: asc|desc (requires --sort)
--tree Render rows in parent/child tree order
--tree-depth <n> Maximum recursion depth with --tree (0 keeps root rows only)
--stream Emit line-delimited JSON rows (requires --json)
--has-notes Show only items that have notes
--has-learnings Show only items that have learnings
--has-files Show only items that have linked files
--has-docs Show only items that have linked docs
--has-tests Show only items that have linked tests
--has-comments Show only items that have comments
--has-deps Show only items that have dependencies
--has-body Show only items that have a non-empty body
--has-linked-command Show only items whose linked tests carry a runnable command
--no-notes Show only items that have no notes
--no-learnings Show only items that have no learnings
--no-files Show only items that have no linked files
--no-docs Show only items that have no linked docs
--no-tests Show only items that have no linked tests
--no-comments Show only items that have no comments
--no-deps Show only items that have no dependencies
--empty-body Show only items with an empty body
--no-linked-command Show only items whose linked tests carry no runnable command
--filter-reviewer-missing Show only items missing reviewer
--filter-risk-missing Show only items missing risk
--filter-confidence-missing Show only items missing confidence
--filter-sprint-missing Show only items missing sprint
--filter-release-missing Show only items missing release
Examples
pm list --limit 20
pm list-all List all items with optional filters.
pm list-all [options]

Lists all item states (including terminal states) when you need full visibility.

Options
--status <value> Filter by status
--type <value> Filter by item type
--tag <value> Filter by tag
--priority <value> Filter by priority
--deadline-before <value> Filter by deadline upper bound (ISO/date string or relative)
--deadline-after <value> Filter by deadline lower bound (ISO/date string or relative)
--updated-after <value> Filter by updated_at lower bound: ISO timestamp or signed relative (e.g. "-2h"/"-7d" for the past). "Changed since my last window" → --updated-after <ISO>
--updated-before <value> Filter by updated_at upper bound: ISO timestamp or signed relative (-2h/+1d)
--created-after <value> Filter by created_at lower bound: ISO timestamp or signed relative (-2h/+1d)
--created-before <value> Filter by created_at upper bound: ISO timestamp or signed relative (-2h/+1d)
--ids <value> Filter by explicit item IDs (comma-separated or repeatable)
--assignee <value> Filter by assignee
--assignee-filter <value> Filter assignee presence: assigned|unassigned
--parent <value> Filter by parent item ID
--sprint <value> Filter by sprint
--release <value> Filter by release
--filter-ac-missing Show only items missing acceptance_criteria
--filter-estimates-missing Show only items missing estimated_minutes
--filter-resolution-missing Show only terminal items missing resolution
--filter-metadata-missing Show only items missing any tracked metadata (AC, estimate, or resolution)
--limit <n> Limit returned item count
--offset <n> Skip the first n matching rows before limit is applied
--no-truncate Return every matched row, overriding any --limit (alias: --all)
--include-body Include item body in each returned list row
--compact Render compact list projection fields (mutually exclusive with --brief/--full/--fields)
--brief Ultra-compact output: id, status, type, title only (agent-optimized, mutually exclusive with --compact/--full/--fields)
--full Render full list projection fields (mutually exclusive with --compact/--brief/--fields)
--fields <value> Render custom comma-separated list fields (mutually exclusive with --compact/--brief/--full; valid: --fields id,title)
--sort <value> Sort field: priority|deadline|updated_at|created_at|title|parent (aliases: updated, created)
--order <value> Sort order: asc|desc (requires --sort)
--tree Render rows in parent/child tree order
--tree-depth <n> Maximum recursion depth with --tree (0 keeps root rows only)
--stream Emit line-delimited JSON rows (requires --json)
--has-notes Show only items that have notes
--has-learnings Show only items that have learnings
--has-files Show only items that have linked files
--has-docs Show only items that have linked docs
--has-tests Show only items that have linked tests
--has-comments Show only items that have comments
--has-deps Show only items that have dependencies
--has-body Show only items that have a non-empty body
--has-linked-command Show only items whose linked tests carry a runnable command
--no-notes Show only items that have no notes
--no-learnings Show only items that have no learnings
--no-files Show only items that have no linked files
--no-docs Show only items that have no linked docs
--no-tests Show only items that have no linked tests
--no-comments Show only items that have no comments
--no-deps Show only items that have no dependencies
--empty-body Show only items with an empty body
--no-linked-command Show only items whose linked tests carry no runnable command
--filter-reviewer-missing Show only items missing reviewer
--filter-risk-missing Show only items missing risk
--filter-confidence-missing Show only items missing confidence
--filter-sprint-missing Show only items missing sprint
--filter-release-missing Show only items missing release
Examples
pm list-all --limit 50
pm list-blocked List blocked items with optional filters.
pm list-blocked [options]

Surfaces blocked work that needs intervention.

Options
--type <value> Filter by item type
--tag <value> Filter by tag
--priority <value> Filter by priority
--deadline-before <value> Filter by deadline upper bound (ISO/date string or relative)
--deadline-after <value> Filter by deadline lower bound (ISO/date string or relative)
--updated-after <value> Filter by updated_at lower bound: ISO timestamp or signed relative (e.g. "-2h"/"-7d" for the past). "Changed since my last window" → --updated-after <ISO>
--updated-before <value> Filter by updated_at upper bound: ISO timestamp or signed relative (-2h/+1d)
--created-after <value> Filter by created_at lower bound: ISO timestamp or signed relative (-2h/+1d)
--created-before <value> Filter by created_at upper bound: ISO timestamp or signed relative (-2h/+1d)
--ids <value> Filter by explicit item IDs (comma-separated or repeatable)
--assignee <value> Filter by assignee
--assignee-filter <value> Filter assignee presence: assigned|unassigned
--parent <value> Filter by parent item ID
--sprint <value> Filter by sprint
--release <value> Filter by release
--filter-ac-missing Show only items missing acceptance_criteria
--filter-estimates-missing Show only items missing estimated_minutes
--filter-resolution-missing Show only terminal items missing resolution
--filter-metadata-missing Show only items missing any tracked metadata (AC, estimate, or resolution)
--limit <n> Limit returned item count
--offset <n> Skip the first n matching rows before limit is applied
--no-truncate Return every matched row, overriding any --limit (alias: --all)
--include-body Include item body in each returned list row
--compact Render compact list projection fields (mutually exclusive with --brief/--full/--fields)
--brief Ultra-compact output: id, status, type, title only (agent-optimized, mutually exclusive with --compact/--full/--fields)
--full Render full list projection fields (mutually exclusive with --compact/--brief/--fields)
--fields <value> Render custom comma-separated list fields (mutually exclusive with --compact/--brief/--full; valid: --fields id,title)
--sort <value> Sort field: priority|deadline|updated_at|created_at|title|parent (aliases: updated, created)
--order <value> Sort order: asc|desc (requires --sort)
--tree Render rows in parent/child tree order
--tree-depth <n> Maximum recursion depth with --tree (0 keeps root rows only)
--stream Emit line-delimited JSON rows (requires --json)
--has-notes Show only items that have notes
--has-learnings Show only items that have learnings
--has-files Show only items that have linked files
--has-docs Show only items that have linked docs
--has-tests Show only items that have linked tests
--has-comments Show only items that have comments
--has-deps Show only items that have dependencies
--has-body Show only items that have a non-empty body
--has-linked-command Show only items whose linked tests carry a runnable command
--no-notes Show only items that have no notes
--no-learnings Show only items that have no learnings
--no-files Show only items that have no linked files
--no-docs Show only items that have no linked docs
--no-tests Show only items that have no linked tests
--no-comments Show only items that have no comments
--no-deps Show only items that have no dependencies
--empty-body Show only items with an empty body
--no-linked-command Show only items whose linked tests carry no runnable command
--filter-reviewer-missing Show only items missing reviewer
--filter-risk-missing Show only items missing risk
--filter-confidence-missing Show only items missing confidence
--filter-sprint-missing Show only items missing sprint
--filter-release-missing Show only items missing release
Examples
pm list-blocked --limit 20
pm list-canceled List canceled items with optional filters.
pm list-canceled [options]

Audits intentionally discontinued work.

Options
--type <value> Filter by item type
--tag <value> Filter by tag
--priority <value> Filter by priority
--deadline-before <value> Filter by deadline upper bound (ISO/date string or relative)
--deadline-after <value> Filter by deadline lower bound (ISO/date string or relative)
--updated-after <value> Filter by updated_at lower bound: ISO timestamp or signed relative (e.g. "-2h"/"-7d" for the past). "Changed since my last window" → --updated-after <ISO>
--updated-before <value> Filter by updated_at upper bound: ISO timestamp or signed relative (-2h/+1d)
--created-after <value> Filter by created_at lower bound: ISO timestamp or signed relative (-2h/+1d)
--created-before <value> Filter by created_at upper bound: ISO timestamp or signed relative (-2h/+1d)
--ids <value> Filter by explicit item IDs (comma-separated or repeatable)
--assignee <value> Filter by assignee
--assignee-filter <value> Filter assignee presence: assigned|unassigned
--parent <value> Filter by parent item ID
--sprint <value> Filter by sprint
--release <value> Filter by release
--filter-ac-missing Show only items missing acceptance_criteria
--filter-estimates-missing Show only items missing estimated_minutes
--filter-resolution-missing Show only terminal items missing resolution
--filter-metadata-missing Show only items missing any tracked metadata (AC, estimate, or resolution)
--limit <n> Limit returned item count
--offset <n> Skip the first n matching rows before limit is applied
--no-truncate Return every matched row, overriding any --limit (alias: --all)
--include-body Include item body in each returned list row
--compact Render compact list projection fields (mutually exclusive with --brief/--full/--fields)
--brief Ultra-compact output: id, status, type, title only (agent-optimized, mutually exclusive with --compact/--full/--fields)
--full Render full list projection fields (mutually exclusive with --compact/--brief/--fields)
--fields <value> Render custom comma-separated list fields (mutually exclusive with --compact/--brief/--full; valid: --fields id,title)
--sort <value> Sort field: priority|deadline|updated_at|created_at|title|parent (aliases: updated, created)
--order <value> Sort order: asc|desc (requires --sort)
--tree Render rows in parent/child tree order
--tree-depth <n> Maximum recursion depth with --tree (0 keeps root rows only)
--stream Emit line-delimited JSON rows (requires --json)
--has-notes Show only items that have notes
--has-learnings Show only items that have learnings
--has-files Show only items that have linked files
--has-docs Show only items that have linked docs
--has-tests Show only items that have linked tests
--has-comments Show only items that have comments
--has-deps Show only items that have dependencies
--has-body Show only items that have a non-empty body
--has-linked-command Show only items whose linked tests carry a runnable command
--no-notes Show only items that have no notes
--no-learnings Show only items that have no learnings
--no-files Show only items that have no linked files
--no-docs Show only items that have no linked docs
--no-tests Show only items that have no linked tests
--no-comments Show only items that have no comments
--no-deps Show only items that have no dependencies
--empty-body Show only items with an empty body
--no-linked-command Show only items whose linked tests carry no runnable command
--filter-reviewer-missing Show only items missing reviewer
--filter-risk-missing Show only items missing risk
--filter-confidence-missing Show only items missing confidence
--filter-sprint-missing Show only items missing sprint
--filter-release-missing Show only items missing release
Examples
pm list-canceled --limit 20
pm list-closed List closed items with optional filters.
pm list-closed [options]

Reviews completed work and closure outcomes.

Options
--type <value> Filter by item type
--tag <value> Filter by tag
--priority <value> Filter by priority
--deadline-before <value> Filter by deadline upper bound (ISO/date string or relative)
--deadline-after <value> Filter by deadline lower bound (ISO/date string or relative)
--updated-after <value> Filter by updated_at lower bound: ISO timestamp or signed relative (e.g. "-2h"/"-7d" for the past). "Changed since my last window" → --updated-after <ISO>
--updated-before <value> Filter by updated_at upper bound: ISO timestamp or signed relative (-2h/+1d)
--created-after <value> Filter by created_at lower bound: ISO timestamp or signed relative (-2h/+1d)
--created-before <value> Filter by created_at upper bound: ISO timestamp or signed relative (-2h/+1d)
--ids <value> Filter by explicit item IDs (comma-separated or repeatable)
--assignee <value> Filter by assignee
--assignee-filter <value> Filter assignee presence: assigned|unassigned
--parent <value> Filter by parent item ID
--sprint <value> Filter by sprint
--release <value> Filter by release
--filter-ac-missing Show only items missing acceptance_criteria
--filter-estimates-missing Show only items missing estimated_minutes
--filter-resolution-missing Show only terminal items missing resolution
--filter-metadata-missing Show only items missing any tracked metadata (AC, estimate, or resolution)
--limit <n> Limit returned item count
--offset <n> Skip the first n matching rows before limit is applied
--no-truncate Return every matched row, overriding any --limit (alias: --all)
--include-body Include item body in each returned list row
--compact Render compact list projection fields (mutually exclusive with --brief/--full/--fields)
--brief Ultra-compact output: id, status, type, title only (agent-optimized, mutually exclusive with --compact/--full/--fields)
--full Render full list projection fields (mutually exclusive with --compact/--brief/--fields)
--fields <value> Render custom comma-separated list fields (mutually exclusive with --compact/--brief/--full; valid: --fields id,title)
--sort <value> Sort field: priority|deadline|updated_at|created_at|title|parent (aliases: updated, created)
--order <value> Sort order: asc|desc (requires --sort)
--tree Render rows in parent/child tree order
--tree-depth <n> Maximum recursion depth with --tree (0 keeps root rows only)
--stream Emit line-delimited JSON rows (requires --json)
--has-notes Show only items that have notes
--has-learnings Show only items that have learnings
--has-files Show only items that have linked files
--has-docs Show only items that have linked docs
--has-tests Show only items that have linked tests
--has-comments Show only items that have comments
--has-deps Show only items that have dependencies
--has-body Show only items that have a non-empty body
--has-linked-command Show only items whose linked tests carry a runnable command
--no-notes Show only items that have no notes
--no-learnings Show only items that have no learnings
--no-files Show only items that have no linked files
--no-docs Show only items that have no linked docs
--no-tests Show only items that have no linked tests
--no-comments Show only items that have no comments
--no-deps Show only items that have no dependencies
--empty-body Show only items with an empty body
--no-linked-command Show only items whose linked tests carry no runnable command
--filter-reviewer-missing Show only items missing reviewer
--filter-risk-missing Show only items missing risk
--filter-confidence-missing Show only items missing confidence
--filter-sprint-missing Show only items missing sprint
--filter-release-missing Show only items missing release
Examples
pm list-closed --limit 20 --type Task
pm list-draft List draft items with optional filters.
pm list-draft [options]

Finds incompletely defined items that need refinement before execution.

Options
--type <value> Filter by item type
--tag <value> Filter by tag
--priority <value> Filter by priority
--deadline-before <value> Filter by deadline upper bound (ISO/date string or relative)
--deadline-after <value> Filter by deadline lower bound (ISO/date string or relative)
--updated-after <value> Filter by updated_at lower bound: ISO timestamp or signed relative (e.g. "-2h"/"-7d" for the past). "Changed since my last window" → --updated-after <ISO>
--updated-before <value> Filter by updated_at upper bound: ISO timestamp or signed relative (-2h/+1d)
--created-after <value> Filter by created_at lower bound: ISO timestamp or signed relative (-2h/+1d)
--created-before <value> Filter by created_at upper bound: ISO timestamp or signed relative (-2h/+1d)
--ids <value> Filter by explicit item IDs (comma-separated or repeatable)
--assignee <value> Filter by assignee
--assignee-filter <value> Filter assignee presence: assigned|unassigned
--parent <value> Filter by parent item ID
--sprint <value> Filter by sprint
--release <value> Filter by release
--filter-ac-missing Show only items missing acceptance_criteria
--filter-estimates-missing Show only items missing estimated_minutes
--filter-resolution-missing Show only terminal items missing resolution
--filter-metadata-missing Show only items missing any tracked metadata (AC, estimate, or resolution)
--limit <n> Limit returned item count
--offset <n> Skip the first n matching rows before limit is applied
--no-truncate Return every matched row, overriding any --limit (alias: --all)
--include-body Include item body in each returned list row
--compact Render compact list projection fields (mutually exclusive with --brief/--full/--fields)
--brief Ultra-compact output: id, status, type, title only (agent-optimized, mutually exclusive with --compact/--full/--fields)
--full Render full list projection fields (mutually exclusive with --compact/--brief/--fields)
--fields <value> Render custom comma-separated list fields (mutually exclusive with --compact/--brief/--full; valid: --fields id,title)
--sort <value> Sort field: priority|deadline|updated_at|created_at|title|parent (aliases: updated, created)
--order <value> Sort order: asc|desc (requires --sort)
--tree Render rows in parent/child tree order
--tree-depth <n> Maximum recursion depth with --tree (0 keeps root rows only)
--stream Emit line-delimited JSON rows (requires --json)
--has-notes Show only items that have notes
--has-learnings Show only items that have learnings
--has-files Show only items that have linked files
--has-docs Show only items that have linked docs
--has-tests Show only items that have linked tests
--has-comments Show only items that have comments
--has-deps Show only items that have dependencies
--has-body Show only items that have a non-empty body
--has-linked-command Show only items whose linked tests carry a runnable command
--no-notes Show only items that have no notes
--no-learnings Show only items that have no learnings
--no-files Show only items that have no linked files
--no-docs Show only items that have no linked docs
--no-tests Show only items that have no linked tests
--no-comments Show only items that have no comments
--no-deps Show only items that have no dependencies
--empty-body Show only items with an empty body
--no-linked-command Show only items whose linked tests carry no runnable command
--filter-reviewer-missing Show only items missing reviewer
--filter-risk-missing Show only items missing risk
--filter-confidence-missing Show only items missing confidence
--filter-sprint-missing Show only items missing sprint
--filter-release-missing Show only items missing release
Examples
pm list-draft --limit 20
pm list-in-progress List in-progress items with optional filters.
pm list-in-progress [options]

Tracks active execution and owner progress.

Options
--type <value> Filter by item type
--tag <value> Filter by tag
--priority <value> Filter by priority
--deadline-before <value> Filter by deadline upper bound (ISO/date string or relative)
--deadline-after <value> Filter by deadline lower bound (ISO/date string or relative)
--updated-after <value> Filter by updated_at lower bound: ISO timestamp or signed relative (e.g. "-2h"/"-7d" for the past). "Changed since my last window" → --updated-after <ISO>
--updated-before <value> Filter by updated_at upper bound: ISO timestamp or signed relative (-2h/+1d)
--created-after <value> Filter by created_at lower bound: ISO timestamp or signed relative (-2h/+1d)
--created-before <value> Filter by created_at upper bound: ISO timestamp or signed relative (-2h/+1d)
--ids <value> Filter by explicit item IDs (comma-separated or repeatable)
--assignee <value> Filter by assignee
--assignee-filter <value> Filter assignee presence: assigned|unassigned
--parent <value> Filter by parent item ID
--sprint <value> Filter by sprint
--release <value> Filter by release
--filter-ac-missing Show only items missing acceptance_criteria
--filter-estimates-missing Show only items missing estimated_minutes
--filter-resolution-missing Show only terminal items missing resolution
--filter-metadata-missing Show only items missing any tracked metadata (AC, estimate, or resolution)
--limit <n> Limit returned item count
--offset <n> Skip the first n matching rows before limit is applied
--no-truncate Return every matched row, overriding any --limit (alias: --all)
--include-body Include item body in each returned list row
--compact Render compact list projection fields (mutually exclusive with --brief/--full/--fields)
--brief Ultra-compact output: id, status, type, title only (agent-optimized, mutually exclusive with --compact/--full/--fields)
--full Render full list projection fields (mutually exclusive with --compact/--brief/--fields)
--fields <value> Render custom comma-separated list fields (mutually exclusive with --compact/--brief/--full; valid: --fields id,title)
--sort <value> Sort field: priority|deadline|updated_at|created_at|title|parent (aliases: updated, created)
--order <value> Sort order: asc|desc (requires --sort)
--tree Render rows in parent/child tree order
--tree-depth <n> Maximum recursion depth with --tree (0 keeps root rows only)
--stream Emit line-delimited JSON rows (requires --json)
--has-notes Show only items that have notes
--has-learnings Show only items that have learnings
--has-files Show only items that have linked files
--has-docs Show only items that have linked docs
--has-tests Show only items that have linked tests
--has-comments Show only items that have comments
--has-deps Show only items that have dependencies
--has-body Show only items that have a non-empty body
--has-linked-command Show only items whose linked tests carry a runnable command
--no-notes Show only items that have no notes
--no-learnings Show only items that have no learnings
--no-files Show only items that have no linked files
--no-docs Show only items that have no linked docs
--no-tests Show only items that have no linked tests
--no-comments Show only items that have no comments
--no-deps Show only items that have no dependencies
--empty-body Show only items with an empty body
--no-linked-command Show only items whose linked tests carry no runnable command
--filter-reviewer-missing Show only items missing reviewer
--filter-risk-missing Show only items missing risk
--filter-confidence-missing Show only items missing confidence
--filter-sprint-missing Show only items missing sprint
--filter-release-missing Show only items missing release
Examples
pm list-in-progress --assignee codex-agent --limit 20
pm list-open List open items with optional filters.
pm list-open [options]

Shows work that is ready to claim and start.

Options
--type <value> Filter by item type
--tag <value> Filter by tag
--priority <value> Filter by priority
--deadline-before <value> Filter by deadline upper bound (ISO/date string or relative)
--deadline-after <value> Filter by deadline lower bound (ISO/date string or relative)
--updated-after <value> Filter by updated_at lower bound: ISO timestamp or signed relative (e.g. "-2h"/"-7d" for the past). "Changed since my last window" → --updated-after <ISO>
--updated-before <value> Filter by updated_at upper bound: ISO timestamp or signed relative (-2h/+1d)
--created-after <value> Filter by created_at lower bound: ISO timestamp or signed relative (-2h/+1d)
--created-before <value> Filter by created_at upper bound: ISO timestamp or signed relative (-2h/+1d)
--ids <value> Filter by explicit item IDs (comma-separated or repeatable)
--assignee <value> Filter by assignee
--assignee-filter <value> Filter assignee presence: assigned|unassigned
--parent <value> Filter by parent item ID
--sprint <value> Filter by sprint
--release <value> Filter by release
--filter-ac-missing Show only items missing acceptance_criteria
--filter-estimates-missing Show only items missing estimated_minutes
--filter-resolution-missing Show only terminal items missing resolution
--filter-metadata-missing Show only items missing any tracked metadata (AC, estimate, or resolution)
--limit <n> Limit returned item count
--offset <n> Skip the first n matching rows before limit is applied
--no-truncate Return every matched row, overriding any --limit (alias: --all)
--include-body Include item body in each returned list row
--compact Render compact list projection fields (mutually exclusive with --brief/--full/--fields)
--brief Ultra-compact output: id, status, type, title only (agent-optimized, mutually exclusive with --compact/--full/--fields)
--full Render full list projection fields (mutually exclusive with --compact/--brief/--fields)
--fields <value> Render custom comma-separated list fields (mutually exclusive with --compact/--brief/--full; valid: --fields id,title)
--sort <value> Sort field: priority|deadline|updated_at|created_at|title|parent (aliases: updated, created)
--order <value> Sort order: asc|desc (requires --sort)
--tree Render rows in parent/child tree order
--tree-depth <n> Maximum recursion depth with --tree (0 keeps root rows only)
--stream Emit line-delimited JSON rows (requires --json)
--has-notes Show only items that have notes
--has-learnings Show only items that have learnings
--has-files Show only items that have linked files
--has-docs Show only items that have linked docs
--has-tests Show only items that have linked tests
--has-comments Show only items that have comments
--has-deps Show only items that have dependencies
--has-body Show only items that have a non-empty body
--has-linked-command Show only items whose linked tests carry a runnable command
--no-notes Show only items that have no notes
--no-learnings Show only items that have no learnings
--no-files Show only items that have no linked files
--no-docs Show only items that have no linked docs
--no-tests Show only items that have no linked tests
--no-comments Show only items that have no comments
--no-deps Show only items that have no dependencies
--empty-body Show only items with an empty body
--no-linked-command Show only items whose linked tests carry no runnable command
--filter-reviewer-missing Show only items missing reviewer
--filter-risk-missing Show only items missing risk
--filter-confidence-missing Show only items missing confidence
--filter-sprint-missing Show only items missing sprint
--filter-release-missing Show only items missing release
Examples
pm list-open --priority 0 --limit 10
pm search Search items with keyword, semantic, or hybrid retrieval.
pm search [options] <keywords...>

Finds relevant items by keyword, semantic, or hybrid retrieval modes.

Arguments
<keywords> required Keyword query tokens
Options
--mode <value> Search mode: keyword|semantic|hybrid (default: keyword)
--semantic Shorthand for --mode semantic
--hybrid Shorthand for --mode hybrid
--match-mode <value> Token match mode: and|or|exact (default: or with all-terms ranking bonus; and = hard-require every token; exact = exact phrase)
--min-score <value> Per-query minimum score threshold (finite number >= 0); overrides settings search.score_threshold for this query only
--count Return only the count of matching items (post-filter/threshold, pre-limit); skips hit rows
--semantic-weight <value> Override hybrid semantic weight for this query (0..1); invalid values fall back to settings
--include-linked Include linked files, docs, and tests in the searchable corpus
--title-exact Require exact normalized title match for the full query string
--phrase-exact Require exact normalized phrase match in searchable text
--status <value> Filter by status before query (open/closed/canceled aliases or configured status id; CSV)
--type <value> Filter by item type
--tag <value> Filter by tag
--priority <value> Filter by priority
--deadline-before <value> Filter by deadline upper bound (ISO/date string or relative)
--deadline-after <value> Filter by deadline lower bound (ISO/date string or relative)
--updated-after <value> Filter by updated_at lower bound: ISO timestamp or signed relative (e.g. "-2h"/"-7d" for the past)
--updated-before <value> Filter by updated_at upper bound: ISO timestamp or signed relative (-2h/+1d)
--created-after <value> Filter by created_at lower bound: ISO timestamp or signed relative (-2h/+1d)
--created-before <value> Filter by created_at upper bound: ISO timestamp or signed relative (-2h/+1d)
--assignee <value> Filter by assignee
--sprint <value> Filter by sprint
--release <value> Filter by release
--parent <value> Filter by parent item ID
--compact Render compact search hits (default; mutually exclusive with --full/--fields)
--full Render full search hits with nested item payloads (mutually exclusive with --compact/--fields)
--fields <value> Render custom comma-separated search hit fields (mutually exclusive with --compact/--full; valid: --fields id,title,score; invalid: --full --fields id,title)
--limit <n> Limit returned item count
--has-notes Show only items that have notes
--has-learnings Show only items that have learnings
--has-files Show only items that have linked files
--has-docs Show only items that have linked docs
--has-tests Show only items that have linked tests
--has-comments Show only items that have comments
--has-deps Show only items that have dependencies
--has-body Show only items that have a non-empty body
--has-linked-command Show only items whose linked tests carry a runnable command
--no-notes Show only items that have no notes
--no-learnings Show only items that have no learnings
--no-files Show only items that have no linked files
--no-docs Show only items that have no linked docs
--no-tests Show only items that have no linked tests
--no-comments Show only items that have no comments
--no-deps Show only items that have no dependencies
--empty-body Show only items with an empty body
--no-linked-command Show only items whose linked tests carry no runnable command
--filter-reviewer-missing Show only items missing reviewer
--filter-risk-missing Show only items missing risk
--filter-confidence-missing Show only items missing confidence
--filter-sprint-missing Show only items missing sprint
--filter-release-missing Show only items missing release
Examples
pm search "lock stale retry" --mode keyword --limit 10
Lifecycle
Create, claim, update, and close work items
12 commands
pm append Append text to an item's body.
pm append [options] <id> [text]

Adds implementation notes to body without replacing existing content.

Arguments
<id> required Item id
<text> Optional body text shorthand (equivalent to --body; use - for stdin)
Options
--body <value> Text to append to body (or - for stdin)
--author <value> Mutation author
--message <value> Mutation message
--force Force ownership override
Examples
pm append pm-a1b2 --body "Implemented retry with bounded backoff." --message "Record implementation detail"
pm claim Claim an item for active work.
pm claim [options] <id>

Claims an item to signal active ownership and reduce conflicts.

Arguments
<id> required Item id
Options
--author <value> Mutation author
--message <value> History message
--force Force claim override
--if-available Skip silently when the item is already claimed by another author (returns skipped=true)
Examples
pm claim pm-a1b2 --author "codex-agent" --message "Claim for implementation"
pm close Close an item. Close reason requirement follows governance.require_close_reason.
pm close [options] <id> [text]

Transitions work to terminal closed state with explicit rationale.

Arguments
<id> required Item id
<text> Close reason text (alias: --reason)
Options
-r, --reason <value> Close reason text (alias for positional <text>)
--close-reason <value> Close reason text (alias for positional <text>)
-d, --duplicate-of <id> Close as a duplicate of the canonical item id and auto-fill duplicate closure metadata
--author <value> Mutation author
-m, --message <value> History message
--validate-close [mode] Validate closure metadata before close: "off", "warn", or "strict" (default: settings governance preset)
--resolution <value> Set the closure resolution summary inline (same field --validate-close strict checks; previously required a prior pm update)
--expected-result <value> Set the expected-result note inline (closure validation field)
--expected <value> Short alias for --expected-result
--actual-result <value> Set the actual-result note inline (closure validation field)
--actual <value> Short alias for --actual-result
--force Force ownership override
Examples
pm close pm-a1b2 "All acceptance criteria met" --author "codex-agent" --message "Close after verification"
pm close-task Lifecycle alias: close an item and release assignment metadata.
pm close-task [options] <id> [reason]

Lifecycle alias that closes with reason text and clears assignment metadata.

Arguments
<id> required Item id
<reason> Close reason text
Options
--author <value> Mutation author
--message <value> History message
--validate-close <value> Close-time validation mode: off|warn|strict
--force Force ownership or terminal override when required
Examples
pm close-task pm-a1b2 "All acceptance criteria met" --author "codex-agent" --message "Close and handoff"
pm create Create a new project management item.
pm create [options] [typeOrTitle] [title]

Creates a new planning item with deterministic metadata and history.

Arguments
<typeOrTitle> Item title, or item type when a title follows (e.g. `pm create task "Fix bug"`)
<title> Item title when the first argument is an item type
Options
--title, -t <value> required Item title [required] (or pass title as the first positional argument)
--description, -d <value> Item description (allow empty string)
--type <value> Item type (built-ins plus any configured custom types)
--template <value> Apply named create template defaults before explicit flags
--create-mode <value> Create required-option policy mode: strict|progressive
--schedule-preset <value> Scheduling preset for Reminder|Meeting|Event: lightweight
--status, -s <value> Item status
--priority, -p <value> Priority 0..4
--tags <value> Comma-separated tags
--add-tags <value> Add tags additively on top of --tags (repeatable; CSV accepted)
--body, -b <value> Item markdown body (allow empty string)
--deadline <value> Deadline (ISO/date string or relative +6h/+1d/+2w/+6m)
--estimate, --estimated-minutes <value> Estimated minutes
--acceptance-criteria <value> Acceptance criteria (allow empty string)
--definition-of-ready <value> Definition of ready (allow empty string)
--order <value> Planning order/rank integer
--goal <value> Goal identifier
--objective <value> Objective identifier
--value <value> Business value summary
--impact <value> Business impact summary
--outcome <value> Expected outcome summary
--why-now <value> Why-now rationale
--author <value> Mutation author
--message <value> History message (allow empty string)
--assignee <value> Item assignee
--parent <value> Parent item ID
--allow-missing-parent Allow creating with an unresolved parent reference and emit a validation warning
--reviewer <value> Reviewer
--risk <value> Risk level: low|med|medium|high|critical (med persists as medium)
--confidence <value> Confidence level: 0..100|low|med|medium|high (med persists as medium)
--sprint <value> Sprint identifier
--release <value> Release identifier
--blocked-by <value> Blocked-by item ID or reason
--blocked-reason <value> Blocked reason
--unblock-note <value> Unblock rationale note
--reporter <value> Issue reporter
--severity <value> Issue severity: low|med|medium|high|critical (med persists as medium)
--environment <value> Issue environment context
--repro-steps <value> Issue reproduction steps
--resolution <value> Issue resolution summary
--expected-result <value> Issue expected behavior
--expected <value> Short alias for --expected-result
--actual-result <value> Issue observed behavior
--actual <value> Short alias for --actual-result
--affected-version <value> Affected version identifier
--fixed-version <value> Fixed version identifier
--component <value> Issue component ownership
--regression <value> Regression marker: true|false|1|0
--customer-impact <value> Customer impact summary
--dep <value> Seed dependency entry (key=value CSV, markdown key:value lines, or - for stdin; repeatable)
--type-option <value> Type option key=value or key=<name>,value=<value> (also accepts key:value and markdown pairs; use - for stdin; repeatable)
--field <name=value> Set a field declared by an active extension registerItemFields registration (repeatable)
--unset <field> Clear scalar metadata field by name (repeatable)
--reminder <value> Seed reminder entry at=<iso|relative>,text=<text> (also accepts markdown pairs and - for stdin; repeatable)
--event <value> Seed event entry start=<iso|relative>,end=<iso|relative>,title=<text>,all_day=<true|false>,recur_* fields (also accepts markdown pairs and - for stdin; repeatable)
--comment <value> Seed comment entry (text=<value> CSV/markdown pairs or - for stdin; repeatable)
--note <value> Seed note entry (text=<value> CSV/markdown pairs or - for stdin; repeatable)
--learning <value> Seed learning entry (text=<value> CSV/markdown pairs or - for stdin; repeatable)
--file <value> Seed linked file entry (CSV/markdown pairs or - for stdin; repeatable)
--test <value> Seed linked test entry (CSV/markdown pairs or - for stdin; repeatable)
--doc <value> Seed linked doc entry (CSV/markdown pairs or - for stdin; repeatable)
--body-file <path> Load the item markdown body from a file (mutually exclusive with --body)
--clear-deps Clear dependency entries
--clear-comments Clear comments
--clear-notes Clear notes
--clear-learnings Clear learnings
--clear-files Clear linked files
--clear-tests Clear linked tests
--clear-docs Clear linked docs
--clear-reminders Clear reminders
--clear-events Clear events
--clear-type-options Clear type options
Examples
pm create --title "Harden lock flow" --description "Improve stale lock handling" --type Task --status open --priority 1 --message "Create lock hardening task" --create-mode progressive
pm delete Delete an item and record the change in history.
pm delete [options] <id>

Removes an item while preserving history evidence and lock/ownership checks.

Arguments
<id> required Item id
Options
--author <value> Mutation author
--message <value> History message
--force Force ownership override
--dry-run Preview the item file that would be deleted without mutating
Examples
pm delete pm-a1b2 --author "codex-agent" --message "Remove duplicate item"
pm pause-task Lifecycle alias: move an item to open and release its claim.
pm pause-task [options] <id>

Lifecycle alias that sets status to open and releases active assignment.

Arguments
<id> required Item id
Options
--author <value> Mutation author
--message <value> History message
--force Force ownership override when required
Examples
pm pause-task pm-a1b2 --author "codex-agent" --message "Pause for dependency unblock"
pm release Release an item's active claim.
pm release [options] <id>

Releases an active claim when paused, handed off, or completed.

Arguments
<id> required Item id
Options
--author <value> Mutation author
--message <value> History message
--allow-audit-release Allow non-owner release handoffs without requiring --force
--force Force release override
Examples
pm release pm-a1b2 --author "codex-agent" --message "Release after closure"
pm restore Restore an item to an earlier timestamp or version.
pm restore [options] <id> <target>

Restores an item to a prior timestamp/version with history replay safety.

Arguments
<id> required Item id
<target> required Restore target timestamp or version number
Options
--author <value> Mutation author
--message <value> History message
--force Force ownership/lock override
Examples
pm restore pm-a1b2 2026-04-01T00:00:00.000Z --author "codex-agent" --message "Rollback to known-good state"
pm start-task Lifecycle alias: claim an item and move it to in_progress.
pm start-task [options] <id>

Lifecycle alias that claims an item and sets status to in_progress.

Arguments
<id> required Item id
Options
--author <value> Mutation author
--message <value> History message
--force Force ownership or terminal override when required
Examples
pm start-task pm-a1b2 --author "codex-agent" --message "Start implementation"
pm update Update item fields and metadata.
pm update [options] <id>

Mutates existing item fields while preserving history and lock safety.

Arguments
<id> required Item id
Options
--title, -t <value> Set title
--description, -d <value> Set description
--body, -b <value> Set body (allow empty string)
--status, -s <value> Set status (use close command for closed)
--close-reason <value> Set close reason
--priority, -p <value> Set priority
--type <value> Set type
--tags <value> Set comma-separated tags (replaces existing). Use --add-tags / --remove-tags to mutate additively.
--add-tags <value> Add tags to the existing list without replacing it (repeatable; CSV accepted)
--remove-tags <value> Remove tags from the existing list (repeatable; CSV accepted)
--deadline <value> Set deadline (ISO/date string or relative)
--estimate, --estimated-minutes <value> Set estimated minutes
--acceptance-criteria <value> Set acceptance criteria
--definition-of-ready <value> Set definition of ready
--order <value> Set planning order/rank integer
--goal <value> Set goal identifier
--objective <value> Set objective identifier
--value <value> Set business value summary
--impact <value> Set business impact summary
--outcome <value> Set expected outcome summary
--why-now <value> Set why-now rationale
--author <value> Mutation author
--message <value> Mutation message
--assignee <value> Set assignee
--parent <value> Set parent item ID
--reviewer <value> Set reviewer
--risk <value> Set risk level: low|med|medium|high|critical (med persists as medium)
--confidence <value> Set confidence level: 0..100|low|med|medium|high (med persists as medium)
--sprint <value> Set sprint identifier
--release <value> Set release identifier
--blocked-by <value> Set blocked-by item ID or reason
--blocked-reason <value> Set blocked reason
--unblock-note <value> Set unblock rationale note
--reporter <value> Set issue reporter
--severity <value> Set issue severity: low|med|medium|high|critical (med persists as medium)
--environment <value> Set issue environment context
--repro-steps <value> Set issue reproduction steps
--resolution <value> Set issue resolution summary
--expected-result <value> Set issue expected behavior
--expected <value> Short alias for --expected-result
--actual-result <value> Set issue observed behavior
--actual <value> Short alias for --actual-result
--affected-version <value> Set affected version identifier
--fixed-version <value> Set fixed version identifier
--component <value> Set issue component ownership
--regression <value> Set regression marker: true|false|1|0
--customer-impact <value> Set customer impact summary
--dep <value> Add dependency entries id=<id>,kind=<value>,author=<value>,created_at=<iso|now>,source_kind=<value> (repeatable)
--dep-remove <value> Remove dependencies by id or id=<id>,kind=<value>,source_kind=<value> selectors (repeatable)
--comment <value> Append comment seed author=<value>,created_at=<iso|now>,text=<value> (also accepts markdown pairs and - for stdin; repeatable)
--note <value> Append note seed author=<value>,created_at=<iso|now>,text=<value> (also accepts markdown pairs and - for stdin; repeatable)
--learning <value> Append learning seed author=<value>,created_at=<iso|now>,text=<value> (also accepts markdown pairs and - for stdin; repeatable)
--file <value> Append linked file path=<value>,scope=<project|global>,note=<text> (also accepts markdown pairs and - for stdin; repeatable)
--test <value> Append linked test command=<value>,path=<value>,scope=<project|global>,timeout_seconds=<n>,pm_context_mode=<schema|tracker|auto> (also accepts markdown pairs and - for stdin; repeatable)
--doc <value> Append linked doc path=<value>,scope=<project|global>,note=<text> (also accepts markdown pairs and - for stdin; repeatable)
--reminder <value> Set reminders at=<iso|relative>,text=<text> (also accepts markdown pairs and - for stdin; repeatable)
--event <value> Set events start=<iso|relative>,end=<iso|relative>,title=<text>,all_day=<true|false>,recur_* fields (also accepts markdown pairs and - for stdin; repeatable)
--type-option <value> Set type options key=value or key=<name>,value=<value> (also accepts key:value and markdown pairs; use - for stdin; repeatable)
--field <name=value> Set a field declared by an active extension registerItemFields registration (repeatable)
--unset <field> Clear scalar metadata field by name (repeatable)
--body-file <path> Load the item markdown body from a file (mutually exclusive with --body)
--replace-deps Atomically replace dependency entries with the provided --dep values
--replace-tests Atomically replace linked test entries with the provided --test values
--clear-deps Clear dependency entries
--clear-comments Clear comments
--clear-notes Clear notes
--clear-learnings Clear learnings
--clear-files Clear linked files
--clear-tests Clear linked tests
--clear-docs Clear linked docs
--clear-reminders Clear reminders
--clear-events Clear events
--clear-type-options Clear type options
--allow-audit-update Allow non-owner metadata-only audit updates without requiring --force
--allow-audit-dep-update Allow non-owner append-only dependency updates without requiring --force
--force Force ownership override
Examples
pm update pm-a1b2 --status in_progress --message "Start implementation"
pm update-many Bulk-update matched items with dry-run plans and rollback checkpoints.
pm update-many [options]

Bulk-updates matched item sets with dry-run previews and rollback checkpoints for safe large-scale metadata changes.

Options
--filter-status <value> Filter by status before applying updates
--filter-type <value> Filter by item type before applying updates
--filter-tag <value> Filter by tag before applying updates
--filter-priority <value> Filter by priority before applying updates
--filter-deadline-before <value> Filter by deadline upper bound before applying updates
--filter-deadline-after <value> Filter by deadline lower bound before applying updates
--filter-updated-after <value> Filter by updated_at lower bound before applying updates (ISO/relative)
--filter-updated-before <value> Filter by updated_at upper bound before applying updates (ISO/relative)
--filter-created-after <value> Filter by created_at lower bound before applying updates (ISO/relative)
--filter-created-before <value> Filter by created_at upper bound before applying updates (ISO/relative)
--filter-assignee <value> Filter by assignee before applying updates
--filter-assignee-filter <value> Filter assignee presence: assigned|unassigned before applying updates
--filter-parent <value> Filter by parent item ID before applying updates
--filter-sprint <value> Filter by sprint before applying updates
--filter-release <value> Filter by release before applying updates
--filter-ac-missing Select only items missing acceptance_criteria (bulk backfill)
--filter-estimates-missing Select only items missing estimated_minutes (bulk backfill)
--filter-resolution-missing Select only terminal items missing resolution (bulk backfill)
--filter-metadata-missing Select only items missing any tracked metadata (AC, estimate, or resolution)
--filter-has-notes Select only items that have notes before applying updates
--filter-no-notes Select only items that have no notes before applying updates
--filter-has-learnings Select only items that have learnings before applying updates
--filter-no-learnings Select only items that have no learnings before applying updates
--filter-has-files Select only items that have linked files before applying updates
--filter-no-files Select only items that have no linked files before applying updates
--filter-has-docs Select only items that have linked docs before applying updates
--filter-no-docs Select only items that have no linked docs before applying updates
--filter-has-tests Select only items that have linked tests before applying updates
--filter-no-tests Select only items that have no linked tests before applying updates
--filter-has-comments Select only items that have comments before applying updates
--filter-no-comments Select only items that have no comments before applying updates
--filter-has-deps Select only items that have dependencies before applying updates
--filter-no-deps Select only items that have no dependencies before applying updates
--filter-has-body Select only items that have a non-empty body before applying updates
--filter-empty-body Select only items with an empty body before applying updates
--filter-has-linked-command Select only items whose linked tests carry a runnable command before applying updates
--filter-no-linked-command Select only items whose linked tests carry no runnable command before applying updates
--filter-reviewer-missing Select only items missing reviewer before applying updates
--filter-risk-missing Select only items missing risk before applying updates
--filter-confidence-missing Select only items missing confidence before applying updates
--filter-sprint-missing Select only items missing sprint before applying updates
--filter-release-missing Select only items missing release before applying updates
--ids <value> Restrict to an explicit comma-separated ID allowlist (intersected with other filters)
--limit <n> Limit matched item count before apply/preview
--offset <n> Skip first n matched rows before apply/preview
--dry-run Preview per-item diffs and checkpoint intent without mutating
--rollback <value> Rollback a prior update-many checkpoint ID
--no-checkpoint Disable checkpoint creation during apply mode
--title, -t <value> Set title
--description, -d <value> Set description
--body, -b <value> Set body (allow empty string)
--status, -s <value> Set status (use close command for closed)
--priority, -p <value> Set priority
--type <value> Set type
--tags <value> Set comma-separated tags (replaces existing). Use --add-tags / --remove-tags to mutate additively.
--add-tags <value> Add tags additively without replacing existing (repeatable; CSV accepted)
--remove-tags <value> Remove tags from the existing list (repeatable; CSV accepted)
--deadline <value> Set deadline (ISO/date string or relative)
--estimate, --estimated-minutes <value> Set estimated minutes
--acceptance-criteria <value> Set acceptance criteria
--definition-of-ready <value> Set definition of ready
--order <value> Set planning order/rank integer
--goal <value> Set goal identifier
--objective <value> Set objective identifier
--value <value> Set business value summary
--impact <value> Set business impact summary
--outcome <value> Set expected outcome summary
--why-now <value> Set why-now rationale
--assignee <value> Set assignee
--parent <value> Set parent item ID
--reviewer <value> Set reviewer
--risk <value> Set risk level
--confidence <value> Set confidence level
--sprint <value> Set sprint identifier
--release <value> Set release identifier
--blocked-by <value> Set blocked-by item ID or reason
--blocked-reason <value> Set blocked reason
--unblock-note <value> Set unblock rationale note
--reporter <value> Set issue reporter
--severity <value> Set issue severity
--environment <value> Set issue environment context
--repro-steps <value> Set issue reproduction steps
--resolution <value> Set issue resolution summary
--expected-result <value> Set issue expected behavior
--expected <value> Short alias for --expected-result
--actual-result <value> Set issue observed behavior
--actual <value> Short alias for --actual-result
--affected-version <value> Set affected version identifier
--fixed-version <value> Set fixed version identifier
--component <value> Set issue component ownership
--regression <value> Set regression marker: true|false|1|0
--customer-impact <value> Set customer impact summary
--dep <value> Add dependency entry id=<id>,kind=<kind>,author=<author>,created_at=<timestamp>
--dep-remove <value> Remove dependency entries by id/kind/author/timestamp signature
--replace-deps Atomically replace dependency entries with provided --dep values
--replace-tests Atomically replace linked tests with provided --test values
--comment <value> Add comment seed author=<value>,created_at=<iso|now>,text=<value>
--note <value> Add note seed author=<value>,created_at=<iso|now>,text=<value>
--learning <value> Add learning seed author=<value>,created_at=<iso|now>,text=<value>
--file <value> Add linked file path=<value>,scope=<project|global>,note=<text>
--test <value> Add linked test command=<value>,path=<value>,scope=<project|global>
--doc <value> Add linked doc path=<value>,scope=<project|global>,note=<text>
--reminder <value> Add reminder entry at=<iso|relative>|date=<iso|relative>,text=<text>|title=<text>
--event <value> Add event entry start=<iso|relative>,end=<iso|relative>,recur_*
--type-option <value> Set type options key=value (repeatable)
--unset <field> Clear scalar metadata field by name (repeatable)
--clear-deps Clear dependency entries
--clear-comments Clear comments
--clear-notes Clear notes
--clear-learnings Clear learnings
--clear-files Clear linked files
--clear-tests Clear linked tests
--clear-docs Clear linked docs
--clear-reminders Clear reminders
--clear-events Clear events
--clear-type-options Clear type options
--allow-audit-update Allow non-owner metadata-only audit updates without requiring --force
--allow-audit-dep-update Allow non-owner append-only dependency updates without requiring --force
--author <value> Mutation author
--message <value> Mutation message
--force Force ownership override
Examples
pm update-many --filter-status open --status in_progress --dry-run
📐
Planning
Structured multi-step agentic plans with lifecycle management
1 commands
pm plan Agent-optimized Plan item workflow: create, manage steps, link dependencies, approve, and materialize.
pm plan [options] [subcommand] [id] [stepRef] [reorderTo]

Provides deterministic project management workflows for humans and coding agents.

Arguments
<subcommand> Plan subcommand: create|show|add-step|update-step|complete-step|block-step|reorder-step|remove-step|link|unlink|decision|discovery|validation|resume|approve|materialize
<id> Plan id (required for non-create subcommands); for create this may be the positional title
<stepRef> Step reference: stable id (plan-step-001) or order integer
<reorderTo> New order integer for reorder-step
Options
--title <value> Plan title
--description <value> Plan description
--scope <value> Short scope statement of the target change or investigation
--parent <value> Parent pm item id
--related <value> Related pm item ids (repeatable, csv-friendly)
--blocks <value> Pm item ids this plan blocks (repeatable, csv-friendly)
--blocked-by <value> Pm item ids that block this plan (repeatable, csv-friendly)
--harness <value> Plan harness provenance: codex|claude-code|cursor|generic
--mode <value> Plan mode: draft|research|review|approved|executing|paused|completed|superseded
--resume-context <value> Compact context summary for a future stateless agent
--tags <value> Comma-separated tags
--priority <value> Priority 0-4
--body <value> Plan item body
--claim Claim the plan on create for the author
--from-search <value> Record the search query that led to plan creation
--step-title <value> Step title for add-step / update-step
--step <value> Step title (repeatable on create: each --step appends an ordered step; elsewhere a single value aliases --step-title)
--step-body <value> Step body text
--step-owner <value> Step owner
--step-status <value> Step status: pending|in_progress|completed|blocked|skipped|superseded
--step-evidence <value> Step evidence text (used by update-step/complete-step)
--step-blocked-reason <value> Step blocked reason (required when blocking)
--step-replacement <value> Replacement reference for a superseded step
--depends-on <value> Pm item ids the step depends on (repeatable, csv-friendly)
--link <value> Pm item id to link (repeatable, csv-friendly)
--link-kind <value> Link kind: related|blocks|blocked_by|depends_on|discovered_from|implements|verifies|supersedes
--link-note <value> Optional note for the link
--promote-to-item-dep Also add the linked id as a top-level item dependency when linking
--allow-multiple-active Allow multiple steps to be in_progress at once
--file <value> Step linked file path=<value>[,scope=project|global,note=<text>] (repeatable)
--test <value> Step linked test command=<value>[,path=<value>,note=<text>] (repeatable)
--doc <value> Step linked doc path=<value>[,scope=project|global,note=<text>] (repeatable)
--decision-text <value> Decision log entry text
--decision-rationale <value> Decision log entry rationale
--decision-evidence <value> Decision log entry evidence
--discovery-text <value> Discovery log entry text
--validation-text <value> Validation log entry text
--validation-command <value> Validation log entry command
--validation-expected <value> Validation log entry expected outcome
--depth <value> Show depth: brief|standard|deep (default: brief)
--fields <value> Comma-separated field projection for show output
--steps <value> Comma-separated step ids/orders for materialize
--materialize-type <value> Item type for materialized steps (default: Task)
--materialize-parent <value> Parent item id for materialized children (default: the plan)
--materialize-tags <value> Comma-separated tags for materialized children
--author <value> Mutation author
--message <value> Mutation message
--force Force ownership override
Examples
pm init
📝
Logs
Capture decisions, notes, and learnings
3 commands
pm comments List, add, edit, or delete comments for an item.
pm comments [options] <id> [text]

Adds or reviews lightweight status updates linked to an item.

Arguments
<id> required Item id
<text> Optional comment text shorthand (equivalent to --add)
Options
--add <text> Add one comment entry (plain text fallback, text=<value>, markdown pairs, or - for stdin; CSV-like key fragments are preserved as plain text unless text is explicit)
--stdin Read comment text from stdin (supports multiline markdown)
--file <path> Read comment text from file (supports multiline markdown)
--edit <index> Replace the comment at 1-based <index> (replacement text from positional [text], --add, --stdin, or --file)
--delete <index> Delete the comment at 1-based <index>
--limit <n> Return only latest n comments
--author [value] Comment author (optional; falls back to PM_AUTHOR/settings)
--message <value> History message
--allow-audit-comment Allow non-owner append-only comment audits (add/edit/delete) without requiring --force
--force Force ownership override
Examples
pm comments pm-a1b2 "Verified fix on Linux and macOS"
pm learnings List or add learnings for an item.
pm learnings [options] <id> [text]

Adds or reviews post-implementation learnings for future work.

Arguments
<id> required Item id
<text> Optional learning text shorthand (equivalent to --add; use - for stdin)
Options
--add <text> Add one learning entry (plain text fallback, text=<value>, markdown pairs, or - for stdin; CSV-like key fragments are preserved as plain text unless text is explicit)
--limit <n> Return only latest n learnings
--author [value] Learning author (optional; falls back to PM_AUTHOR/settings)
--message <value> History message
--allow-audit-learning Allow non-owner append-only learning audits without requiring --force
--allow-audit-comment Backward-compatible alias for --allow-audit-learning
--force Force ownership override
Examples
pm learnings pm-a1b2 --add "Avoid direct test-runner commands in linked tests; use sandbox runner."
pm notes List or add notes for an item.
pm notes [options] <id> [text]

Adds or reviews durable implementation notes linked to an item.

Arguments
<id> required Item id
<text> Optional note text shorthand (equivalent to --add; use - for stdin)
Options
--add <text> Add one note entry (plain text fallback, text=<value>, markdown pairs, or - for stdin; CSV-like key fragments are preserved as plain text unless text is explicit)
--limit <n> Return only latest n notes
--author [value] Note author (optional; falls back to PM_AUTHOR/settings)
--message <value> History message
--allow-audit-note Allow non-owner append-only note audits without requiring --force
--allow-audit-comment Backward-compatible alias for --allow-audit-note
--force Force ownership override
Examples
pm notes pm-a1b2 --add "Investigated parser edge case and documented fallback logic."
🧪
Verification
Run linked tests and validate workspace health
4 commands
pm gc Delete optional cache artifacts by default (including expired lock debris) and show a summary.
pm gc [options]

Deletes optional cache artifacts by default to keep local tracker state tidy; use --dry-run to preview targets without deleting files.

Options
--dry-run Preview cleanup targets without deleting files; without this flag, pm gc deletes matched artifacts
--scope <value> Limit cleanup to one or more scopes (comma-separated or repeatable): index, embeddings, runtime, locks
Examples
pm gc --dry-run
pm test Manage tests linked to an item and optionally run them.
pm test [options] <id>

Links test commands/paths and optionally executes them for one item.

Arguments
<id> required Item id
Options
--add <value> Add linked test entry (CSV/markdown pairs or - for stdin)
--add-json <value> Add linked test entry from JSON object/array (or - for stdin)
--remove <value> Remove linked test entry by command/path (command=<value>, path=<value>, markdown pairs, plain value, or - for stdin)
--list List linked tests without mutating
--run Run linked test commands
--match <value> Run only linked tests whose command/path contains this substring
--only-index <n> Run only the 1-based linked-test index from --list order
--only-last Run only the most recently added linked test
--background Run linked tests in managed background mode
--timeout <seconds> Default run timeout in seconds
--progress Emit linked-test progress to stderr (always shown in TTY, opt-in for non-TTY)
--env-set <value> Set environment variable(s) for linked-test runs (KEY=VALUE, repeatable)
--env-clear <value> Clear environment variable(s) for linked-test runs (NAME, repeatable)
--shared-host-safe Apply additive shared-host-safe runtime defaults for linked-test runs
--pm-context <mode> PM linked-test context mode: schema|tracker|auto (default: schema)
--override-linked-pm-context Force run-level --pm-context to override per-linked-test pm_context_mode metadata
--fail-on-context-mismatch Fail linked PM commands when context item counts differ
--fail-on-skipped Treat skipped linked tests as dependency failures
--fail-on-empty-test-run Treat successful linked-test commands that report zero executed tests as failures
--require-assertions-for-pm Require assertion metadata for linked PM command tests
--check-context Preflight linked PM command context diagnostics before executing commands
--auto-pm-context Auto-remediate PM tracker-read context mismatches by routing those linked commands through tracker context
--author <value> Mutation author
--message <value> History message
--force Force ownership override
Examples
pm test pm-a1b2 --add "command=node scripts/run-tests.mjs test -- tests/unit/output.spec.ts,timeout_seconds=2400"
pm test-all Run linked tests across matching items.
pm test-all [options]

Runs linked tests in bulk for release/readiness sweeps.

Options
--status <value> Filter items by status before running tests
--limit <n> Limit matching items before running linked tests
--offset <n> Skip matching items before running linked tests
--background Run linked tests in managed background mode
--timeout <seconds> Default run timeout in seconds
--progress Emit linked-test progress to stderr (always shown in TTY, opt-in for non-TTY)
--env-set <value> Set environment variable(s) for linked-test runs (KEY=VALUE, repeatable)
--env-clear <value> Clear environment variable(s) for linked-test runs (NAME, repeatable)
--shared-host-safe Apply additive shared-host-safe runtime defaults for linked-test runs
--pm-context <mode> PM linked-test context mode: schema|tracker|auto (default: schema)
--override-linked-pm-context Force run-level --pm-context to override per-linked-test pm_context_mode metadata
--fail-on-context-mismatch Fail linked PM commands when context item counts differ
--fail-on-skipped Treat skipped linked tests as dependency failures
--fail-on-empty-test-run Treat successful linked-test commands that report zero executed tests as failures
--require-assertions-for-pm Require assertion metadata for linked PM command tests
--check-context Preflight linked PM command context diagnostics before executing commands
--auto-pm-context Auto-remediate PM tracker-read context mismatches by routing those linked commands through tracker context
Examples
pm test-all --status in_progress --limit 5 --offset 10 --timeout 2400
pm validate Run standalone metadata, resolution, lifecycle, files, linked-command reference, and history drift validation checks.
pm validate [options]

Runs standalone metadata, resolution, lifecycle (including dependency-cycle diagnostics), linked-file, linked-command reference, and history drift checks with default remediation hints for resolution gaps.

Options
--check-metadata Run metadata completeness checks
--metadata-profile <value> Select metadata validation profile for --check-metadata (core|strict|custom)
--check-resolution Run closed-item resolution metadata checks
--check-lifecycle Run active-item lifecycle governance drift checks
--check-stale-blockers Include stale blocker-pattern diagnostics in lifecycle checks
--dependency-cycle-severity <value> Set dependency-cycle warning policy for lifecycle checks (off|warn|error)
--check-files Run linked-file and orphaned-file checks
--check-command-references Run linked-command PM-ID reference checks
--scan-mode <value> Select file candidate scan mode for --check-files (default|tracked-all|tracked-all-strict)
--include-pm-internals Include PM storage internals in tracked-all candidate scans
--verbose-file-lists Include full file-path lists for validate --check-files details
--verbose-diagnostics Include full validate diagnostic ID lists instead of compact summaries
--all-affected-ids Emit complete missing_* affected-ID lists with no truncation (implied by --json)
--strict-exit Return non-zero exit when validation warnings are present
--fix-hints Add a machine-executable fix_hints[] of pm commands to each failing check's details
--auto-fix Apply the safe, deterministic subset of fix-hint remediations (field backfills) automatically
--dry-run Preview planned --auto-fix/--prune-missing fixes without applying them
--fix-scope <scope> Grant --auto-fix scopes (metadata, resolution, lifecycle; comma-separated or repeatable). Default: metadata, resolution; lifecycle must be named explicitly
--prune-missing Remove stale linked-file/doc LINKS whose paths classified as deleted (never touches real files)
--check-history-drift Run item/history hash drift checks
Examples
pm validate
📜
History
Audit trails, activity feeds, and statistics
3 commands
pm activity Show recent activity across items.
pm activity [options]

Reviews recent tracker-wide activity across items.

Options
--id <value> Filter by item ID
--op <value> Filter by history operation
--author <value> Filter by history author
--from <value> Lower timestamp bound (ISO/date string or relative)
--to <value> Upper timestamp bound (ISO/date string or relative)
--limit <n> Return only the latest n activity entries
--compact Condensed output: show only id, op, ts, author, msg per entry
--full Show full activity entries with JSON Patch payloads
--stream [mode] Emit line-delimited JSON rows (requires --json). Optional mode: rows|ndjson|jsonl
Examples
pm activity --limit 50
pm history Show item history entries.
pm history [options] <id>

Inspects item mutation timeline and audit trail.

Arguments
<id> required Item id
Options
--limit <n> Return only the latest n history entries
--compact Condensed output: show entry index, timestamp, op, author, patch count, and changed fields
--full Show full history entries with JSON Patch payloads
--diff Include per-entry field-level before/after value diffs computed by replaying the history chain
--field <name> With --diff, show only entries that changed this field (implies --diff)
--verify Verify hash chain and replay integrity for the full history stream
Examples
pm history pm-a1b2 --limit 20
pm stats Show project tracker statistics.
pm stats [options]

Reports tracker-level totals and distribution by type/status.

Options
--storage Include aggregate history-stream storage metrics (total streams/lines/bytes, largest + deepest streams, oldest/newest entries)
--metadata-coverage Include metadata coverage % (acceptance_criteria, estimated_minutes, resolution, tags, parent) overall and by type
--by-assignee Include a lifecycle-bucketed item breakdown grouped by assignee
--by-tag Include a lifecycle-bucketed item breakdown grouped by tag
--by-priority Include a lifecycle-bucketed item breakdown grouped by priority
--tag-prefix <value> With --by-tag: only count tags starting with this prefix (e.g. domain:)
--field-utilization Report content-field utilization rates (notes/learnings/files/docs/tests/comments/deps/body) for governance audits
Examples
pm stats
🤖
Machines
Shell completion and machine contracts
1 commands
pm contracts Show machine-readable command and schema contracts for agents.
pm contracts [options]

Exposes machine-readable CLI command and tool schema contracts for agent integrations.

Options
--action <value> Filter tool schema branches to a specific action
--command <value> Scope contracts output to one CLI command (narrow-by-default)
--schema-only Return schema-focused output only
--flags-only Return command flag contracts only
--availability-only Return action availability surface only
--runtime-only Include only actions invocable in the current runtime
--full Include full schema and command-flag surfaces (large; default brief output omits heavy sections for unfiltered queries)
Examples
pm contracts
⚙️
Other
Other command family
46 commands
pm close-many Bulk-close matched items with a shared reason and full runClose semantics (dry-run + rollback checkpoint).
pm close-many [options]

Bulk-closes matched items with a shared reason routed through full pm close semantics (close validation, active-child orphan checks, blocked-edge cleanup) plus dry-run previews and rollback checkpoints — unlike update-many --status closed, which bypasses close validation.

Options
--filter-status <value> Filter by status before closing
--filter-type <value> Filter by item type before closing
--filter-tag <value> Filter by tag before closing
--filter-priority <value> Filter by priority before closing
--filter-deadline-before <value> Filter by deadline upper bound before closing
--filter-deadline-after <value> Filter by deadline lower bound before closing
--filter-updated-after <value> Filter by updated_at lower bound before closing (ISO/relative)
--filter-updated-before <value> Filter by updated_at upper bound before closing (ISO/relative)
--filter-created-after <value> Filter by created_at lower bound before closing (ISO/relative)
--filter-created-before <value> Filter by created_at upper bound before closing (ISO/relative)
--filter-assignee <value> Filter by assignee before closing
--filter-assignee-filter <value> Filter assignee presence: assigned|unassigned before closing
--filter-parent <value> Filter by parent item ID before closing
--filter-sprint <value> Filter by sprint before closing
--filter-release <value> Filter by release before closing
--filter-has-notes Select only items that have notes before closing
--filter-no-notes Select only items that have no notes before closing
--filter-has-learnings Select only items that have learnings before closing
--filter-no-learnings Select only items that have no learnings before closing
--filter-has-files Select only items that have linked files before closing
--filter-no-files Select only items that have no linked files before closing
--filter-has-docs Select only items that have linked docs before closing
--filter-no-docs Select only items that have no linked docs before closing
--filter-has-tests Select only items that have linked tests before closing
--filter-no-tests Select only items that have no linked tests before closing
--filter-has-comments Select only items that have comments before closing
--filter-no-comments Select only items that have no comments before closing
--filter-has-deps Select only items that have dependencies before closing
--filter-no-deps Select only items that have no dependencies before closing
--filter-has-body Select only items that have a non-empty body before closing
--filter-empty-body Select only items with an empty body before closing
--filter-has-linked-command Select only items whose linked tests carry a runnable command before closing
--filter-no-linked-command Select only items whose linked tests carry no runnable command before closing
--filter-reviewer-missing Select only items missing reviewer before closing
--filter-risk-missing Select only items missing risk before closing
--filter-confidence-missing Select only items missing confidence before closing
--filter-sprint-missing Select only items missing sprint before closing
--filter-release-missing Select only items missing release before closing
--ids <value> Restrict to an explicit comma-separated ID allowlist (intersected with other filters)
--limit <n> Limit matched item count before apply/preview
--offset <n> Skip first n matched rows before apply/preview
--reason <value> Shared close reason applied to matched items (required when governance.require_close_reason is enabled)
--resolution <value> Shared closure resolution applied to every matched item (closure-validation field)
--expected-result <value> Shared expected-result note (closure-validation field)
--expected <value> Short alias for --expected-result
--actual-result <value> Shared actual-result note (closure-validation field)
--actual <value> Short alias for --actual-result
--validate-close [mode] Validate closure metadata per item: "off", "warn", or "strict" (default: settings governance preset)
--author <value> Mutation author
--message <value> History message
--force Re-close already-terminal matches and override ownership
--dry-run Preview matched items + per-item skip/active-child plan without mutating
--rollback <value> Rollback a prior close-many checkpoint ID
--no-checkpoint Disable checkpoint creation during apply mode
Examples
pm close-many --filter-sprint S-12 --reason "Sprint S-12 acceptance criteria met" --dry-run
pm copy Copy an item into a new item id while resetting lifecycle fields.
pm copy [options] <id>

Provides deterministic project management workflows for humans and coding agents.

Arguments
<id> required Source item id
Options
--title <value> Optional title override for the copied item
--author <value> Mutation author
--message <value> History message
Examples
pm init
pm event Shortcut: create an Event with a start time and duration.
pm event [options] <title>

Shortcut to create an Event from friendly time flags (start/duration) without structured --event CSV.

Arguments
<title> required Item title
Options
--start <when> Start time (ISO, 'now', or relative like +1h/+2d); defaults to now
--duration <span> Duration from start (relative like 1h/2d); defaults to 1h when --end is omitted
--end <when> End time (ISO or relative); overrides --duration
--location <value> Location
--timezone <value> IANA timezone (for example America/New_York)
--all-day Mark as an all-day event
--parent <id> Parent item id
--allow-missing-parent Permit a parent id that does not exist yet
--tags <list> Comma-separated tags
--priority <value> Priority
--body <text> Body/markdown content
--description <text> Short description
--author <value> Mutation author
--message <value> History message
Examples
pm event "Release v2" --start 2026-07-01T10:00:00Z --duration 2h
pm extension activate Manage extension lifecycle operations for project or global scope.
pm extension activate [options] [command] [target]

Compatibility command for package-backed runtime extension lifecycle operations across project or global scope.

Arguments
<target> Extension source/name or scaffold target path (for --init/--scaffold)
Options
--init Generate a starter extension scaffold at target path
--install Install extension from local path, bundled alias, npm: source, wildcard, or GitHub source
--uninstall Uninstall an installed extension
--explore List discovered extensions in selected scope
--manage List managed extensions with update-check metadata
--reload Reload extensions with cache-busted module imports
--watch Use watch mode with --reload
--doctor Run consolidated extension diagnostics (summary/deep modes)
--catalog List bundled first-party extension catalog metadata
--adopt Adopt an existing unmanaged extension into managed metadata
--adopt-all Adopt all unmanaged extensions into managed metadata
--activate Activate a extension in selected scope settings
--deactivate Deactivate a extension in selected scope settings
--project Use project extension scope (default)
--global Use global extension scope
--gh <github-source> Install from GitHub shorthand source (owner/repo[/path])
--ref <ref> Git ref/branch/tag for GitHub install sources
--detail <mode> Extension diagnostics detail mode (summary|deep)
--trace Include actionable registration traces in doctor deep diagnostics
--runtime-probe Opt-in runtime activation probe for manage output parity
--fix-managed-state Adopt unmanaged extensions before diagnostics/update checks
--strict-exit Return non-zero exit when doctor warnings are present (ok=false)
Examples
pm install ./my-package --project
pm extension adopt Manage extension lifecycle operations for project or global scope.
pm extension adopt [options] [command] [target]

Compatibility command for package-backed runtime extension lifecycle operations across project or global scope.

Arguments
<target> Extension source/name or scaffold target path (for --init/--scaffold)
Options
--init Generate a starter extension scaffold at target path
--install Install extension from local path, bundled alias, npm: source, wildcard, or GitHub source
--uninstall Uninstall an installed extension
--explore List discovered extensions in selected scope
--manage List managed extensions with update-check metadata
--reload Reload extensions with cache-busted module imports
--watch Use watch mode with --reload
--doctor Run consolidated extension diagnostics (summary/deep modes)
--catalog List bundled first-party extension catalog metadata
--adopt Adopt an existing unmanaged extension into managed metadata
--adopt-all Adopt all unmanaged extensions into managed metadata
--activate Activate a extension in selected scope settings
--deactivate Deactivate a extension in selected scope settings
--project Use project extension scope (default)
--global Use global extension scope
--gh <github-source> Install from GitHub shorthand source (owner/repo[/path])
--ref <ref> Git ref/branch/tag for GitHub install sources
--detail <mode> Extension diagnostics detail mode (summary|deep)
--trace Include actionable registration traces in doctor deep diagnostics
--runtime-probe Opt-in runtime activation probe for manage output parity
--fix-managed-state Adopt unmanaged extensions before diagnostics/update checks
--strict-exit Return non-zero exit when doctor warnings are present (ok=false)
Examples
pm install ./my-package --project
pm extension adopt-all Manage extension lifecycle operations for project or global scope.
pm extension adopt-all [options] [command] [target]

Compatibility command for package-backed runtime extension lifecycle operations across project or global scope.

Arguments
<target> Extension source/name or scaffold target path (for --init/--scaffold)
Options
--init Generate a starter extension scaffold at target path
--install Install extension from local path, bundled alias, npm: source, wildcard, or GitHub source
--uninstall Uninstall an installed extension
--explore List discovered extensions in selected scope
--manage List managed extensions with update-check metadata
--reload Reload extensions with cache-busted module imports
--watch Use watch mode with --reload
--doctor Run consolidated extension diagnostics (summary/deep modes)
--catalog List bundled first-party extension catalog metadata
--adopt Adopt an existing unmanaged extension into managed metadata
--adopt-all Adopt all unmanaged extensions into managed metadata
--activate Activate a extension in selected scope settings
--deactivate Deactivate a extension in selected scope settings
--project Use project extension scope (default)
--global Use global extension scope
--gh <github-source> Install from GitHub shorthand source (owner/repo[/path])
--ref <ref> Git ref/branch/tag for GitHub install sources
--detail <mode> Extension diagnostics detail mode (summary|deep)
--trace Include actionable registration traces in doctor deep diagnostics
--runtime-probe Opt-in runtime activation probe for manage output parity
--fix-managed-state Adopt unmanaged extensions before diagnostics/update checks
--strict-exit Return non-zero exit when doctor warnings are present (ok=false)
Examples
pm install ./my-package --project
pm extension catalog List bundled first-party extension catalog metadata.
pm extension catalog [options]

Compatibility view of bundled package catalog metadata.

Options
--fields <value> Render compact comma-separated catalog fields, for example: alias,installed,install_command
--project Use project extension scope (default)
--global Use global extension scope
Examples
pm extension catalog --project
pm extension deactivate Manage extension lifecycle operations for project or global scope.
pm extension deactivate [options] [command] [target]

Compatibility command for package-backed runtime extension lifecycle operations across project or global scope.

Arguments
<target> Extension source/name or scaffold target path (for --init/--scaffold)
Options
--init Generate a starter extension scaffold at target path
--install Install extension from local path, bundled alias, npm: source, wildcard, or GitHub source
--uninstall Uninstall an installed extension
--explore List discovered extensions in selected scope
--manage List managed extensions with update-check metadata
--reload Reload extensions with cache-busted module imports
--watch Use watch mode with --reload
--doctor Run consolidated extension diagnostics (summary/deep modes)
--catalog List bundled first-party extension catalog metadata
--adopt Adopt an existing unmanaged extension into managed metadata
--adopt-all Adopt all unmanaged extensions into managed metadata
--activate Activate a extension in selected scope settings
--deactivate Deactivate a extension in selected scope settings
--project Use project extension scope (default)
--global Use global extension scope
--gh <github-source> Install from GitHub shorthand source (owner/repo[/path])
--ref <ref> Git ref/branch/tag for GitHub install sources
--detail <mode> Extension diagnostics detail mode (summary|deep)
--trace Include actionable registration traces in doctor deep diagnostics
--runtime-probe Opt-in runtime activation probe for manage output parity
--fix-managed-state Adopt unmanaged extensions before diagnostics/update checks
--strict-exit Return non-zero exit when doctor warnings are present (ok=false)
Examples
pm install ./my-package --project
pm extension doctor Manage extension lifecycle operations for project or global scope.
pm extension doctor [options] [command] [target]

Compatibility command for package-backed runtime extension lifecycle operations across project or global scope.

Arguments
<target> Extension source/name or scaffold target path (for --init/--scaffold)
Options
--init Generate a starter extension scaffold at target path
--install Install extension from local path, bundled alias, npm: source, wildcard, or GitHub source
--uninstall Uninstall an installed extension
--explore List discovered extensions in selected scope
--manage List managed extensions with update-check metadata
--reload Reload extensions with cache-busted module imports
--watch Use watch mode with --reload
--doctor Run consolidated extension diagnostics (summary/deep modes)
--catalog List bundled first-party extension catalog metadata
--adopt Adopt an existing unmanaged extension into managed metadata
--adopt-all Adopt all unmanaged extensions into managed metadata
--activate Activate a extension in selected scope settings
--deactivate Deactivate a extension in selected scope settings
--project Use project extension scope (default)
--global Use global extension scope
--gh <github-source> Install from GitHub shorthand source (owner/repo[/path])
--ref <ref> Git ref/branch/tag for GitHub install sources
--detail <mode> Extension diagnostics detail mode (summary|deep)
--trace Include actionable registration traces in doctor deep diagnostics
--runtime-probe Opt-in runtime activation probe for manage output parity
--fix-managed-state Adopt unmanaged extensions before diagnostics/update checks
--strict-exit Return non-zero exit when doctor warnings are present (ok=false)
Examples
pm install ./my-package --project
pm extension explore Manage extension lifecycle operations for project or global scope.
pm extension explore [options] [command] [target]

Compatibility command for package-backed runtime extension lifecycle operations across project or global scope.

Arguments
<target> Extension source/name or scaffold target path (for --init/--scaffold)
Options
--init Generate a starter extension scaffold at target path
--install Install extension from local path, bundled alias, npm: source, wildcard, or GitHub source
--uninstall Uninstall an installed extension
--explore List discovered extensions in selected scope
--manage List managed extensions with update-check metadata
--reload Reload extensions with cache-busted module imports
--watch Use watch mode with --reload
--doctor Run consolidated extension diagnostics (summary/deep modes)
--catalog List bundled first-party extension catalog metadata
--adopt Adopt an existing unmanaged extension into managed metadata
--adopt-all Adopt all unmanaged extensions into managed metadata
--activate Activate a extension in selected scope settings
--deactivate Deactivate a extension in selected scope settings
--project Use project extension scope (default)
--global Use global extension scope
--gh <github-source> Install from GitHub shorthand source (owner/repo[/path])
--ref <ref> Git ref/branch/tag for GitHub install sources
--detail <mode> Extension diagnostics detail mode (summary|deep)
--trace Include actionable registration traces in doctor deep diagnostics
--runtime-probe Opt-in runtime activation probe for manage output parity
--fix-managed-state Adopt unmanaged extensions before diagnostics/update checks
--strict-exit Return non-zero exit when doctor warnings are present (ok=false)
Examples
pm install ./my-package --project
pm extension init Generate a starter extension scaffold with manifest and entrypoint.
pm extension init [options] <target>

Generates an installable starter runtime extension with manifest and entrypoint files.

Arguments
<target> required Scaffold target directory path
Options
--project Use project extension scope (default)
--global Use global extension scope
Examples
pm extension init ./my-extension
pm extension install Manage extension lifecycle operations for project or global scope.
pm extension install [options] [command] [target]

Compatibility command for package-backed runtime extension lifecycle operations across project or global scope.

Arguments
<target> Extension source/name or scaffold target path (for --init/--scaffold)
Options
--init Generate a starter extension scaffold at target path
--install Install extension from local path, bundled alias, npm: source, wildcard, or GitHub source
--uninstall Uninstall an installed extension
--explore List discovered extensions in selected scope
--manage List managed extensions with update-check metadata
--reload Reload extensions with cache-busted module imports
--watch Use watch mode with --reload
--doctor Run consolidated extension diagnostics (summary/deep modes)
--catalog List bundled first-party extension catalog metadata
--adopt Adopt an existing unmanaged extension into managed metadata
--adopt-all Adopt all unmanaged extensions into managed metadata
--activate Activate a extension in selected scope settings
--deactivate Deactivate a extension in selected scope settings
--project Use project extension scope (default)
--global Use global extension scope
--gh <github-source> Install from GitHub shorthand source (owner/repo[/path])
--ref <ref> Git ref/branch/tag for GitHub install sources
--detail <mode> Extension diagnostics detail mode (summary|deep)
--trace Include actionable registration traces in doctor deep diagnostics
--runtime-probe Opt-in runtime activation probe for manage output parity
--fix-managed-state Adopt unmanaged extensions before diagnostics/update checks
--strict-exit Return non-zero exit when doctor warnings are present (ok=false)
Examples
pm install ./my-package --project
pm extension manage Manage extension lifecycle operations for project or global scope.
pm extension manage [options] [command] [target]

Compatibility command for package-backed runtime extension lifecycle operations across project or global scope.

Arguments
<target> Extension source/name or scaffold target path (for --init/--scaffold)
Options
--init Generate a starter extension scaffold at target path
--install Install extension from local path, bundled alias, npm: source, wildcard, or GitHub source
--uninstall Uninstall an installed extension
--explore List discovered extensions in selected scope
--manage List managed extensions with update-check metadata
--reload Reload extensions with cache-busted module imports
--watch Use watch mode with --reload
--doctor Run consolidated extension diagnostics (summary/deep modes)
--catalog List bundled first-party extension catalog metadata
--adopt Adopt an existing unmanaged extension into managed metadata
--adopt-all Adopt all unmanaged extensions into managed metadata
--activate Activate a extension in selected scope settings
--deactivate Deactivate a extension in selected scope settings
--project Use project extension scope (default)
--global Use global extension scope
--gh <github-source> Install from GitHub shorthand source (owner/repo[/path])
--ref <ref> Git ref/branch/tag for GitHub install sources
--detail <mode> Extension diagnostics detail mode (summary|deep)
--trace Include actionable registration traces in doctor deep diagnostics
--runtime-probe Opt-in runtime activation probe for manage output parity
--fix-managed-state Adopt unmanaged extensions before diagnostics/update checks
--strict-exit Return non-zero exit when doctor warnings are present (ok=false)
Examples
pm install ./my-package --project
pm extension reload Reload extensions with cache-busted module imports.
pm extension reload [options]

Provides deterministic project management workflows for humans and coding agents.

Options
--watch Use watch mode for repeated reload checks
--project Use project extension scope (default)
--global Use global extension scope
Examples
pm init
pm extension uninstall Manage extension lifecycle operations for project or global scope.
pm extension uninstall [options] [command] [target]

Compatibility command for package-backed runtime extension lifecycle operations across project or global scope.

Arguments
<target> Extension source/name or scaffold target path (for --init/--scaffold)
Options
--init Generate a starter extension scaffold at target path
--install Install extension from local path, bundled alias, npm: source, wildcard, or GitHub source
--uninstall Uninstall an installed extension
--explore List discovered extensions in selected scope
--manage List managed extensions with update-check metadata
--reload Reload extensions with cache-busted module imports
--watch Use watch mode with --reload
--doctor Run consolidated extension diagnostics (summary/deep modes)
--catalog List bundled first-party extension catalog metadata
--adopt Adopt an existing unmanaged extension into managed metadata
--adopt-all Adopt all unmanaged extensions into managed metadata
--activate Activate a extension in selected scope settings
--deactivate Deactivate a extension in selected scope settings
--project Use project extension scope (default)
--global Use global extension scope
--gh <github-source> Install from GitHub shorthand source (owner/repo[/path])
--ref <ref> Git ref/branch/tag for GitHub install sources
--detail <mode> Extension diagnostics detail mode (summary|deep)
--trace Include actionable registration traces in doctor deep diagnostics
--runtime-probe Opt-in runtime activation probe for manage output parity
--fix-managed-state Adopt unmanaged extensions before diagnostics/update checks
--strict-exit Return non-zero exit when doctor warnings are present (ok=false)
Examples
pm install ./my-package --project
pm focus Set/clear/show the session focused item that new items default --parent to.
pm focus [options] [id]

Sets a session focused item so new pm create items default their --parent to it (project management = context management).

Arguments
<id> Item id to focus (omit to show current focus)
Options
--clear Clear the focused item
Examples
pm focus pm-epic1
pm history-compact Compact an item history stream into a synthetic baseline plus retained tail entries.
pm history-compact [options] <id>

Compacts long history streams into a synthetic checkpoint while preserving replay integrity.

Arguments
<id> required Item id
Options
--before <value> Compact entries strictly before this version number or ISO timestamp
--dry-run Preview compaction impact without writing the history file
--author <value> Mutation author
--message <value> Audit history message for the compaction marker entry
--force Force ownership/lock override
Examples
pm history-compact pm-a1b2 --dry-run
pm history-redact Redact sensitive literals/patterns from an item history stream and recompute hashes.
pm history-redact [options] <id>

Provides deterministic project management workflows for humans and coding agents.

Arguments
<id> required Item id
Options
--literal <value> Literal string to redact (repeatable)
--regex <value> Regex pattern to redact (repeatable; accepts /pattern/flags or raw pattern)
--replacement <value> Replacement string (default: "[redacted]")
--dry-run Preview redaction impact without writing item/history files
--author <value> Mutation author
--message <value> Audit history message for the redaction marker entry
--force Force ownership/lock override
Examples
pm init
pm history-repair Re-anchor a drifted item history chain (recompute hashes, reconcile with the on-disk item) and record an audit marker. Use --all to repair every drifted stream.
pm history-repair [options] [id]

Provides deterministic project management workflows for humans and coding agents.

Arguments
<id> Item id (omit with --all)
Options
--all Scan every stream for drift and repair each drifted stream in one audited pass
--dry-run Preview the re-anchor impact without writing the history file
--author <value> Mutation author
--message <value> Audit history message for the repair marker entry
--force Force ownership/lock override
Examples
pm init
pm meet Shortcut: create a Meeting with a start time and duration.
pm meet [options] <title>

Shortcut to create a Meeting from friendly time flags (start/duration) without structured --event CSV.

Arguments
<title> required Item title
Options
--start <when> Start time (ISO, 'now', or relative like +1h/+2d); defaults to now
--duration <span> Duration from start (relative like 1h/2d); defaults to 1h when --end is omitted
--end <when> End time (ISO or relative); overrides --duration
--location <value> Location
--timezone <value> IANA timezone (for example America/New_York)
--all-day Mark as an all-day event
--parent <id> Parent item id
--allow-missing-parent Permit a parent id that does not exist yet
--tags <list> Comma-separated tags
--priority <value> Priority
--body <text> Body/markdown content
--description <text> Short description
--author <value> Mutation author
--message <value> History message
Examples
pm meet "Sprint Planning" --start +1h --duration 1h
pm package activate Activate a package in selected scope settings.
pm package activate [options] <target>

Provides deterministic project management workflows for humans and coding agents.

Arguments
<target> required Package name
Options
--project Use project package scope (default)
--global Use global package scope
Examples
pm init
pm package adopt Adopt an existing unmanaged package into managed metadata.
pm package adopt [options] <target>

Provides deterministic project management workflows for humans and coding agents.

Arguments
<target> required Package name
Options
--gh <owner/repo[/path]> GitHub provenance shorthand for adopted package
--ref <ref> Git ref/branch/tag for GitHub shorthand source
--project Use project package scope (default)
--global Use global package scope
Examples
pm init
pm package adopt-all Adopt all unmanaged packages into managed metadata.
pm package adopt-all [options]

Provides deterministic project management workflows for humans and coding agents.

Options
--project Use project package scope (default)
--global Use global package scope
Examples
pm init
pm package catalog List bundled first-party package catalog metadata.
pm package catalog [options]

Lists bundled first-party package catalog metadata and compact field projections.

Options
--fields <value> Render compact comma-separated catalog fields, for example: alias,installed,install_command
--project Use project package scope (default)
--global Use global package scope
Examples
pm package catalog --project
pm package deactivate Deactivate a package in selected scope settings.
pm package deactivate [options] <target>

Provides deterministic project management workflows for humans and coding agents.

Arguments
<target> required Package name
Options
--project Use project package scope (default)
--global Use global package scope
Examples
pm init
pm package doctor Run consolidated package diagnostics (summary/deep modes).
pm package doctor [options]

Provides deterministic project management workflows for humans and coding agents.

Options
--detail <mode> Detail mode for package diagnostics (summary|deep)
--trace Include actionable registration traces in doctor deep diagnostics
--fix-managed-state Adopt unmanaged packages before diagnostics/update checks
--strict-exit Return non-zero exit when doctor warnings are present (ok=false)
--project Use project package scope (default)
--global Use global package scope
Examples
pm init
pm package explore List discovered packages in selected scope.
pm package explore [options]

Provides deterministic project management workflows for humans and coding agents.

Options
--project Use project package scope (default)
--global Use global package scope
Examples
pm init
pm package init Generate a starter package scaffold with package metadata, manifest, and entrypoint.
pm package init [options] <target>

Generates an installable starter pm package with package metadata and a root extension entrypoint.

Arguments
<target> required Scaffold target directory path
Options
--project Use project package scope (default)
--global Use global package scope
Examples
pm package init ./my-package
pm package install Install package from local path, bundled alias, npm: source, wildcard, or GitHub source.
pm package install [options] [targets...]

Installs pm packages from local paths, npm sources, GitHub sources, bundled aliases, or wildcard/all aliases.

Arguments
<targets> Package source (local path, bundled alias, npm: source, wildcard, or GitHub source)
Options
--gh <github-source> Install from GitHub shorthand source (owner/repo[/path])
--ref <ref> Git ref/branch/tag for GitHub install sources
--project Use project package scope (default)
--global Use global package scope
Examples
pm package install ./my-package --project
pm package manage List managed packages with update-check metadata.
pm package manage [options]

Provides deterministic project management workflows for humans and coding agents.

Options
--runtime-probe Opt-in runtime activation probe for manage output parity
--fix-managed-state Adopt unmanaged packages before diagnostics/update checks
--project Use project package scope (default)
--global Use global package scope
Examples
pm init
pm package reload Reload packages with cache-busted module imports.
pm package reload [options]

Provides deterministic project management workflows for humans and coding agents.

Options
--watch Use watch mode for repeated reload checks
--project Use project package scope (default)
--global Use global package scope
Examples
pm init
pm package uninstall Uninstall an installed package.
pm package uninstall [options] <target>

Provides deterministic project management workflows for humans and coding agents.

Arguments
<target> required Package name
Options
--project Use project package scope (default)
--global Use global package scope
Examples
pm init
pm packages activate Activate a package in selected scope settings.
pm packages activate [options] <target>

Provides deterministic project management workflows for humans and coding agents.

Arguments
<target> required Package name
Options
--project Use project package scope (default)
--global Use global package scope
Examples
pm init
pm packages adopt Adopt an existing unmanaged package into managed metadata.
pm packages adopt [options] <target>

Provides deterministic project management workflows for humans and coding agents.

Arguments
<target> required Package name
Options
--gh <owner/repo[/path]> GitHub provenance shorthand for adopted package
--ref <ref> Git ref/branch/tag for GitHub shorthand source
--project Use project package scope (default)
--global Use global package scope
Examples
pm init
pm packages adopt-all Adopt all unmanaged packages into managed metadata.
pm packages adopt-all [options]

Provides deterministic project management workflows for humans and coding agents.

Options
--project Use project package scope (default)
--global Use global package scope
Examples
pm init
pm packages catalog List bundled first-party package catalog metadata.
pm packages catalog [options]

Lists bundled first-party package catalog metadata and compact field projections.

Options
--fields <value> Render compact comma-separated catalog fields, for example: alias,installed,install_command
--project Use project package scope (default)
--global Use global package scope
Examples
pm package catalog --project
pm packages deactivate Deactivate a package in selected scope settings.
pm packages deactivate [options] <target>

Provides deterministic project management workflows for humans and coding agents.

Arguments
<target> required Package name
Options
--project Use project package scope (default)
--global Use global package scope
Examples
pm init
pm packages doctor Run consolidated package diagnostics (summary/deep modes).
pm packages doctor [options]

Provides deterministic project management workflows for humans and coding agents.

Options
--detail <mode> Detail mode for package diagnostics (summary|deep)
--trace Include actionable registration traces in doctor deep diagnostics
--fix-managed-state Adopt unmanaged packages before diagnostics/update checks
--strict-exit Return non-zero exit when doctor warnings are present (ok=false)
--project Use project package scope (default)
--global Use global package scope
Examples
pm init
pm packages explore List discovered packages in selected scope.
pm packages explore [options]

Provides deterministic project management workflows for humans and coding agents.

Options
--project Use project package scope (default)
--global Use global package scope
Examples
pm init
pm packages init Generate a starter package scaffold with package metadata, manifest, and entrypoint.
pm packages init [options] <target>

Generates an installable starter pm package with package metadata and a root extension entrypoint.

Arguments
<target> required Scaffold target directory path
Options
--project Use project package scope (default)
--global Use global package scope
Examples
pm package init ./my-package
pm packages install Install package from local path, bundled alias, npm: source, wildcard, or GitHub source.
pm packages install [options] [targets...]

Installs pm packages from local paths, npm sources, GitHub sources, bundled aliases, or wildcard/all aliases.

Arguments
<targets> Package source (local path, bundled alias, npm: source, wildcard, or GitHub source)
Options
--gh <github-source> Install from GitHub shorthand source (owner/repo[/path])
--ref <ref> Git ref/branch/tag for GitHub install sources
--project Use project package scope (default)
--global Use global package scope
Examples
pm package install ./my-package --project
pm packages manage List managed packages with update-check metadata.
pm packages manage [options]

Provides deterministic project management workflows for humans and coding agents.

Options
--runtime-probe Opt-in runtime activation probe for manage output parity
--fix-managed-state Adopt unmanaged packages before diagnostics/update checks
--project Use project package scope (default)
--global Use global package scope
Examples
pm init
pm packages reload Reload packages with cache-busted module imports.
pm packages reload [options]

Provides deterministic project management workflows for humans and coding agents.

Options
--watch Use watch mode for repeated reload checks
--project Use project package scope (default)
--global Use global package scope
Examples
pm init
pm packages uninstall Uninstall an installed package.
pm packages uninstall [options] <target>

Provides deterministic project management workflows for humans and coding agents.

Arguments
<target> required Package name
Options
--project Use project package scope (default)
--global Use global package scope
Examples
pm init
pm remind Shortcut: create a Reminder from a single point in time.
pm remind [options] <title>

Shortcut to create a Reminder from a single point in time without structured --reminder CSV.

Arguments
<title> required Item title
Options
--at <when> Reminder time (ISO, 'now', or relative like +2d); defaults to +1d
--text <value> Reminder text; defaults to the title
--parent <id> Parent item id
--allow-missing-parent Permit a parent id that does not exist yet
--tags <list> Comma-separated tags
--priority <value> Priority
--body <text> Body/markdown content
--description <text> Short description
--author <value> Mutation author
--message <value> History message
Examples
pm remind "Review PR" --at +2d
pm telemetry Inspect and manage local telemetry queue/runtime state.
pm telemetry [options] [namespaceOrSubcommand] [subcommand]

Inspects and manages local telemetry queue/runtime state for observability diagnostics.

Arguments
<namespaceOrSubcommand> Telemetry subcommand: status, flush, stats, clear (default: status)
<subcommand> Compatibility alias target for local-analytics: status, flush, stats, clear
Options
--limit <n> Maximum command groups returned by telemetry stats
Examples
pm telemetry status

No commands match your search.

Try a different keyword or view all commands.