project-progress
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@project-progresslist all my projects and their status"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Awesome Progress Tracker
Resumable memory for Codex, Claude Code, and any MCP-compatible agent.
Project-local Markdown that survives context resets — so your agent picks up exactly where it left off, every session, in one file it can read in a few hundred tokens.
Why · Features · Quick Start · MCP Tools · Troubleshooting
Why
Agent sessions end. Context windows reset. New sessions start cold, and a lot of the first few minutes gets spent re-deriving "what was I doing?" — or worse, redoing it.
Awesome Progress Tracker fixes that with one convention: every project keeps a project-progress/Progress.md file as its resume source of truth. A SessionStart hook injects the compact bits — Resume Snapshot, Next Action, Blockers — into the agent's context automatically. No dashboards, no databases, nothing to sync. Just a Markdown file the agent reads at kickoff and updates before it stops.
session 1 ──work──► Progress.md updated (Resume Snapshot · Next Action · Blockers)
│
new session ◄── SessionStart hook injects the snapshot, no lookup needed ──┘Related MCP server: agent-coordination-mcp
Features
🗂️ One file per project, human-readable —
project-progress/Progress.mdis plain Markdown. Read it, edit it, diff it, commit it.🔁 Automatic resume context — a
SessionStarthook injects the Resume Snapshot and Next Action at kickoff, so the agent never starts blind.🛡️ Sensitive-commit guard — a
PreToolUsehook blocksgit commitwhen staged progress declarescommit_progress: falseorsensitivity: sensitive.⏰ Stop reminders — a
Stophook flags when the working tree changed butProgress.mddidn't, and scans for accidentally-committed secrets.🧩 Works everywhere — first-class plugins for Claude Code and Codex, plus an open-standard
SKILL.mdskill for Gemini CLI, Copilot, and Cursor.🌐 Cross-project index via MCP — a lightweight MCP server answers "what am I working on?" across every tracked project, with a tiny, validated tool surface (see MCP Server).
🩺 Scriptable health checks —
doctor --jsongives a non-zero exit code and a diagnostic report when setup is broken, so CI or a pre-flight script can catch it.
Choose Your Path
I use... | Install this way |
Claude Code | Install As A Claude Code Plugin — zero-config, one marketplace add |
Codex | Install As A Codex Plugin — native plugin flow, no |
Gemini CLI / Copilot / Cursor | Drop |
MCP client or CLI only | Install With npm/npx and, if needed, MCP Server |
Requirements: Node.js >= 18. The hooks and MCP server run entirely on Node; no Python is required.
Start a new agent session after plugin installation. Run awesome-progress-tracker doctor -g codex or awesome-progress-tracker doctor --json for a scriptable setup check.
Install As A Claude Code Plugin (recommended)
This is the zero-config path: one marketplace add + install wires the skill, the MCP index
server, and lifecycle hooks with no edits to your global CLAUDE.md or ~/.claude.json.
/plugin marketplace add AndriiLavrekha/awesome-progress-tracker
/plugin install project-progress@awesome-progress-trackerOr from the CLI:
claude plugin marketplace add AndriiLavrekha/awesome-progress-tracker
claude plugin install project-progress@awesome-progress-trackerWhat you get after install (restart the session to load it):
Piece | What it does |
Skill | Guides the agent to maintain |
Command | Initializes tracking in the current repo |
MCP server |
|
| Injects the Resume Snapshot / Next Action as context |
| Blocks |
| Reminds you to update progress (and flags secrets) when the tree changed but |
To scope the MCP index to specific roots, set PROJECT_PROGRESS_ROOTS (semicolon-separated)
in the environment Claude Code runs in; the server scans those roots on refresh_projects.
The plugin ships prebuilt
dist/so it runs straight from the cloned repo with no build step.
Install As A Codex Plugin (recommended)
The same repo is also a Codex plugin (.codex-plugin/plugin.json + .agents/plugins/marketplace.json),
so it installs through the native Codex plugin flow — no manual config.toml editing:
codex plugin marketplace add AndriiLavrekha/awesome-progress-tracker
codex plugin add project-progress@awesome-progress-trackerThis wires the same skill, MCP server, and lifecycle hooks (hooks/hooks-codex.json)
as the Claude Code plugin. Codex hook commands use ${PLUGIN_ROOT} and the bundled MCP server
uses the Codex-specific .mcp.codex.json file. Restart Codex or start a new Codex session after
installing or updating the plugin so the manifest, MCP server, and hooks are reloaded.
Codex does not auto-trust plugin-bundled hooks: the first time theSessionStart / PreToolUse /
Stop hooks fire, Codex asks you to review and trust them. Approve once to enable the
resume-context injection and the sensitive-commit guard.
Use the command path that matches how you installed the plugin.
Codex
codex plugin marketplace upgrade
codex plugin add project-progress@awesome-progress-tracker
codex plugin listCodex refreshes configured Git marketplaces with the first command; re-adding the plugin installs
the latest marketplace snapshot. Start a new Codex session afterward. If prompted, review and
trust the updated hooks in /hooks.
Claude Code
claude plugin update project-progress@awesome-progress-tracker
claude plugin listRestart Claude Code after the update so the plugin's skills, MCP server, and hooks reload.
Codex hooks are lifecycle context, not interactive modals. On an initialized project,
SessionStart injects compact resume context from project-progress/Progress.md. On an
uninitialized project, it emits guidance telling the agent to ask before initialization when the
requested work is multi-step. The agent and skill perform the user-facing ask:
This project is not initialized with Awesome Progress Tracker. Do you want me to create `project-progress/` here?If you answer yes, the agent should run awesome-progress-tracker init . --project "<name>" or
project-progress init . --project "<name>". If you answer no, the agent should record a local
per-project opt-out so future sessions stay quiet:
awesome-progress-tracker state set . --state opted-outThe opt-out is stored outside the repository under the Awesome Progress Tracker user data directory; it does not dirty the project.
Skills follow the cross-tool open standard (SKILL.md), so the same skill also works in Codex,
Gemini CLI, Copilot, and Cursor when placed under ~/.agents/skills or a repo's .agents/skills.
Initialize A Project
After npm publication:
npx awesome-progress-tracker init /path/to/repo --project "My Project"From the private GitHub repository:
npx github:AndriiLavrekha/awesome-progress-tracker init /path/to/repo --project "My Project"Or install it globally:
npm install -g github:AndriiLavrekha/awesome-progress-tracker
project-progress init /path/to/repo --project "My Project"The init command creates project-progress/ from templates/project-progress/. Then update project-progress/Progress.md frontmatter and sections for that project. Keep Resume Snapshot, Next Action, Remaining Work, and Blockers compact enough for an agent to load first.
Install the global bootstrap for the agent you use.
Claude Code is the default:
npx github:AndriiLavrekha/awesome-progress-tracker install
npx github:AndriiLavrekha/awesome-progress-tracker install -g claudeCodex:
npx github:AndriiLavrekha/awesome-progress-tracker install -g codexThe installer does not initialize every project automatically. It installs global bootstrap instructions that tell the agent to check for project-progress/Progress.md at kickoff. If the current project is not initialized, the agent must ask before creating project-progress/.
The installer also configures the selected agent's MCP client to run this package:
Claude Code: updates
~/.claude.json.Codex: updates
~/.codex/config.toml.
By default, the MCP server scans the directory where you ran install. To scan other roots:
npx github:AndriiLavrekha/awesome-progress-tracker install -g codex --roots "C:/Users/me/Documents;C:/Users/me/Projects"Check installation state:
npx github:AndriiLavrekha/awesome-progress-tracker status
npx github:AndriiLavrekha/awesome-progress-tracker status -g codexInspect or reset per-project opt-in/opt-out state:
npx github:AndriiLavrekha/awesome-progress-tracker state list
npx github:AndriiLavrekha/awesome-progress-tracker state set /path/to/repo --state opted-out
npx github:AndriiLavrekha/awesome-progress-tracker state reset /path/to/repoRun a setup health check:
npx github:AndriiLavrekha/awesome-progress-tracker doctor
npx github:AndriiLavrekha/awesome-progress-tracker doctor -g codexInstall and immediately verify:
npx github:AndriiLavrekha/awesome-progress-tracker install --verify
npx github:AndriiLavrekha/awesome-progress-tracker install -g codex --verifyInstall only the MCP configuration, without bootstrap instructions:
npx github:AndriiLavrekha/awesome-progress-tracker install-mcp
npx github:AndriiLavrekha/awesome-progress-tracker install-mcp -g codexWrite a project-local MCP config instead of user-global config:
npx github:AndriiLavrekha/awesome-progress-tracker install-mcp --local --roots "."This writes .mcp.json in the current project.
Remove managed bootstrap and MCP config:
npx github:AndriiLavrekha/awesome-progress-tracker uninstall
npx github:AndriiLavrekha/awesome-progress-tracker uninstall -g codex
npx github:AndriiLavrekha/awesome-progress-tracker uninstall --localManual instruction files are also available:
install or reference
skills/project-progress/SKILL.mdfor Codexpaste
agent-instructions/AGENTS-snippet.mdinto a project or global AGENTS.mdpaste
agent-instructions/CLAUDE-snippet.mdinto Claude Code memoryfollow
agent-instructions/HOOKS.mdfor lifecycle reminders and validation
Agents should update progress at kickoff when state changes, after milestones, when blockers appear, after verification, and before ending a meaningful session.
Windows
./hooks/project-progress-check.ps1 -ProjectRoot . -SessionStartedAt 2026-06-27T00:00:00+00:00 -MeaningfulWork -CompletionBoundaryPOSIX
./hooks/project-progress-check.sh --project-root . --session-started-at 2026-06-27T00:00:00+00:00 --meaningful-work --completion-boundaryThe wrappers run the compiled hook (dist/src/hook/cli.js) on Node, so run npm run build (or
install the published package, which builds on prepare) before invoking them. For direct use
without the wrappers, call node dist/src/hook/cli.js --project-root . --session-started-at <iso>.
MCP Server
After npm publication:
npx awesome-progress-tracker mcpFrom the private GitHub repository:
npx github:AndriiLavrekha/awesome-progress-tracker mcpConfigure discovery with a semicolon-separated PROJECT_PROGRESS_ROOTS value:
$env:PROJECT_PROGRESS_ROOTS = "C:/Users/you/Documents;C:/Users/you/Projects"
npx github:AndriiLavrekha/awesome-progress-tracker mcpFor local development in this repo:
npm install
npm run build:mcp
node dist/src/mcp/server.jsFor MCP clients installed from npm or GitHub, use the package binary directly (awesome-progress-tracker mcp or project-progress mcp) so stdio output stays clean.
Tool surface — deliberately small; administrative tracking state lives in the CLI (state list/set/reset), not here:
Tool | What it does |
| List compact summaries from the cached index; optional |
| Rescan |
| Read one project's compact progress summary |
| Replace or append a named section in a project's |
| Update frontmatter |
The MCP server maintains a lightweight global index:
~/.awesome-progress-tracker/projects.json
~/.awesome-progress-tracker/Projects.mdproject-progress/Progress.md remains the source of truth. The index is only a fast global view for "what projects exist?" queries. refresh_projects rescans PROJECT_PROGRESS_ROOTS and updates the index. init, update_project_progress, and mark_project_status also upsert the affected project into the index.
Verification
For manual and agent-led validation, use:
TESTING.mdagent-instructions/SELF-TEST.md
Run the tests and build:
npm test
npm run buildVerify package creation and npx-style execution locally:
npm pack --dry-run
npm pack
npx --yes ./awesome-progress-tracker-0.1.0.tgz helpRun the lifecycle check against this repo:
./hooks/project-progress-check.ps1 -ProjectRoot . -SessionStartedAt 2026-06-27T00:00:00+00:00 -MeaningfulWork -CompletionBoundaryTroubleshooting Codex
Check these in order:
Plugin installed and enabled:
codex plugin list.Plugin hooks trusted: open
/hooksin Codex and trust theproject-progresshook definitions.New Codex session started after install or plugin update.
The project is actually uninitialized:
project-progress/Progress.mdis missing.The project is not opted out:
awesome-progress-tracker state list; reset withawesome-progress-tracker state reset ..The task is non-trivial: hooks tell the agent to ask only for multi-step feature, investigation, refactor, setup, debugging, deployment, or release work.
MCP configured and running: use
/mcpin Codex orawesome-progress-tracker doctor -g codex.
Hooks are best-effort and must never block normal Codex operation on their own. If hooks are disabled
or untrusted, the project-progress skill and bootstrap instructions still define the workflow.
Contributing
This is currently a private, single-maintainer repo. See AGENTS.md for structure and
coding conventions and TESTING.md for the verification workflow before opening a PR.
Each project owns its own progress files. Global vaults, dashboards, hooks, and MCP tools may read
or summarize them, but they should not replace them — the source of truth is always the
project-progress/ folder inside each project.
Path | What lives there |
| Canonical Markdown templates for new projects |
| Cross-tool skill instructions for maintaining progress during agent work |
| Reusable AGENTS.md, Claude Code, and hook guidance snippets |
| TypeScript progress validation and lifecycle hook checks (compiled to |
| PowerShell and POSIX wrappers that run the compiled hook on Node |
| TypeScript MCP server that reads and updates project-local progress files |
| The Claude Code plugin (skill + MCP server + lifecycle hooks + |
| The Codex plugin (reuses the same skill and |
License
MIT — see the license field in package.json.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/AndriiLavrekha/awesome-progress-tracker'
If you have feedback or need assistance with the MCP directory API, please join our Discord server