This gives you the taskgraph command and taskgraph-mcp, the optional MCP server. To skip the install, run any command through npx, for example npx -y -p taskgraph-ai taskgraph list.
This creates .taskgraph/ (tasks, docs, config), and a CLAUDE.md import with TaskGraph’s workflow guide. Pass --no-claude to skip the CLAUDE.md import. init does not install slash commands (step 3 does) and doesn’t register the MCP server unless you pass --mcp (step 4).
Don’t run init twice. It only re-adds the same files.
The plugin also adds two hooks and a taskgraph skill. In a project with a .taskgraph/ folder, each Claude Code session (and each resume after compaction) starts with the output of taskgraph prime: the task in progress, what’s ready next, and the workflow rules. Elsewhere the hook does nothing. It needs a CLI with the prime command, so update the CLI when you update the plugin.When Claude finishes a turn and a task is still in progress with no note from this session, the Stop hook reminds Claude once per session to log what it did with taskgraph note, or to close the task. The session starts when the session hook runs: it saves that time in a private folder in your temp folder ($TMPDIR/taskgraph-<your user ID>/session-<session ID>, readable only by you), and compacting the conversation keeps it. The taskgraph skill tells Claude to use TaskGraph when you ask what to do next or plan work in a project that has .taskgraph/.
The slash commands (from the plugin) and the CLI do everything without MCP. Add the server only if you want to drive TaskGraph in plain language:
claude mcp add taskgraph-ai --scope user \ --env TASKGRAPH_TOOLS=standard \ -- npx -y taskgraph-ai
Restart Claude Code and run /mcp. taskgraph-ai should show as connected. If you see 0 tools enabled, restart Claude Code and confirm npx -y taskgraph-ai starts on its own in a terminal.The equivalent .mcp.json entry is:
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"TaskGraph","colors":{"primary":"#3366CC","light":"#6699FF","dark":"#24478F"},"logo":{"light":"https://mintcdn.com/myself-fcf8480c/GzHIJhIlhqfXn7i0/logo/light.png?fit=max\u0026auto=format\u0026n=GzHIJhIlhqfXn7i0\u0026q=85\u0026s=a9a99fb754babb33f3e453d5b6fad8bd","dark":"https://mintcdn.com/myself-fcf8480c/GzHIJhIlhqfXn7i0/logo/dark.png?fit=max\u0026auto=format\u0026n=GzHIJhIlhqfXn7i0\u0026q=85\u0026s=9a151e3e3fae6e29a90682861902973d"},"favicon":"https://mintcdn.com/myself-fcf8480c/GzHIJhIlhqfXn7i0/favicon.svg?fit=max\u0026auto=format\u0026n=GzHIJhIlhqfXn7i0\u0026q=85\u0026s=0faee9c94d472bab5c924c6d85eb19db","footer":{"socials":{"github":"https://github.com/stephennmiller/taskgraph-ai"}},"navigation":{"global":{"anchors":[{"anchor":"Github","icon":"github","href":"https://github.com/stephennmiller/taskgraph-ai"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"myself-fcf8480c","hasAudioNarration":false,"actualSubdomain":"myself-fcf8480c","customDomains":["taskgraph-ai.com"],"gitSource":{"type":"github","owner":"stephennmiller","repo":"taskgraph-ai","deployBranch":"main","contentDirectory":"apps/docs","isPrivate":false,"mountPath":"","label":"","_id":"6adbe6592725bd848f58b0e3"},"chroma":{"latestBuiltDeploymentHistoryId":"6adbf8263c71c34680b073dc","collectionId":"6d13d4d2-18be-4e16-881a-9b8ab7e6de84","liveDeploymentHistoryId":"6adbf8263c71c34680b073dc","schemaVersion":"v3"},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6adbf8263c71c34680b073dc","clientVersion":"0.0.3962","searchFilterCounts":[{"language":"default","tag":"TaskGraph Documentation","count":35},{"language":"default","tag":"Technical Capabilities","count":16},{"language":"default","tag":"Getting Started","count":13},{"language":"default","tag":"Quick Start","count":7},{"language":"default","tag":"CLI Commands","count":5},{"language":"default","tag":"Best Practices","count":3},{"language":"default","tag":"Welcome","count":3}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"#navbar img{height:auto!important;width:200px!important;margin-top:5px!important}"}],"page":{"pagePath":"getting-started/quick-start/installation","slug":"/getting-started/quick-start/installation","pageMetadata":{"title":"Installation","sidebarTitle":"Installation","description":"Install the taskgraph-ai npm package, run taskgraph init in your project, and add the Claude Code plugin for /taskgraph: slash commands.","href":"/getting-started/quick-start/installation"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Install the taskgraph-ai npm package, run taskgraph init in your project, and add the Claude Code plugin for /taskgraph: slash commands.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,p:`p`,pre:`pre`,span:`span`,..._provideComponents(),...props.components},{CodeBlock,Heading,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`With Claude Code and Node.js in place, install TaskGraph and set it up in your project.`}),`\n`,_jsx(Heading,{level:`2`,id:`1-install-the-cli`,children:`1. Install the CLI`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`npm`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` install`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -g`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` taskgraph-ai`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`This gives you the `,_jsx(_components.code,{children:`taskgraph`}),` command and `,_jsx(_components.code,{children:`taskgraph-mcp`}),`, the optional MCP server. To skip the install, run any command through npx, for example `,_jsx(_components.code,{children:`npx -y -p taskgraph-ai taskgraph list`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`2-initialize-your-project`,children:`2. Initialize your project`}),`\n`,_jsx(_components.p,{children:`From your project folder:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`taskgraph`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` init`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`This creates `,_jsx(_components.code,{children:`.taskgraph/`}),` (tasks, docs, config), and a `,_jsx(_components.code,{children:`CLAUDE.md`}),` import with TaskGraph’s workflow guide. Pass `,_jsx(_components.code,{children:`--no-claude`}),` to skip the `,_jsx(_components.code,{children:`CLAUDE.md`}),` import. `,_jsx(_components.code,{children:`init`}),` does not install slash commands (step 3 does) and doesn’t register the MCP server unless you pass `,_jsx(_components.code,{children:`--mcp`}),` (step 4).`]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`Don’t run `,_jsx(_components.code,{children:`init`}),` twice. It only re-adds the same files.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`3-install-the-plugin`,children:`3. Install the plugin`}),`\n`,_jsxs(_components.p,{children:[`The Claude Code plugin is the only way to get slash commands. It adds the `,_jsx(_components.code,{children:`/taskgraph:`}),` slash commands and two agents (`,_jsx(_components.code,{children:`task-executor`}),`, `,_jsx(_components.code,{children:`task-checker`}),`):`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`3`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`3`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`/plugin marketplace add stephennmiller/taskgraph-ai`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`/plugin install taskgraph@taskgraph`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsxs(_components.p,{children:[`The plugin also adds two hooks and a `,_jsx(_components.code,{children:`taskgraph`}),` skill. In a project with a `,_jsx(_components.code,{children:`.taskgraph/`}),` folder, each Claude Code session (and each resume after compaction) starts with the output of `,_jsx(_components.a,{href:`/capabilities/cli-viewing-commands#prime-a-coding-agent`,children:_jsx(_components.code,{children:`taskgraph prime`})}),`: the task in progress, what’s ready next, and the workflow rules. Elsewhere the hook does nothing. It needs a CLI with the `,_jsx(_components.code,{children:`prime`}),` command, so update the CLI when you update the plugin.`]}),`\n`,_jsxs(_components.p,{children:[`When Claude finishes a turn and a task is still in progress with no note from this session, the Stop hook reminds Claude once per session to log what it did with `,_jsx(_components.code,{children:`taskgraph note`}),`, or to close the task. The session starts when the session hook runs: it saves that time in a private folder in your temp folder (`,_jsx(_components.code,{children:`$TMPDIR/taskgraph-\u003cyour user ID>/session-\u003csession ID>`}),`, readable only by you), and compacting the conversation keeps it. The `,_jsx(_components.code,{children:`taskgraph`}),` skill tells Claude to use TaskGraph when you ask what to do next or plan work in a project that has `,_jsx(_components.code,{children:`.taskgraph/`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`4-optional-add-the-mcp-server`,children:`4. (Optional) Add the MCP server`}),`\n`,_jsx(_components.p,{children:`The slash commands (from the plugin) and the CLI do everything without MCP. Add the server only if you want to drive TaskGraph in plain language:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`3`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`3`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`claude`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` mcp`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` add`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` taskgraph-ai`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --scope`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` user`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --env`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` TASKGRAPH_TOOLS=standard`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` npx`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -y`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` taskgraph-ai`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`Restart Claude Code and run `,_jsx(_components.code,{children:`/mcp`}),`. `,_jsx(_components.code,{children:`taskgraph-ai`}),` should show as connected. If you see `,_jsx(_components.code,{children:`0 tools enabled`}),`, restart Claude Code and confirm `,_jsx(_components.code,{children:`npx -y taskgraph-ai`}),` starts on its own in a terminal.`]}),`\n`,_jsxs(_components.p,{children:[`The equivalent `,_jsx(_components.code,{children:`.mcp.json`}),` entry is:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`9`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`9`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"mcpServers\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"taskgraph-ai\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"command\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"npx\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"args\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"-y\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"taskgraph-ai\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`],`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"env\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"TASKGRAPH_TOOLS\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"standard\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`upgrading-from-task-master-or-before-0-47`,children:`Upgrading from Task Master or before 0.47`}),`\n`,_jsxs(_components.p,{children:[`See the `,_jsx(_components.a,{href:`/upgrading`,children:`upgrade guide`}),`.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Installation","sidebarTitle":"Installation","description":"Install the taskgraph-ai npm package, run taskgraph init in your project, and add the Claude Code plugin for /taskgraph: slash commands.","href":"/getting-started/quick-start/installation"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"1. Install the CLI","slug":"1-install-the-cli","depth":2,"children":[]},{"title":"2. Initialize your project","slug":"2-initialize-your-project","depth":2,"children":[]},{"title":"3. Install the plugin","slug":"3-install-the-plugin","depth":2,"children":[]},{"title":"4. (Optional) Add the MCP server","slug":"4-optional-add-the-mcp-server","depth":2,"children":[]},{"title":"Upgrading from Task Master or before 0.47","slug":"upgrading-from-task-master-or-before-0-47","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"myself-fcf8480c","siteName":"TaskGraph","title":"Installation - TaskGraph","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-23T23:51:10.954Z","originalFileLocation":"getting-started/quick-start/installation.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Install the taskgraph-ai npm package, run taskgraph init in your project, and add the Claude Code plugin for /taskgraph: slash commands.\">\u003cmeta data-mint-head name=\"application-name\" content=\"TaskGraph\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/myself-fcf8480c/VIQSwQGWxMOj2gkJ/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/myself-fcf8480c/VIQSwQGWxMOj2gkJ/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/myself-fcf8480c/VIQSwQGWxMOj2gkJ/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/myself-fcf8480c/VIQSwQGWxMOj2gkJ/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/myself-fcf8480c/VIQSwQGWxMOj2gkJ/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/myself-fcf8480c/VIQSwQGWxMOj2gkJ/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/myself-fcf8480c/VIQSwQGWxMOj2gkJ/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/myself-fcf8480c/VIQSwQGWxMOj2gkJ/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/myself-fcf8480c/VIQSwQGWxMOj2gkJ/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Installation - TaskGraph\">\u003cmeta data-mint-head property=\"og:description\" content=\"Install the taskgraph-ai npm package, run taskgraph init in your project, and add the Claude Code plugin for /taskgraph: slash commands.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"TaskGraph\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://taskgraph-ai.com/getting-started/quick-start/installation\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://myself-fcf8480c.mintlify.app/_mintlify/api/og/v2?division=Quick+Start\u0026amp;title=Installation\u0026amp;description=Install+the+taskgraph-ai+npm+package%2C+run+taskgraph+init+in+your+project%2C+and+add+the+Claude+Code+plugin+for+%2Ftaskgraph%3A+slash+commands.\u0026amp;theme=bffb9e5eb7ba1722e7c9de5f\u0026amp;signature=7f69ef07c9fbf74133241c02d5ceb8e22141a68e6c9752d0da35428d2cc17508\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Installation - TaskGraph\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Install the taskgraph-ai npm package, run taskgraph init in your project, and add the Claude Code plugin for /taskgraph: slash commands.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://myself-fcf8480c.mintlify.app/_mintlify/api/og/v2?division=Quick+Start\u0026amp;title=Installation\u0026amp;description=Install+the+taskgraph-ai+npm+package%2C+run+taskgraph+init+in+your+project%2C+and+add+the+Claude+Code+plugin+for+%2Ftaskgraph%3A+slash+commands.\u0026amp;theme=bffb9e5eb7ba1722e7c9de5f\u0026amp;signature=7f69ef07c9fbf74133241c02d5ceb8e22141a68e6c9752d0da35428d2cc17508\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/myself-fcf8480c/VIQSwQGWxMOj2gkJ/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"TaskGraph\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#3366CC\">\u003clink data-mint-head rel=\"canonical\" href=\"https://taskgraph-ai.com/getting-started/quick-start/installation\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/getting-started/quick-start/installation.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://taskgraph-ai.com/#organization\",\"name\":\"TaskGraph\",\"url\":\"https://taskgraph-ai.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/myself-fcf8480c/GzHIJhIlhqfXn7i0/logo/light.png?fit=max\u0026auto=format\u0026n=GzHIJhIlhqfXn7i0\u0026q=85\u0026s=a9a99fb754babb33f3e453d5b6fad8bd\"}},{\"@type\":\"WebSite\",\"@id\":\"https://taskgraph-ai.com#website\",\"name\":\"TaskGraph\",\"url\":\"https://taskgraph-ai.com\",\"publisher\":{\"@id\":\"https://taskgraph-ai.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://taskgraph-ai.com/getting-started/quick-start/installation#webpage\",\"url\":\"https://taskgraph-ai.com/getting-started/quick-start/installation\",\"name\":\"Installation\",\"description\":\"Install the taskgraph-ai npm package, run taskgraph init in your project, and add the Claude Code plugin for /taskgraph: slash commands.\",\"dateModified\":\"2026-10-23T23:51:10.954Z\",\"isPartOf\":{\"@id\":\"https://taskgraph-ai.com#website\"},\"breadcrumb\":{\"@id\":\"https://taskgraph-ai.com/getting-started/quick-start/installation#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://taskgraph-ai.com/getting-started/quick-start/installation#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Getting Started\",\"item\":\"https://taskgraph-ai.com/getting-started/quick-start/quick-start\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Quick Start\",\"item\":\"https://taskgraph-ai.com/getting-started/quick-start/quick-start\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Installation\",\"item\":\"https://taskgraph-ai.com/getting-started/quick-start/installation\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://taskgraph-ai.com/getting-started/quick-start/installation#article\",\"headline\":\"Installation\",\"name\":\"Installation\",\"description\":\"Install the taskgraph-ai npm package, run taskgraph init in your project, and add the Claude Code plugin for /taskgraph: slash commands.\",\"url\":\"https://taskgraph-ai.com/getting-started/quick-start/installation\",\"mainEntityOfPage\":{\"@id\":\"https://taskgraph-ai.com/getting-started/quick-start/installation#webpage\"},\"dateModified\":\"2026-10-23T23:51:10.954Z\",\"publisher\":{\"@id\":\"https://taskgraph-ai.com/#organization\"},\"isPartOf\":{\"@id\":\"https://taskgraph-ai.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"TaskGraph\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"TaskGraph","nav":{"global":{"anchors":[{"anchor":"Github","icon":"github","href":"https://github.com/stephennmiller/taskgraph-ai"}]},"tabs":[{"tab":"TaskGraph Documentation","groups":[{"group":"Welcome","pages":[{"title":"TaskGraph: task management for Claude Code","sidebarTitle":"Introduction","href":"/introduction"},{"title":"Upgrading","href":"/upgrading"},{"title":"Migrating from Task Master","href":"/migrating-from-taskmaster"}]},{"group":"Getting Started","pages":[{"group":"Quick Start","pages":[{"title":"Quick Start","sidebarTitle":"Quick Start","href":"/getting-started/quick-start/quick-start"},{"title":"Requirements","sidebarTitle":"Requirements","description":"What TaskGraph needs: Claude Code installed and signed in, and Node.js 22.13 or later. No API keys or provider accounts.","href":"/getting-started/quick-start/requirements"},{"title":"Installation","sidebarTitle":"Installation","href":"/getting-started/quick-start/installation"},{"title":"Configuration","sidebarTitle":"Configuration","description":"Choose which Claude models TaskGraph uses for its main, research and fallback roles. No API keys needed.","href":"/getting-started/quick-start/configuration-quick"},{"title":"PRD Creation and Parsing","sidebarTitle":"PRD Creation and Parsing","href":"/getting-started/quick-start/prd-quick"},{"title":"Tasks Setup","sidebarTitle":"Tasks Setup","href":"/getting-started/quick-start/tasks-quick"},{"title":"Executing Tasks","sidebarTitle":"Executing Tasks","href":"/getting-started/quick-start/execute-quick"}]},{"title":"Authentication","sidebarTitle":"Authentication","href":"/getting-started/api-keys"},{"title":"Configuration","href":"/configuration"},{"title":"Tutorial","href":"/tutorial"},{"title":"Example Interactions","sidebarTitle":"Examples","href":"/examples"},{"title":"FAQ","sidebarTitle":"FAQ","href":"/getting-started/faq"},{"title":"Contributing to TaskGraph","href":"/getting-started/contribute"}]},{"group":"Best Practices","pages":[{"title":"Intro to Advanced Usage","sidebarTitle":"Advanced Usage","href":"/best-practices/index"},{"title":"Advanced Configuration","sidebarTitle":"Advanced Configuration","href":"/best-practices/configuration-advanced"},{"title":"Advanced Tasks","sidebarTitle":"Advanced Tasks","href":"/best-practices/advanced-tasks"}]},{"group":"Technical Capabilities","pages":[{"title":"MCP Tools","sidebarTitle":"MCP Tools","href":"/capabilities/mcp"},{"title":"Claude Code Integration","sidebarTitle":"Claude Code","href":"/capabilities/claude-code"},{"group":"CLI Commands","pages":[{"title":"CLI Commands","sidebarTitle":"Overview","href":"/capabilities/cli-root-commands"},{"title":"Finding Work","sidebarTitle":"Finding Work","href":"/capabilities/cli-viewing-commands"},{"title":"Updating Tasks","sidebarTitle":"Updating Tasks","href":"/capabilities/cli-updating-commands"},{"title":"Planning Commands","sidebarTitle":"Planning Commands","href":"/capabilities/cli-planning-commands"},{"title":"Project Setup","sidebarTitle":"Project Setup","href":"/capabilities/cli-project-commands"}]},{"title":"Task Structure","sidebarTitle":"Task Structure","href":"/capabilities/task-structure"},{"title":"Dependency Graph","sidebarTitle":"Dependency Graph","href":"/capabilities/dependency-graph"},{"title":"Archiving finished tasks","sidebarTitle":"Archive","href":"/capabilities/archive"},{"title":"Loop Command","sidebarTitle":"Loop Command","href":"/capabilities/loop"},{"title":"Run Tasks in Parallel","sidebarTitle":"Parallel Loop","href":"/capabilities/loop-parallel"},{"title":"Loop presets","href":"/capabilities/loop-presets"},{"title":"Research","sidebarTitle":"Research","href":"/capabilities/research"},{"title":"GitHub Sync","sidebarTitle":"GitHub Sync","href":"/capabilities/github-sync"},{"title":"Merging tasks.json","sidebarTitle":"Merging tasks.json","href":"/capabilities/merge-driver"},{"title":"JSON Output","sidebarTitle":"JSON Output","href":"/capabilities/json-output"}]}]}]},"title":"Installation - TaskGraph","buildId":"dpl_7EGD3AHhNmnVNgQ8U7beMHiqTzw8","deploymentId":"dpl_7EGD3AHhNmnVNgQ8U7beMHiqTzw8","dynamics":[],"chunks":[]}