pm reads settings from the project tracker root and optional global profile. Use this page for public, user-facing configuration. Use pm config ... list and pm config ... export for the active runtime shape.
- Do not override
PM_PATHfor real repository tracking. - Do set
PM_AUTHORfor maintainer and agent mutations. - Use
--jsononly when strict parsing is needed. - Use
pm contractsfor current command/schema metadata.
Tracked documentation work: pm-1sb2.
pm config project list
pm config project export --json
pm config project get item-format --json
pm config project set item-format --format toon
pm config project set test-result-tracking --policy enabledScopes:
projectupdates.agents/pm/settings.json.globalupdates the global profile underPM_GLOBAL_PATHor the default global root.
Precedence:
- CLI flags
- environment variables
- project settings
- global settings
- built-in defaults
| Setting | Purpose |
|---|---|
id_prefix |
generated item ID prefix, default pm- |
author_default |
fallback mutation author |
item_format |
item storage format (toon writes; legacy markdown is read/migrate only) |
output.default_format |
default renderer, usually toon |
locks.ttl_seconds |
stale lock threshold |
history.missing_stream |
auto_create or strict_error |
testing.record_results_to_items |
persist bounded linked-test summaries |
validation.sprint_release_format |
warn or strict_error |
validation.parent_reference |
warn or strict_error |
item_types.definitions[] |
custom item types and type options |
search.* |
search mode, scoring, providers, and vector settings |
| Variable | Use |
|---|---|
PM_AUTHOR |
explicit mutation author |
PM_PATH |
override project tracker root for tests or sandboxes |
PM_GLOBAL_PATH |
override global profile root for tests or sandboxes |
PM_OLLAMA_MODEL |
choose default Ollama embedding model |
PM_DISABLE_OLLAMA_AUTO_DEFAULTS |
disable implicit Ollama search defaults |
Tests should set both PM_PATH and PM_GLOBAL_PATH to temporary directories. The wrapper node scripts/run-tests.mjs ... does that automatically.
TOON is the default:
pm config project set item-format --format toonMarkdown item files are treated as legacy migration input only. Mutations always write TOON files, and history stays JSONL.
Most commands default to sparse TOON:
pm list-open --limit 10Use JSON for strict machine parsing:
pm get <id> --json
pm contracts --jsonpm calendar defaults to markdown because date-centric summaries are easier to scan in that format.
pm config project set sprint-release-format-policy --policy warn
pm config project set parent-reference-policy --policy strict_error
pm config project set history-missing-stream-policy --policy auto_create
pm config project set test-result-tracking --policy enabledUse standalone checks when validating a repository:
pm validate --check-resolution --check-history-drift
pm validate --check-files --scan-mode tracked-all
pm health --check-onlyKeyword search is always available:
pm search "release docs" --mode keyword --limit 10Semantic and hybrid search can use built-in OpenAI-compatible or Ollama providers plus vector stores such as Qdrant or LanceDB. If local Ollama is available and semantic settings are unset, pm can resolve local defaults automatically.
Useful commands:
pm search "calendar reminders" --mode hybrid --limit 10
pm reindex --mode hybrid --progress
pm health --check-onlyCustom item types can be defined in settings and by extensions. Runtime type resolution affects create/update validation, list/search/calendar filters, completions, and storage folders.
Use runtime contracts for exact active types:
pm contracts --json
pm create --help --type TaskPublic docs should describe supported user configuration only. Ignored local operations material, unpublished evidence logs, credentials, hostnames, and private service details must stay outside tracked docs and package output.