{"_id":"@alexey_platkovsky/taskpilot","_rev":"6-e93857000a53d8daf81d5055427914e7","name":"@alexey_platkovsky/taskpilot","dist-tags":{"beta":"0.1.0-beta.1","latest":"2.0.0"},"versions":{"0.1.0-beta.1":{"name":"@alexey_platkovsky/taskpilot","version":"0.1.0-beta.1","license":"SEE LICENSE IN LICENSE","_id":"@alexey_platkovsky/taskpilot@0.1.0-beta.1","maintainers":[{"name":"alexey_platkovsky","email":"alexey.platkovsky@gmail.com"}],"homepage":"https://github.com/anomalyco/task-pilot#readme","bugs":{"url":"https://github.com/anomalyco/task-pilot/issues"},"bin":{"taskpilot":"bin/taskpilot"},"dist":{"shasum":"de701318bc90cfb6c4f6f23d8ef5f0bfc4aee2bc","tarball":"https://registry.npmjs.org/@alexey_platkovsky/taskpilot/-/taskpilot-0.1.0-beta.1.tgz","fileCount":121,"integrity":"sha512-MlOgNKw1fFRtVkl5Twsbqe517SBFhLbO/21H1lA1inr10ZrrOR+sxpuOyJ8sNU0UMmws6AlVHWNDL1iQSLyrKg==","signatures":[{"sig":"MEYCIQC2awDCh4Md4ZjHNudatq+7RKdqFdzwHdcv/8KEYMyZmQIhANrdf1XRlA31yemPnxINHBxtjZDLYdpoFKlQTEbtMKUR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":543303},"gitHead":"d4bd8a99ce3dea2776488d449b7f21a3e7c03e6f","private":false,"scripts":{"release":"npm run preflight && npm run quality-gates && npm run release:dry-run && npm run release:publish","preflight":"bash scripts/release/preflight.sh","build:staging":"bash scripts/release/build-staging.sh","quality-gates":"bash scripts/release/quality-gates.sh","release:dry-run":"bash scripts/release/publish.sh --dry-run","release:publish":"bash scripts/release/publish.sh --publish"},"_npmUser":{"name":"alexey_platkovsky","email":"alexey.platkovsky@gmail.com"},"repository":{"url":"git+https://github.com/anomalyco/task-pilot.git","type":"git"},"_npmVersion":"11.12.0","description":"Local-first, file-based task management. Markdown/YAML files are the source of truth.","directories":{},"_nodeVersion":"24.1.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/taskpilot_0.1.0-beta.1_1782833818159_0.9750462015162231","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@alexey_platkovsky/taskpilot","version":"1.0.0","license":"SEE LICENSE IN LICENSE","_id":"@alexey_platkovsky/taskpilot@1.0.0","maintainers":[{"name":"alexey_platkovsky","email":"alexey.platkovsky@gmail.com"}],"homepage":"https://github.com/AlexeyPlatkovsky/task-pilot#readme","bugs":{"url":"https://github.com/AlexeyPlatkovsky/task-pilot/issues"},"bin":{"taskpilot":"bin/taskpilot"},"dist":{"shasum":"5375ab903c722bc0afdbb172cff8e23bf9b12ac5","tarball":"https://registry.npmjs.org/@alexey_platkovsky/taskpilot/-/taskpilot-1.0.0.tgz","fileCount":51,"integrity":"sha512-9I5b52aYwBEyMPCGVZHrj4TU/RmUjrTSLXnBz1bQq+uUnSYZt4BYIGTM8aQw7qJCzwDJMTZd+5BUX2MZ1mZsdQ==","signatures":[{"sig":"MEQCIFkXbrA2XiiNQcYPkbRd87JnUWRgg+ulvXRKHKSak8ePAiBDaKr+XKX/HheFGHOj0MhxuDa/QqztTU1eHpFmlCbURQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexey_platkovsky%2ftaskpilot@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":766986},"gitHead":"ebd93d7b179665829e58aba1e601c6667d200f9e","private":false,"scripts":{"release":"npm run preflight && npm run quality-gates && npm run release:dry-run && npm run release:publish","preflight":"bash scripts/release/preflight.sh","build:staging":"bash scripts/release/build-staging.sh","quality-gates":"bash scripts/release/quality-gates.sh","release:dry-run":"bash scripts/release/publish.sh --dry-run","release:publish":"bash scripts/release/publish.sh --publish"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e2d3ceae-9f79-4b7f-9e33-f2610a1a85c0"}},"repository":{"url":"git+https://github.com/AlexeyPlatkovsky/task-pilot.git","type":"git"},"_npmVersion":"11.18.0","description":"Local-first, file-based task management. Markdown/YAML files are the source of truth.","directories":{},"_nodeVersion":"22.23.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/taskpilot_1.0.0_1783227610173_0.8383874671643354","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@alexey_platkovsky/taskpilot","version":"1.1.0","license":"SEE LICENSE IN LICENSE","_id":"@alexey_platkovsky/taskpilot@1.1.0","maintainers":[{"name":"alexey_platkovsky","email":"alexey.platkovsky@gmail.com"}],"homepage":"https://github.com/AlexeyPlatkovsky/task-pilot#readme","bugs":{"url":"https://github.com/AlexeyPlatkovsky/task-pilot/issues"},"bin":{"taskpilot":"bin/taskpilot"},"dist":{"shasum":"92ee51c66c20e18d89f9465dcdbbbd56ffe9d448","tarball":"https://registry.npmjs.org/@alexey_platkovsky/taskpilot/-/taskpilot-1.1.0.tgz","fileCount":51,"integrity":"sha512-MaETY490bczGnggOnN+a/CUPOTYTgEzfH/37fjjMDu/IoFmmCzm38A0JizVa4Mz/RSAB/qZQfnOHCVlTtajKHA==","signatures":[{"sig":"MEUCICeajzi/t79N6rKkNCBqkeraE9iSIxvN3VdPkXAE1/13AiEA6RNlMXpkyGmw7/tJl58S062Oi2PxF50Z+LwIc1OxuBA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexey_platkovsky%2ftaskpilot@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":767076},"gitHead":"128d69e92410dc846801846dded531bfa95fe86d","private":false,"scripts":{"release":"npm run preflight && npm run quality-gates && npm run release:dry-run && npm run release:publish","preflight":"bash scripts/release/preflight.sh","release:bump":"bash scripts/release/bump.sh","build:staging":"bash scripts/release/build-staging.sh","quality-gates":"bash scripts/release/quality-gates.sh","release:dry-run":"bash scripts/release/publish.sh --dry-run","release:publish":"bash scripts/release/publish.sh --publish"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e2d3ceae-9f79-4b7f-9e33-f2610a1a85c0"}},"repository":{"url":"git+https://github.com/AlexeyPlatkovsky/task-pilot.git","type":"git"},"_npmVersion":"11.18.0","description":"Local-first, file-based task management. Markdown/YAML files are the source of truth.","directories":{},"_nodeVersion":"22.23.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/taskpilot_1.1.0_1783241925211_0.7457940634894371","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@alexey_platkovsky/taskpilot","version":"1.2.0","license":"SEE LICENSE IN LICENSE","_id":"@alexey_platkovsky/taskpilot@1.2.0","maintainers":[{"name":"alexey_platkovsky","email":"alexey.platkovsky@gmail.com"}],"homepage":"https://github.com/AlexeyPlatkovsky/task-pilot#readme","bugs":{"url":"https://github.com/AlexeyPlatkovsky/task-pilot/issues"},"bin":{"taskpilot":"bin/taskpilot"},"dist":{"shasum":"1860c0b3a860de931074691c52d1878699eb7995","tarball":"https://registry.npmjs.org/@alexey_platkovsky/taskpilot/-/taskpilot-1.2.0.tgz","fileCount":53,"integrity":"sha512-XmLyIzKwXt5RpKsaHmxeppcI767EV+/ThuWxxI7LFtj1EUop02CSfzR5SCYaqORFt8wmRUZTGxI/zKk1jupHHg==","signatures":[{"sig":"MEQCIC8wlOkUhufrYAx2Mr68ky34TLiKDRtK12irEpHf9odSAiB14iKzyTGFNavoQnQAlBuAxxni40htJdYstEt8pEJvWg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexey_platkovsky%2ftaskpilot@1.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":785050},"gitHead":"d668c1adfb868c81cc0d8445e96be8f12e6ffc4b","private":false,"scripts":{"release":"npm run preflight && npm run quality-gates && npm run release:dry-run && npm run release:publish","preflight":"bash scripts/release/preflight.sh","release:bump":"bash scripts/release/bump.sh","build:staging":"bash scripts/release/build-staging.sh","quality-gates":"bash scripts/release/quality-gates.sh","release:dry-run":"bash scripts/release/publish.sh --dry-run","release:publish":"bash scripts/release/publish.sh --publish"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e2d3ceae-9f79-4b7f-9e33-f2610a1a85c0"}},"repository":{"url":"git+https://github.com/AlexeyPlatkovsky/task-pilot.git","type":"git"},"_npmVersion":"12.0.2","description":"Local-first, file-based task management. Markdown/YAML files are the source of truth.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"@alexey_platkovsky/taskpilot":"^1.1.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/taskpilot_1.2.0_1785502699528_0.6656180001457661","host":"s3://npm-registry-packages-npm-production"}},"1.3.1":{"name":"@alexey_platkovsky/taskpilot","version":"1.3.1","license":"SEE LICENSE IN LICENSE","_id":"@alexey_platkovsky/taskpilot@1.3.1","maintainers":[{"name":"alexey_platkovsky","email":"alexey.platkovsky@gmail.com"}],"homepage":"https://github.com/AlexeyPlatkovsky/task-pilot#readme","bugs":{"url":"https://github.com/AlexeyPlatkovsky/task-pilot/issues"},"bin":{"taskpilot":"bin/taskpilot"},"dist":{"shasum":"87fb0c9ffad5112394cafc927ebad782f5d14c4a","tarball":"https://registry.npmjs.org/@alexey_platkovsky/taskpilot/-/taskpilot-1.3.1.tgz","fileCount":53,"integrity":"sha512-yzlpsetsO/VKFSOzGvwVUJ8ZeS6o+2hLEeJ3YTD7pM//x5kZ6dzJaWutHCfr7/lHxkALFCVj7kf1SXLdzcFicQ==","signatures":[{"sig":"MEUCIB9gpeiZ98tyQYOAc3C09f4KAOBs5oJt9pc1EYdMJAZFAiEAxRlROp9MOnuo7L4as7CJzeiMxjC4A42ilfP/ILlmXIk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexey_platkovsky%2ftaskpilot@1.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":785767},"gitHead":"bb59ccd6d3a16f025d12511d8a5081ffa175e9f1","private":false,"scripts":{"release":"npm run preflight && npm run quality-gates && npm run release:dry-run && npm run release:publish","preflight":"bash scripts/release/preflight.sh","release:bump":"bash scripts/release/bump.sh","build:staging":"bash scripts/release/build-staging.sh","quality-gates":"bash scripts/release/quality-gates.sh","release:dry-run":"bash scripts/release/publish.sh --dry-run","release:publish":"bash scripts/release/publish.sh --publish"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e2d3ceae-9f79-4b7f-9e33-f2610a1a85c0"}},"repository":{"url":"git+https://github.com/AlexeyPlatkovsky/task-pilot.git","type":"git"},"_npmVersion":"12.0.2","description":"Local-first, file-based task management. Markdown/YAML files are the source of truth.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"@alexey_platkovsky/taskpilot":"^1.1.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/taskpilot_1.3.1_1785580598483_0.9664527412573207","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@alexey_platkovsky/taskpilot","version":"2.0.0","description":"Local-first, file-based task management. Markdown/YAML files are the source of truth.","license":"SEE LICENSE IN LICENSE","bin":{"taskpilot":"bin/taskpilot"},"scripts":{"preflight":"bash scripts/release/preflight.sh","build:staging":"bash scripts/release/build-staging.sh","quality-gates":"bash scripts/release/quality-gates.sh","release:dry-run":"bash scripts/release/publish.sh --dry-run","release:publish":"bash scripts/release/publish.sh --publish","release:bump":"bash scripts/release/bump.sh","release":"npm run preflight && npm run quality-gates && npm run release:dry-run && npm run release:publish"},"repository":{"type":"git","url":"git+https://github.com/AlexeyPlatkovsky/task-pilot.git"},"private":false,"dependencies":{"@alexey_platkovsky/taskpilot":"^1.1.0"},"gitHead":"b67a93f9e5386457801a72aa602c7dbf118445aa","_id":"@alexey_platkovsky/taskpilot@2.0.0","bugs":{"url":"https://github.com/AlexeyPlatkovsky/task-pilot/issues"},"homepage":"https://github.com/AlexeyPlatkovsky/task-pilot#readme","_nodeVersion":"22.23.2","_npmVersion":"12.0.2","dist":{"integrity":"sha512-ZpWckkfx6L9JRlOnKZXSxFVH/L9li/zSdjeBFk9cI6HqxFhM5msbQTS4Vd6s6CuJTedzo4EqmzQeYDIRaYsm4g==","shasum":"18022d05bad0d416886a9235fcb186ab222007e7","tarball":"https://registry.npmjs.org/@alexey_platkovsky/taskpilot/-/taskpilot-2.0.0.tgz","fileCount":56,"unpackedSize":831539,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alexey_platkovsky%2ftaskpilot@2.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDnrcizYbWCe1c8Cpv+qif7RK0WLwHT1RR9jBEdO7aZ+QIhAM9pt+tFmx55CQV7rfM06AZYyi3tLIFTWwlYxHb0lkV5"}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e2d3ceae-9f79-4b7f-9e33-f2610a1a85c0"}},"directories":{},"maintainers":[{"name":"alexey_platkovsky","email":"alexey.platkovsky@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/taskpilot_2.0.0_1786025170435_0.86191841445152"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-30T15:36:57.973Z","modified":"2026-08-06T14:06:11.017Z","0.1.0-beta.1":"2026-06-30T15:36:58.376Z","1.0.0":"2026-07-05T05:00:10.352Z","1.1.0":"2026-07-05T08:58:45.345Z","1.2.0":"2026-07-31T12:58:19.719Z","1.3.1":"2026-08-01T10:36:38.693Z","2.0.0":"2026-08-06T14:06:10.634Z"},"bugs":{"url":"https://github.com/AlexeyPlatkovsky/task-pilot/issues"},"license":"SEE LICENSE IN LICENSE","homepage":"https://github.com/AlexeyPlatkovsky/task-pilot#readme","repository":{"type":"git","url":"git+https://github.com/AlexeyPlatkovsky/task-pilot.git"},"description":"Local-first, file-based task management. Markdown/YAML files are the source of truth.","maintainers":[{"name":"alexey_platkovsky","email":"alexey.platkovsky@gmail.com"}],"readme":"# TaskPilot\n\nTaskPilot is local-first task management for software projects. It keeps project work in\nGit-friendly files inside your repository, so humans and coding agents can share the same durable,\ninspectable task state without accounts, hosted services, or hidden synchronization.\n\nTaskPilot is published as the `@alexey_platkovsky/taskpilot` npm package.\n\n## Why TaskPilot\n\n- Local-first: task data lives in your repo under `.taskpilot/`.\n- File-based: YAML items and Markdown comments are the canonical source of truth.\n- Agent-friendly: CLI output can be human-readable or deterministic JSON.\n- Offline by default: normal usage works after the first runtime setup.\n- Git-friendly: one file per item and append-style comments reduce merge conflicts.\n\n## Install\n\nTaskPilot is distributed through npm. The stable release supports global npm installation.\n\n```bash\nnpm install -g @alexey_platkovsky/taskpilot\n```\n\nPrerequisites:\n\n- Node.js 18 or newer.\n- Python 3.11 or newer with `venv` and `pip`.\n\nTaskPilot finds Python automatically on first run. To use a specific interpreter:\n\n```bash\nTASKPILOT_PYTHON=/opt/homebrew/bin/python3.11 taskpilot --help\n```\n\n## Quick Start\n\nInitialize TaskPilot in a project repository:\n\n```bash\ncd my-project\ntaskpilot init .\n```\n\nCreate and inspect work items:\n\n```bash\ntaskpilot item create --title \"Add login form\" --type task\ntaskpilot item list\ntaskpilot item show MP-1\n```\n\nUpdate workflow state:\n\n```bash\ntaskpilot item update MP-1 --status in_progress\ntaskpilot item comment MP-1 \"Started implementation.\"\n```\n\nUse JSON output for scripts and AI agents:\n\n```bash\ntaskpilot --json item list\ntaskpilot --json validate\n```\n\nStart the local WebUI:\n\n```bash\ntaskpilot serve\n```\n\nThen open `http://127.0.0.1:7152/`. The WebUI can be started from any directory; it loads\nregistered projects from your local TaskPilot registry and restores the last valid project when\navailable.\n\n## Data Layout\n\nA TaskPilot workspace is stored inside the repository:\n\n```text\nrepo-root/\n  .taskpilot/\n    project.yaml\n    items/\n      MP-1.yaml\n    comments/\n      MP-1/\n        2026-06-23T10-00-00Z.md\n```\n\nThe files under `.taskpilot/` are the product data. Indexes, caches, local server state, and UI\nstate are disposable.\n\n## CLI\n\nCommon commands:\n\n```bash\ntaskpilot init .\ntaskpilot project list\ntaskpilot item list\ntaskpilot item show MP-1\ntaskpilot item create --title \"Write docs\" --type task\ntaskpilot item update MP-1 --status done\ntaskpilot item parent CHILD-1 PARENT-1\ntaskpilot item blocks BLOCKER-1 TARGET-1\ntaskpilot item relates ITEM-1 ITEM-2\ntaskpilot item comment MP-1 \"Context for the next pass.\"\ntaskpilot validate\ntaskpilot serve\n```\n\nRun `taskpilot --help` or any subcommand with `--help` for the complete option list.\n\n## WebUI and Local API\n\n`taskpilot serve` starts the local WebUI and REST API server. It can be run from any directory and\nuses the local TaskPilot registry to list initialized projects.\n\n```bash\ntaskpilot serve\n```\n\nBy default TaskPilot binds to `127.0.0.1:7152`.\n\n- WebUI: `http://127.0.0.1:7152/`\n- REST API: `http://127.0.0.1:7152/api`\n- OpenAPI docs: `http://127.0.0.1:7152/docs`\n\nIf the packaged WebUI assets are missing, the root URL shows a packaging error page and the REST\nAPI remains available.\n\nTo validate a specific workspace before starting the server, pass `--workspace`:\n\n```bash\ntaskpilot serve --workspace /path/to/repo\n```\n\n## Offline Use and Runtime Cache\n\nThe first TaskPilot run creates a Python runtime environment in your user cache directory. This\nsetup may need network access to install the locked Python dependencies. After setup, normal\nTaskPilot commands work offline and reuse the cached runtime.\n\nDefault cache locations:\n\n| Platform | Cache directory |\n| --- | --- |\n| macOS | `~/Library/Caches/taskpilot/` |\n| Linux | `~/.cache/taskpilot/` |\n| Windows | `%LOCALAPPDATA%/taskpilot/Cache/` |\n\nIf setup fails, TaskPilot removes the partial runtime and preserves a setup log. Rebuild the runtime\nwith:\n\n```bash\ntaskpilot doctor --rebuild-runtime\n```\n\n## Package Support\n\nThe stable release supports global npm installation. `pnpm`, `yarn`, `npx`, and other package\nmanagers are not guaranteed to work yet.\n\n## Development\n\nThis repository uses Python and `uv` for local development.\n\n```bash\nuv sync\nuv run pytest\n```\n\nProject documentation lives under [`docs/`](docs/), including the product concept, accepted specs,\narchitecture notes, and roadmap.\n\nRelease helpers are available as npm scripts for maintainers:\n\n```bash\nnpm run quality-gates\nnpm run release:dry-run\n```\n","readmeFilename":"README.md"}