DeepWork
Synced from
deepwork/README.md. The repository is the source of truth.
deepwork is the native Pi package for DeepWork workflows, DeepWork Reviews, and DeepSchema.
The Pi extension is intentionally native: it does not require .mcp.json, does not start a DeepWork MCP server, and does not route Pi tools through MCP. That is a property of the Pi path (PI-REQ-001), not of the repository — Claude Code and Codex have no equivalent extension API, so they are served by a separate bundled MCP entry point that the Pi path never loads. Runtime implementation work reuses existing DeepWork behavior through native TypeScript implementations and a narrow compatibility bridge where behavior has not yet been ported.
Install from GitHub
Section titled “Install from GitHub”From a Pi project, install the package with:
pi install git:github.com/ai-outfitter/deepworkThen reload Pi resources if Pi is already running:
/reloadThe published package is @ai-outfitter/deepwork; it provides the native DeepWork extension and packaged skills/prompts for Pi, and the plugin surfaces for Claude Code and Codex.
Use with Claude Code
Section titled “Use with Claude Code”claude plugin marketplace add ai-outfitter/deepworkclaude plugin install deepwork@ai-outfitterFor a checkout, npm ci && npm run build, then claude --plugin-dir /path/to/deepwork.
See docs/claude-code.md for setup options, the capability mapping, and known gaps.
Use with Codex
Section titled “Use with Codex”npm install -g @ai-outfitter/deepworkcodex plugin marketplace add ai-outfitter/deepworkcodex plugin add deepwork@ai-outfitterCodex passes a plugin MCP server almost no environment, so DEEPWORK_* settings
must be declared in the plugin’s own config rather than exported in your shell.
See docs/codex.md.
Pi usage is unchanged and remains MCP-free on both counts.
Local development
Section titled “Local development”Clone this repository and install dependencies:
git clone https://github.com/ai-outfitter/deepwork.gitcd deepworknpm ciFrom a Pi project, install the local checkout with:
pi install /path/to/deepwork -lRun available checks from the package checkout:
npm run check:packagenpm run typechecknpm testReleases
Section titled “Releases”DeepWork releases are managed with release-please. Use Conventional Commit messages
(feat:, fix:, docs:, chore:) on merged PRs. After changes land on
main, the Release Please workflow opens or updates a release PR. Merging that
release PR updates package.json, package-lock.json, CHANGELOG.md, creates
the GitHub release, and tags the version.
Pi users who install from GitHub should reference the canonical repository:
pi install git:github.com/ai-outfitter/deepworkIf Pi is already running, restart Pi or reload resources after the profile or installed package source changes so the new native tools are available in the current session.
Native Pi resources
Section titled “Native Pi resources”The package manifest declares:
{ "pi": { "extensions": ["./src/index.ts"], "skills": ["./skills"], "prompts": ["./prompts"] }}The extension entry point registers /review, /deepwork_review, /configure-reviews, /record, the native deepwork_* tools listed below, session context restoration, commit review reminders, and DeepSchema write feedback hooks. /deepwork itself is provided as a prompt/skill-style resource at prompts/deepwork.md; it tells the agent to call deepwork_get_workflows, infer the appropriate workflow, and start it with native tools.
Required native tool surface
Section titled “Required native tool surface”The implementation requirements define these Pi-native tools:
deepwork_get_workflowsdeepwork_register_session_jobdeepwork_get_session_jobdeepwork_start_workflowdeepwork_finished_stepdeepwork_abort_workflowdeepwork_go_to_stepdeepwork_get_review_instructionsdeepwork_get_configured_reviewsdeepwork_mark_review_as_passeddeepwork_get_named_schemas
These tools are registered with pi.registerTool() and do not call MCP tools or require an MCP server. Workflow discovery, workflow runtime, and session-job registration use native TypeScript implementation paths and include bundled standard jobs from standard_jobs/ unless DEEPWORK_STANDARD_JOBS_DIR overrides the source.
Package resources
Section titled “Package resources”src/contains the native Pi extension entry point, bridge, tools, workflow runtime helpers, review helpers, and DeepSchema helpers.extensions/contains Pi command/tool/lifecycle registration.skills/contains packaged Pi skills for DeepWork, reviews, DeepSchema, DeepPlan, record, and onboarding flows.prompts/contains the/deepworkprompt resource.standard_jobs/andstandard_schemas/contain bundled DeepWork jobs and DeepSchema definitions used by the extension.docs/contains user-facing review and bridge documentation.doc/specs/deepwork-pi/contains native Pi requirements retained from the implementation source.
Package status
Section titled “Package status”Implemented so far:
package.jsonwith standalone Pi package metadata forai-outfitter/deepworksrc/index.tsPi extension entry pointextensions/index.tsnative Pi tool, command, and lifecycle registrationsrc/bridge.tscentralized compatibility bridge for operations not yet ported to TypeScriptsrc/workflows/discovery.tsnative TypeScript workflow discovery and parsing fordeepwork_get_workflowssrc/workflows/session-jobs.tsnative TypeScript session-job registration and retrieval for DeepPlan-generated jobstsconfig.jsonTypeScript project configdoc/specs/deepwork-pi/native Pi requirementsskills/native Pi skill setstandard_jobs/bundled DeepWork standard jobs, includingdeepwork_jobs/new_job,deepwork_jobs/learn,deepwork_jobs/repair,deepwork_jobs/shared_jobs,deepwork_reviews/*, anddeepplan/create_deep_plandocs/native Pi review/bridge reference docs
Requirements
Section titled “Requirements”Primary requirements are in:
doc/specs/deepwork-pi/PI-REQ-001-native-pi-extension.mddoc/specs/deepwork-pi/PI-REQ-002-native-pi-tools.mddoc/specs/deepwork-pi/PI-REQ-003-native-pi-reviews.md
Reuse guidance
Section titled “Reuse guidance”The native Pi package should preserve existing DeepWork workflow, review, DeepSchema, and state-management semantics instead of forking behavior.