← All tools

mako10k/perttool

Popularity 75 Updated Development & Build

Document-based PERT/CPM and resource scheduling CLI

githubauto-collected

Installation

A directly usable install command is not verified yet. Check the project documentation or releases.

perttool

perttool is a local CLI for keeping PERT/CPM plans in reviewable text files. It validates an Activity-on-Arrow plan, calculates precedence and resource-constrained schedules, recommends the next task, and applies source-preserving changes through preview-first commands.

The published 0.5.0 beta implements Grammar 5 and CLI Contract 6, including explicit task work events, lifecycle commands, read-only Git history, observed velocity, AnalysisResult v4, and NextResult v5. npm beta resolves to 0.5.0, while latest remains on Contract 5 0.4.0. Beta releases may contain breaking CLI or schema changes. Version 0.5.0 requires Node.js 22 or later. Contract 5, Contract 4, and Contract 3 remain available by pinning 0.4.0, 0.3.0, and 0.2.0, respectively.

Run without installing

Use npx for an occasional invocation and select Contract 6 explicitly:

npx --yes --package=perttool@0.5.0 -- perttool --version
npx --yes --package=perttool@0.5.0 -- perttool document check PLAN.pert
npx --yes --package=perttool@0.5.0 -- perttool dag next PLAN.pert --format json
npx --yes --package=perttool@0.5.0 -- perttool project history PLAN.pert --format json

The equivalent explicit npm exec form is:

npm exec --yes --package=perttool@0.5.0 -- perttool --version
npm exec --yes --package=perttool@0.5.0 -- perttool document check PLAN.pert
npm exec --yes --package=perttool@0.5.0 -- perttool dag analyze PLAN.pert
npm exec --yes --package=perttool@0.5.0 -- perttool project history PLAN.pert --format json

npx and npm exec may download the selected package version into the npm cache. Pinning 0.4.0 selects Contract 5 and therefore omits Grammar 5 lifecycle and history; 0.3.0 selects Contract 4, and 0.2.0 selects Contract 3.

Install

Install the CLI globally when it is used regularly:

npm install --global perttool@0.5.0
perttool --version

npm beta now resolves to Contract 6 0.5.0, while latest remains on Contract 5 0.4.0. Contract 5, Contract 4, and Contract 3 remain available as exact pins perttool@0.4.0, perttool@0.3.0, and perttool@0.2.0.

Plan files

A .pert file is the source of truth and is intended to remain directly readable. This temporal plan has one one-day task:

project EXAMPLE:
  version 2
  title "Example plan"
  as_of 2026-07-26
  duration_unit day
  finish DONE

milestone NOW:
  title "Current frontier"
  state reached

milestone DONE:

deadline 2026-07-28

task WORK NOW - DONE: title "Do the work" duration 1d notbefore 2026-07-26 deadline 2026-07-27