An AI Project Manager built on OpenClaw.
Languages: English · 简体中文 · 繁體中文
Heads up — early development. This project is still in its initial development phase. The design, repo layout, and APIs are not yet stable, and most skills below are planned rather than shipped. Star / watch the repo and stay tuned — a first MVP (M1) is on the way. Feedback and issues are very welcome.
pmgo is an OpenClaw Agent persona + MCP Skills Pack that turns your OpenClaw gateway into a digital project manager. It covers four scenarios with one codebase:
- Personal GTD / OKR
- Agile team workflows (Jira, Linear, GitHub Issues)
- Full software development lifecycle (requirements → dev → test → release)
- General team project management (Feishu, DingTalk, Notion)
It ships as a skills pack, not a fork — so it keeps pace with OpenClaw upstream without merge pain.
- Multi-channel — reach pmgo over Telegram, Feishu, Slack, Discord, WhatsApp, and more via the OpenClaw Gateway.
- Always-on — heartbeats drive morning briefings, blocker scans, and Friday reports without you asking.
- Persistent memory — SQLite + human-readable Markdown under
memory/projects/<slug>/. - Sandboxed — allow-list policy for sensitive writes (Jira transitions, PR close, file writes).
- Multi-agent — a main
pmgobrain delegates toplanner,tracker,risker, andreportersub-agents. - i18n-ready — English, Simplified Chinese, and Traditional Chinese out of the box.
The project is in early development — the commands below are the target UX, not a fully working install yet. Follow the roadmap below for progress.
# Install OpenClaw first (see https://openclaw.ai)
npm i -g openclaw
openclaw onboard
# Add pmgo as an agent (planned)
openclaw agent add ./agentThis repository now includes an importable OpenClaw agent package:
agent/- canonical agent package (SOUL.md,IDENTITY.md,USER.md,TOOLS.md,AGENTS.md)skills/- MCP skill definitions and implementationslocales/- runtime i18n dictionaries (en,zh-CN,zh-TW)policy/pmgo.policy.yaml- allow-list and confirmation policycron/jobs.yaml- proactive heartbeat and scheduled jobsmemory/templates/- locale-aware reporting templatesmemory/schema.sql- canonical SQLite schema snapshotmemory/migrations/- append-only schema migration history
pmgo uses a hybrid memory model:
- SQLite DB (
memory/pmgo.db) stores structured long-term entities. - Schema SQL (
memory/schema.sql) defines canonical database structure. - Markdown (
memory/projects/<slug>/) stores human-readable project notes.
Initialize and verify local memory DB:
npm run memory:check
npm run memory:init
npm run memory:migrate
npm run memory:verifyOr run the full bootstrap pipeline in one command:
npm run memory:scaffoldAnd with project markdown scaffolding:
npm run memory:scaffold -- --project-name "PMGO MVP" --locale zh-CNInitialize project-scoped markdown memory directory:
npm run memory:init:project -- --name "PMGO MVP" --locale enOptional arguments:
--slugto force a custom directory name undermemory/projects/.--localesupportsen,zh-CN, andzh-TW(default:en).
Set GITHUB_TOKEN and GITHUB_REPO=owner/name (for example flygoly/pmgo). Then use the bundled REST helper:
npm run github-issues -- smoke
npm run github-issues -- list --state open
npm run github-issues -- import-task --project-id <UUID> --number 42Details: skills/integration-github/SKILL.md. Importing creates a local task with source=github and external_id set to GitHub’s numeric issue id for idempotency.
Set LINEAR_API_KEY from Linear → Settings → API. Then:
npm run linear-issues -- smoke
npm run linear-issues -- list --first 10
npm run linear-issues -- get ENG-123
npm run linear-issues -- import-task --project-id <UUID> --identifier ENG-123Details: skills/integration-linear/SKILL.md. Importing sets source=linear and external_id to Linear’s issue UUID.
To register the policy-aware MCP tool server (scripts/pmgo_mcp_server.py), connect Telegram (or another channel), and schedule daily/weekly runs with Gateway cron, follow openclaw/README.md. The small cron/jobs.yaml in this repo is a narrative reference only; production schedules use openclaw cron add.
OpenClaw Gateway (channels)
│
▼
pmgo Agent ──► planner / tracker / risker / reporter
│
▼
Skills Pack (MCP)
project-core · daily-standup · weekly-report · risk-radar
integration-{github,linear,jira,notion,feishu,dingtalk}
│
▼
Memory: SQLite + Markdown ◄── Heartbeat/Cron jobs
| Milestone | Scope |
|---|---|
| M1 — MVP (2–3 weeks) | Repo scaffold · agent persona · 3 native skills (project-core, daily-standup, weekly-report) · GitHub Issues connector · 1 IM channel (Telegram or Feishu) · end-to-end personal GTD flow |
| M2 — Beta (+3–4 weeks) | risk-radar (Python MCP) · Jira/Linear connector · multi-agent orchestration · cron/heartbeat jobs live |
| M3 — v1.0 (+4–6 weeks) | Feishu/DingTalk/Notion connectors · Gantt & burndown on OpenClaw Live Canvas · publishable SKILL.md for one-click install |
- Code, identifiers, commit messages, and inline comments: English only.
- README: English is canonical;
README.zh-CN.mdandREADME.zh-TW.mdmirror it. - User-facing strings (agent replies, report templates, error messages, UI labels) are loaded from
locales/{en,zh-CN,zh-TW}.jsonand selected per-session based on the user's locale (fallback:en). - Agent persona files:
agent/*.mdare English canonical; localised overlays live underagent/locales/{zh-CN,zh-TW}/*.md. - Contributions: please write new strings in English first, then add translations for
zh-CNandzh-TWin the same PR.
Contributions are welcome. A few ground rules:
- Code, variable names, function names, file names, and commit messages are in English.
- New user-facing strings must be added to all three locale files in the same PR.
- Follow the allow-list policy in
policy/pmgo.policy.yaml— never expand shell or delete permissions casually.
Before opening a PR, run the repository checks (agent i18n validation, memory asset and database verification, project-core list smoke, daily-standup / weekly-report / risk-radar smokes when a project exists, github-issues:smoke and linear-issues:smoke when the respective API env vars are missing, and mcp:pmgo:check for OpenClaw MCP dependencies when pip install mcp pyyaml is available):
npm run validateSee CONTRIBUTING.md for the full workflow.
Licensed under the Apache License, Version 2.0. See NOTICE for attribution requirements.