npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

milestr

v1.2.0

Published

Hierarchical goal, milestone, and KPI tracking CLI with auto-generated dashboard and Cloudflare Pages publishing

Readme

Milestr — AI Agent Goal & Milestone Dashboard

OpenCLAW and Hermes agent-powered milestone tracking dashboard. Built for AI agents to manage large projects, track progress, and maintain accountability across goals, milestones, initiatives, tasks, and KPIs.

License Node TypeScript


What is Milestr?

Milestr is a lightweight, terminal-driven project and milestone tracking dashboard designed for AI agents (and humans) who need to track progress, log activity, and visualize KPIs across goals, milestones, initiatives, tasks, and KPIs.

It gives agents a structured way to:

  • Track progress across goals, milestones, initiatives, and tasks
  • Log activity with timestamps and agent attribution
  • Visualize via a self-updating HTML dashboard (KPIs + Timeline, Kanban, List views)
  • Stay accountable — every change is logged, every status update is recorded
  • Track KPIs — live KPI cards with values, trends, and data sources

Installation

Milestr is distributed on npm. The fastest path for an agent or human is the global install:

npm install -g milestr

After install, verify the binary is on PATH:

which milestr          # → /usr/local/bin/milestr (or your npm global prefix)
milestr help           # → prints the full action list

To confirm the installed version, check the package metadata:

npm list -g milestr    # → [email protected]

Requirements

  • Node.js ≥ 22 (Active LTS). Earlier versions are not supported.
  • npm (ships with Node.js)

Where Milestr reads its data

The CLI reads and writes data.json in the current working directory by default. To pin a specific working directory across many commands, set MILESTR_DATA:

export MILESTR_DATA=/path/to/your/dashboard    # must contain data.json
milestr --agent planner list

Every milestr invocation reads from that directory until you unset the variable.

Installing from source (for contributors)

git clone https://github.com/Dr-Agentic/milestr.git
cd milestr
npm install
npm run build
npm test

Run from source with npm run dev -- <args> (note the -- to pass args through npm).


Features

  • 📋 Hierarchical task structure — Goals → Milestones → Initiatives → Tasks
  • 📊 Auto-calculated progress — parent progress cascades from children
  • 🕐 Activity log — every change is timestamped and attributed to an agent
  • 📈 KPI tracking — live KPI cards with values, trends, and data sources
  • 🖥️ HTML Dashboard — KPIs + Timeline + Kanban + List views, generated on every update
  • 💾 Backup & restore — automatic backups before every write
  • 🔌 CLI-first — designed for agents to interact with via shell commands
  • 📤 JSON output--json flag for machine-parseable responses on view, list, list-kpis, and metrics

Quick Start

Install dependencies

npm install

Initialize the dashboard

npm run dev -- --agent your-agent-name create --id M1 --title "First Milestone" --type milestone

Update status

npm run dev -- --agent your-agent-name status M1 ongoing
npm run dev -- --agent your-agent-name progress M1 50

Add and update KPIs

npm run dev -- --agent your-agent create-kpi --id kpi-users --title "Active Users" --value 0 --unit users --source "Product analytics"
npm run dev -- --agent your-agent update-kpi --id kpi-users --value 42 --trend up

View the HTML dashboard

open dashboard.html

Docs


CLI Reference

# Create a task
npm run dev -- --agent <name> create --id <id> --title <title> [--type task|initiative|milestone|goal] [--parent <parent-id>] [--due YYYY-MM-DD]

# Update status
npm run dev -- --agent <name> status <id> <status> [note]
# Statuses: not_started | analyzing | ongoing | done | blocked

# Update progress
npm run dev -- --agent <name> progress <id> <0-100>

# Set due date
npm run dev -- --agent <name> due <id> YYYY-MM-DD

# List tasks
npm run dev -- --agent <name> list [--status ongoing] [--type milestone]

# View task
npm run dev -- --agent <name> view <id>

# Recalculate parent progress from children
npm run dev -- --agent <name> recalc <id>

# --- KPI Actions ---

# Create a KPI
npm run dev -- --agent <name> create-kpi --id <id> --title <title> [--value <val>] [--unit <unit>] [--trend up|down|neutral] [--source <source>] [--icon <emoji>]

# Update a KPI value
npm run dev -- --agent <name> update-kpi --id <id> [--value <val>] [--trend up|down|neutral]

# List all KPIs
npm run dev -- --agent <name> list-kpis

# --- Dashboard Actions ---

# Export dashboard
npm run dev -- --agent <name> export

# Publish dashboard to Cloudflare Pages
npm run dev -- --agent <name> publish

# Backups
npm run dev -- --agent <name> backup
npm run dev -- --agent <name> backups
npm run dev -- --agent <name> restore <timestamp>

Data Model

The dashboard stores its state in data.json:

{
  "meta": { "lastUpdated": "2026-04-12T00:00:00Z", "version": "1.1" },
  "root": { /* Goal-level root task */ },
  "tasks": {
    "M1": { /* milestone task */ },
    "I1.1": { /* initiative task */ }
  },
  "kpis": {
    "kpi-users": { "id": "kpi-users", "title": "Active Users", "value": 42, "unit": "users", "trend": "up", "source": "Product analytics", "icon": "people", "lastUpdated": "2026-04-12T00:00:00Z" }
  }
}

Perfect for Agents

Milestr was designed from the ground up to be agent-friendly:

  • Deterministic CLI — every action has a clear command, no ambiguity
  • Atomic writes — every save creates a backup first
  • Activity log — agents can review their own history of changes
  • KPI tracking — agents can update business KPIs as they discover new data
  • No UI required — agents interact entirely via terminal; humans read the HTML dashboard
  • Zero human intervention — agents can own and operate their own projects

Example agent use cases:

  • Strategy Officer agent tracks M1–M5 milestones toward an ARR goal, plus KPIs like sign-ups, MRR, and churn
  • Engineering agent tracks features, bug fixes, and deployment readiness
  • Marketing agent tracks campaigns, content calendars, and lead funnels, plus KPIs like impressions and clicks
  • Research agent tracks experiments, hypotheses, and findings

Project Structure

milestr/
├── src/
│   ├── index.ts          # CLI entry point
│   ├── types.ts          # TypeScript interfaces + KPI interface
│   ├── errors.ts         # Custom error types
│   ├── actions/
│   │   ├── handlers.ts   # Action handlers (create, status, progress, create-kpi, update-kpi...)
│   │   └── utils.ts      # Shared utilities
│   ├── data/
│   │   ├── store.ts      # JSON read/write + validation
│   │   ├── schema.ts     # Zod schema (includes KPI schema)
│   │   ├── backup.ts      # Backup management
│   │   ├── logger.ts     # Activity logging
│   │   ├── config.ts     # Config paths
│   │   └── lock.ts       # File locking
│   └── ui/
│       └── dashboardHtml.ts  # HTML dashboard generator (KPIs + Timeline + Kanban + List)
├── data.json             # Project data (generic sample at HEAD — replace with your own)
├── sample-data.json      # Canonical generic sample (kept in sync with data.json at HEAD)
├── dashboard.html        # Generated HTML dashboard
├── package.json
└── tsconfig.json

OpenCLAW Integration

Milestr is designed to run as an agent-owned tool within OpenCLAW. Agents call the CLI directly via exec calls, passing their agent name for attribution.

Example OpenCLAW agent task file:

// Track a milestone
await exec(`npm run dev -- --agent planner status M1 ongoing`);

// Log a KPI update
await exec(`npm run dev -- --agent operator update-kpi --id kpi-users --value 42 --trend up`);

// View dashboard
await exec(`open dashboard.html`);

License

MIT — use it, fork it, make it yours.


Milestr: Every goal, tracked. Every step, accountable.