Grab a binary, scaffold a project, and hand the setup to your coding agent. A skill walks the agent through wiring a provider, adding tools, and drafting a first plan against your own data — then you review it in the workbench and run it. Prefer to do it by hand?
1
Install graph
Grab the latest release binary — macOS (arm64) or Linux (x86_64). Each release publishes version-pinned tarballs with SHA-256 checksum:
macOS (arm64)
Download graph-v0.16.0-macos-arm64.tar.gz
Linux (x86_64)
Download graph-v0.16.0-linux-x86_64.tar.gz
2
Scaffold a project
From your project directory:
graph config init
This writes a commented starter to ./.graph/config.toml. That directory is where a project’s config, plans, and tools live — checked into the repo, reviewed like any other code.
3
Let your agent finish the setup
Install the setup skill, then ask your coding agent to run it:
npx skills add tylerdavis/graph
This installs /graph-project-setup for Claude Code, Cursor, Codex, and most other agents. Point your agent at it — “set up graph in this project” — and it asks a few questions, then picks a provider and models, finds and connects the MCP servers or tools you want, scaffolds a first plan against your real data, and runs it end to end. It reads the live docs and example plans as it goes, so the result matches the current release.
The same npx skills add command installs two more: /graph-plan-authoring, which teaches the agent to build and repair plans with the authoring commands, and /graph-github-actions-setup, which scaffolds a merge gate or PR reviewer as a plan.
4
Open it in the workbench
Before you commit the plan, open it in the workbench — a dual-pane TUI for reviewing, tweaking, and test-running plans:
graph workbench plan project_status
The plan renders as a flowchart on the right, an agent sits on the left. Read each step, v to validate, r to run it, or g to step through with a debugger that pauses on every tool call and shows the exact input and result. Ask the agent to change a step in plain English — “add a step that filters to open issues” — and watch the draft update and re-validate. Ctrl+S writes it back to ./.graph/plans/.
A loaded plan in the workbench: chat agent left, step tree and detail right.
5
Run your first plan
Once it’s right, run it:
graph plan run project_status '{"project":"New Relic"}'
The deliverable goes to stdout; tool activity streams dimmed to stderr. This is the form you schedule on cron or wire into CI.
Not using an agent? The whole path is a few commands.
1
Write a minimal config
A working config is a provider, a default model, and whatever tools your plan needs. Here it’s one MCP server:
[providers.anthropic]type = "anthropic"api_key = "${ANTHROPIC_API_KEY}" # read from your environment at load time[models.default]provider = "anthropic"model = "claude-sonnet-5"[mcp.linear]url = "https://mcp.linear.app/mcp"headers = { Authorization = "Bearer ${LINEAR_API_KEY}" }
${VAR} references fail loudly when the variable is unset — misconfigured secrets never silently send empty strings. For provider and MCP entries the failure comes at first use rather than at load, naming the variable, so the rest of graph keeps working without the secret.
2
Check your tools are live
graph mcp test linear# ok: 'linear' initialized in 1.7s — 57 tools (0 declare output schemas)graph tool list
3
Probe the tools you'll build on
Before writing a step, see each tool’s input schema and actual output shape:
graph tool show linear__list_issuesgraph tool test linear__list_issues '{"priority":1,"limit":5}'
Every probe also teaches graph what the tool returns (its shape), so the references you write next are grounded in real output — and the workbench’s drafting agent gets smarter too.
4
Build the plan in the workbench
Open a blank draft and describe the goal — the agent drafts the plan into the side pane, where you inspect, validate, and test-run it:
graph wb plan # or just graph wb, and say you want a plan
Prefer to write the YAML yourself? The plan file reference covers every field. Either way, Ctrl+S (or a save in the workbench) writes it to ./.graph/plans/.
5
Run it headless
graph plan run project_status '{"project":"New Relic"}'
Same contract as the fast path: the deliverable on stdout, progress on stderr, and a file you can commit, schedule, and wire into CI.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"graph","colors":{"primary":"#16A34A","light":"#22C55E","dark":"#15803D"},"favicon":"https://mintcdn.com/graph/Ha85FhxHesay9r1W/favicon.svg?fit=max\u0026auto=format\u0026n=Ha85FhxHesay9r1W\u0026q=85\u0026s=2a0afa5800528a6e2386c904722fddf3","navbar":{"links":[]},"footer":{"socials":{"github":"https://github.com/tylerdavis/graph"}},"variables":{"release_version":"v0.16.0","config_file_version":"4","plan_file_version":"2","tool_file_version":"2","agent_file_version":"1","data_directory_version":"2","pack_file_version":"1","pack_lock_version":"1"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"graph","hasAudioNarration":false,"actualSubdomain":"graph","customDomains":[],"gitSource":{"type":"github","owner":"tylerdavis","repo":"graph","deployBranch":"docs-live","contentDirectory":"docs","isPrivate":false,"mountPath":"","label":""},"chroma":{"collectionId":"2fea3d6f-2d42-495b-900b-9b429fd7f4e5","liveDeploymentHistoryId":"6acefbf9d9195feef044da4d","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6acefbf9d9195feef044da4d"},"feedback":{"edits":true,"issues":true,"thumbs":true,"agentFeedback":true},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6ad69b95267d46225e8c7235","clientVersion":"0.0.3888","searchFilterCounts":[{"language":"default","tag":"Reference","count":129},{"language":"default","tag":"CLI","count":53},{"language":"default","tag":"Tools","count":38},{"language":"default","tag":"Guides","count":27},{"language":"default","tag":"Plans","count":23},{"language":"default","tag":"Integrating","count":20},{"language":"default","tag":"Agents","count":18},{"language":"default","tag":"MCP","count":18},{"language":"default","tag":"Workbench tools","count":16},{"language":"default","tag":"MCP server tools","count":14}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"hasChatPermissions":false,"hasWebMcpPermissions":false,"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":"editor-branches-v2-autocommit","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-branches-v2","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":"teamspace","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":"vite-origin","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":"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":"revalidation-jwt","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":"client-snapshot-docs-config","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}],"isAtlas":false,"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"quickstart","slug":"/quickstart","pageMetadata":{"title":"Quick start","description":"Install, scaffold a project, run your first plan","icon":"rocket","href":"/quickstart"},"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, scaffold a project, run your first plan\"\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`,em:`em`,p:`p`,pre:`pre`,span:`span`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,..._provideComponents(),...props.components},{Card,CardGroup,CodeBlock,Column,Columns,Frame,Heading,OptimizedImage,Step,Steps,Tab,Table,Tabs,Tip}=_components;if(!Card)_missingMdxReference(`Card`,true);if(!CardGroup)_missingMdxReference(`CardGroup`,true);if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Column)_missingMdxReference(`Column`,true);if(!Columns)_missingMdxReference(`Columns`,true);if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);if(!Tab)_missingMdxReference(`Tab`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tabs)_missingMdxReference(`Tabs`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsxs(Tabs,{children:[_jsxs(Tab,{title:`Automated`,id:`automated`,\"data-child-heading-ids\":`[\"automated-setup\"]`,children:[_jsx(Heading,{level:`2`,id:`automated-setup`,children:`Automated setup`}),_jsxs(_components.p,{children:[`Grab a binary, scaffold a project, and hand the setup to your coding agent. A `,_jsx(_components.a,{href:`#let-your-agent-finish-the-setup`,children:`skill`}),` walks the agent through wiring a provider, adding tools, and drafting a first plan against your own data — then you review it in the `,_jsx(_components.a,{href:`/getting-started/workbench`,children:`workbench`}),` and run it. Prefer to do it by hand?`]}),_jsxs(Steps,{children:[_jsxs(Step,{title:`Install graph`,children:[_jsx(_components.p,{children:`Grab the latest release binary — macOS (arm64) or Linux (x86_64). Each release publishes version-pinned tarballs with SHA-256 checksum:`}),_jsxs(CardGroup,{cols:2,children:[_jsx(Card,{title:`macOS (arm64)`,icon:`apple`,href:`https://github.com/tylerdavis/graph/releases/download/v0.16.0/graph-v0.16.0-macos-arm64.tar.gz`,children:_jsx(_components.p,{children:`Download graph-v0.16.0-macos-arm64.tar.gz`})}),_jsx(Card,{title:`Linux (x86_64)`,icon:`linux`,href:`https://github.com/tylerdavis/graph/releases/download/v0.16.0/graph-v0.16.0-linux-x86_64.tar.gz`,children:_jsx(_components.p,{children:`Download graph-v0.16.0-linux-x86_64.tar.gz`})})]})]}),_jsxs(Step,{title:`Scaffold a project`,children:[_jsx(_components.p,{children:`From your project directory:`}),_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:`graph`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` config`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` init`})]}),`\n`]})})}),_jsxs(_components.p,{children:[`This writes a commented starter to `,_jsx(_components.code,{children:`./.graph/config.toml`}),`. That directory is where a project’s config, plans, and tools live — checked into the repo, reviewed like any other code.`]})]}),_jsxs(Step,{title:`Let your agent finish the setup`,children:[_jsx(_components.p,{children:`Install the setup skill, then ask your coding agent to run it:`}),_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:`npx`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` skills`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` add`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` tylerdavis/graph`})]}),`\n`]})})}),_jsxs(_components.p,{children:[`This installs `,_jsx(_components.code,{children:`/graph-project-setup`}),` for Claude Code, Cursor, Codex, and most other agents. Point your agent at it — “set up graph in this project” — and it asks a few questions, then picks a provider and models, finds and connects the MCP servers or tools you want, scaffolds a first plan against your real data, and runs it end to end. It reads the live docs and example plans as it goes, so the result matches the current release.`]}),_jsx(Tip,{children:_jsxs(_components.p,{children:[`The same `,_jsx(_components.code,{children:`npx skills add`}),` command installs two more: `,_jsx(_components.code,{children:`/graph-plan-authoring`}),`, which teaches the agent to build and repair plans with the `,_jsx(_components.a,{href:`/reference/cli/plan`,children:`authoring commands`}),`, and `,_jsx(_components.code,{children:`/graph-github-actions-setup`}),`, which scaffolds a merge gate or PR reviewer as a plan.`]})})]}),_jsxs(Step,{title:`Open it in the workbench`,children:[_jsxs(_components.p,{children:[`Before you commit the plan, open it in the `,_jsx(_components.a,{href:`/getting-started/workbench`,children:`workbench`}),` — a dual-pane TUI for reviewing, tweaking, and test-running plans:`]}),_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:`graph`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` workbench`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` plan`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` project_status`})]}),`\n`]})})}),_jsxs(_components.p,{children:[`The plan renders as a flowchart on the right, an agent sits on the left. Read each step, `,_jsx(_components.code,{children:`v`}),` to validate, `,_jsx(_components.code,{children:`r`}),` to run it, or `,_jsx(_components.code,{children:`g`}),` to step through with a debugger that pauses on every tool call and shows the exact input and result. Ask the agent to change a step in plain English — “add a step that filters to open issues” — and watch the draft update and re-validate. `,_jsx(_components.code,{children:`Ctrl+S`}),` writes it back to `,_jsx(_components.code,{children:`./.graph/plans/`}),`.`]}),_jsx(Frame,{caption:`A loaded plan in the workbench: chat agent left, step tree and detail right.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/graph/s-Ce0Orb66xMgIkN/images/workbench/workbench-overview.svg?fit=max\u0026auto=format\u0026n=s-Ce0Orb66xMgIkN\u0026q=85\u0026s=1c4af48947d2128382643c2439004721`,alt:`A loaded plan in the workbench: chat agent left, step tree and detail right.`,\"data-og-width\":`1044`,width:`1044`,\"data-og-height\":`720`,height:`720`,\"data-path\":`images/workbench/workbench-overview.svg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/graph/s-Ce0Orb66xMgIkN/images/workbench/workbench-overview.svg?w=280\u0026fit=max\u0026auto=format\u0026n=s-Ce0Orb66xMgIkN\u0026q=85\u0026s=f46dd6bd77eee52b7763e93200413134 280w, https://mintcdn.com/graph/s-Ce0Orb66xMgIkN/images/workbench/workbench-overview.svg?w=560\u0026fit=max\u0026auto=format\u0026n=s-Ce0Orb66xMgIkN\u0026q=85\u0026s=1cb19ec6d5109da7f18a3e15d5bd7b1c 560w, https://mintcdn.com/graph/s-Ce0Orb66xMgIkN/images/workbench/workbench-overview.svg?w=840\u0026fit=max\u0026auto=format\u0026n=s-Ce0Orb66xMgIkN\u0026q=85\u0026s=1e22685d9d11b34b5ba9af1f2c41e82c 840w, https://mintcdn.com/graph/s-Ce0Orb66xMgIkN/images/workbench/workbench-overview.svg?w=1100\u0026fit=max\u0026auto=format\u0026n=s-Ce0Orb66xMgIkN\u0026q=85\u0026s=73208fe9a43282b2dc99112f5cc15dd5 1100w, https://mintcdn.com/graph/s-Ce0Orb66xMgIkN/images/workbench/workbench-overview.svg?w=1650\u0026fit=max\u0026auto=format\u0026n=s-Ce0Orb66xMgIkN\u0026q=85\u0026s=1aa5d7c7d3d4ed4eccdbef0d0f4c0421 1650w, https://mintcdn.com/graph/s-Ce0Orb66xMgIkN/images/workbench/workbench-overview.svg?w=2500\u0026fit=max\u0026auto=format\u0026n=s-Ce0Orb66xMgIkN\u0026q=85\u0026s=e0262d5821b2bc18017207e488b6ff45 2500w`})})]}),_jsxs(Step,{title:`Run your first plan`,children:[_jsx(_components.p,{children:`Once it’s right, run it:`}),_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:`graph`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` plan`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` run`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` project_status`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '{\"project\":\"New Relic\"}'`})]}),`\n`]})})}),_jsx(_components.p,{children:`The deliverable goes to stdout; tool activity streams dimmed to stderr. This is the form you schedule on cron or wire into CI.`})]})]})]}),_jsxs(Tab,{title:`Manual`,id:`manual`,\"data-child-heading-ids\":`[\"manual-setup\"]`,children:[_jsx(Heading,{level:`2`,id:`manual-setup`,children:`Manual setup`}),_jsx(_components.p,{children:`Not using an agent? The whole path is a few commands.`}),_jsxs(Steps,{children:[_jsxs(Step,{title:`Write a minimal config`,children:[_jsx(_components.p,{children:`A working config is a provider, a default model, and whatever tools your plan needs. Here it’s one MCP server:`}),_jsx(CodeBlock,{filename:``,numberOfLines:`11`,language:`toml`,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:`toml`,children:_jsxs(_components.code,{language:`toml`,numberOfLines:`11`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`[`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#D4D4D4`},children:`providers`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#D4D4D4`},children:`anthropic`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`]`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`type`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"anthropic\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`api_key`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:'\"${ANTHROPIC_API_KEY}\"'}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # read from your environment at load time`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`[`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#D4D4D4`},children:`models`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#D4D4D4`},children:`default`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`]`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`provider`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"anthropic\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`model`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"claude-sonnet-5\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`[`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#D4D4D4`},children:`mcp`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#D4D4D4`},children:`linear`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`]`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`url`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://mcp.linear.app/mcp\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`headers`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` = { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`Authorization`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:'\"Bearer ${LINEAR_API_KEY}\"'}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})]}),`\n`]})})}),_jsx(Tip,{children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:\"${VAR}\"}),` references fail loudly when the variable is unset — misconfigured secrets never silently send empty strings. For provider and MCP entries the failure comes at first use rather than at load, naming the variable, so the rest of graph keeps working without the secret.`]})})]}),_jsx(Step,{title:`Check your tools are live`,children:_jsx(CodeBlock,{filename:``,numberOfLines:`4`,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:`4`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`graph`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` mcp`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` test`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` linear`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# ok: 'linear' initialized in 1.7s — 57 tools (0 declare output schemas)`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`graph`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` tool`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` list`})]}),`\n`]})})})}),_jsxs(Step,{title:`Probe the tools you'll build on`,children:[_jsxs(_components.p,{children:[`Before writing a step, see each tool’s input schema and `,_jsx(_components.em,{children:`actual`}),` output shape:`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`2`,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:`2`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`graph`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` tool`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` show`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` linear__list_issues`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`graph`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` tool`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` test`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` linear__list_issues`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '{\"priority\":1,\"limit\":5}'`})]}),`\n`]})})}),_jsxs(_components.p,{children:[`Every probe also teaches graph what the tool returns (its `,_jsx(_components.a,{href:`/tools/guides/tool-shapes`,children:`shape`}),`), so the references you write next are grounded in real output — and the workbench’s drafting agent gets smarter too.`]})]}),_jsxs(Step,{title:`Build the plan in the workbench`,children:[_jsx(_components.p,{children:`Open a blank draft and describe the goal — the agent drafts the plan into the side pane, where you inspect, validate, and test-run it:`}),_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:`graph`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` wb`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` plan`}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # or just graph wb, and say you want a plan`})]}),`\n`]})})}),_jsxs(_components.p,{children:[`Prefer to write the YAML yourself? The `,_jsx(_components.a,{href:`/plans/reference/plan-file`,children:`plan file reference`}),` covers every field. Either way, `,_jsx(_components.code,{children:`Ctrl+S`}),` (or a save in the workbench) writes it to `,_jsx(_components.code,{children:`./.graph/plans/`}),`.`]})]}),_jsxs(Step,{title:`Run it headless`,children:[_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:`graph`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` plan`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` run`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` project_status`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '{\"project\":\"New Relic\"}'`})]}),`\n`]})})}),_jsx(_components.p,{children:`Same contract as the fast path: the deliverable on stdout, progress on stderr, and a file you can commit, schedule, and wire into CI.`})]})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`where-things-live`,children:`Where things live`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Path`}),_jsx(_components.th,{children:`What`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`./.graph/config.toml`})}),_jsx(_components.td,{children:`project config, deep-merged over global`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`~/.config/graph/config.toml`})}),_jsx(_components.td,{children:`optional global config (providers, models, MCP servers)`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`./.graph/plans/`})}),_jsxs(_components.td,{children:[`your `,_jsx(_components.a,{href:`/plans/reference/plan-file`,children:`plan files`}),` (`,_jsx(_components.code,{children:`~/.config/graph/plans/`}),` for global ones)`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`./.graph/tools/`})}),_jsxs(_components.td,{children:[`your `,_jsx(_components.a,{href:`/tools/reference/tool-file`,children:`tool files`}),` (`,_jsx(_components.code,{children:`~/.config/graph/tools/`}),` for global ones)`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`~/.local/share/graph/`})}),_jsx(_components.td,{children:`threads and learned tool shapes, as plain files`})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`what’s-next`,children:`What’s next`}),`\n`,_jsxs(Columns,{cols:2,children:[_jsx(Column,{children:_jsx(Card,{title:`Core concepts`,icon:`sparkles`,href:`/getting-started/concepts`,children:_jsx(_components.p,{children:`learn about the graph primitives`})})}),_jsx(Column,{children:_jsx(Card,{title:`Add your MCP tools`,icon:`sparkles`,href:`/integrating/mcp/guides/connect-mcp-server`,children:_jsx(_components.p,{children:`Integrate with everything via MCP`})})})]})]})}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":"Quick start","description":"Install, scaffold a project, run your first plan","icon":"rocket","href":"/quickstart"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Automated setup","slug":"automated-setup","depth":2,"children":[],"tabId":"automated"},{"title":"Manual setup","slug":"manual-setup","depth":2,"children":[],"tabId":"manual"},{"title":"Where things live","slug":"where-things-live","depth":2,"children":[]},{"title":"What’s next","slug":"what’s-next","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"graph","siteName":"graph","title":"Quick start - graph","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-19T22:37:21.130Z","originalFileLocation":"quickstart.mdx"},"headHtml":"\u003cmeta data-mint-head name=\"description\" content=\"Install, scaffold a project, run your first plan\">\u003cmeta data-mint-head name=\"application-name\" content=\"graph\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/graph/dDHy2CkfKrjxpFva/_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/graph/dDHy2CkfKrjxpFva/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/graph/dDHy2CkfKrjxpFva/_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/graph/dDHy2CkfKrjxpFva/_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/graph/dDHy2CkfKrjxpFva/_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/graph/dDHy2CkfKrjxpFva/_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/graph/dDHy2CkfKrjxpFva/_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/graph/dDHy2CkfKrjxpFva/_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/graph/dDHy2CkfKrjxpFva/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Quick start - graph\">\u003cmeta data-mint-head property=\"og:description\" content=\"Install, scaffold a project, run your first plan\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"graph\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://graph.mintlify.app/quickstart\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Quick start - graph\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Install, scaffold a project, run your first plan\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/graph/dDHy2CkfKrjxpFva/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"graph\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#16A34A\">\u003clink data-mint-head rel=\"canonical\" href=\"https://graph.mintlify.app/quickstart\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/quickstart.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://graph.mintlify.app/#organization\",\"name\":\"graph\",\"url\":\"https://graph.mintlify.app\"},{\"@type\":\"WebSite\",\"@id\":\"https://graph.mintlify.app#website\",\"name\":\"graph\",\"url\":\"https://graph.mintlify.app\",\"publisher\":{\"@id\":\"https://graph.mintlify.app/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://graph.mintlify.app/quickstart#webpage\",\"url\":\"https://graph.mintlify.app/quickstart\",\"name\":\"Quick start\",\"description\":\"Install, scaffold a project, run your first plan\",\"dateModified\":\"2026-10-19T22:37:21.130Z\",\"isPartOf\":{\"@id\":\"https://graph.mintlify.app#website\"}},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://graph.mintlify.app/quickstart#article\",\"headline\":\"Quick start\",\"name\":\"Quick start\",\"description\":\"Install, scaffold a project, run your first plan\",\"url\":\"https://graph.mintlify.app/quickstart\",\"mainEntityOfPage\":{\"@id\":\"https://graph.mintlify.app/quickstart#webpage\"},\"dateModified\":\"2026-10-19T22:37:21.130Z\",\"publisher\":{\"@id\":\"https://graph.mintlify.app/#organization\"},\"isPartOf\":{\"@id\":\"https://graph.mintlify.app#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"graph\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"graph","nav":{"global":null,"pages":[{"title":"Introducing Graph","description":"A runtime and development environment for building scalable AI-augmented workflows","icon":"hand-wave","sidebarTitle":"Introduction","href":"/introduction"},{"title":"Quick start","icon":"rocket","href":"/quickstart"},{"group":"Getting started","icon":"person-ski-jumping","expanded":true,"pages":[{"title":"Installation","description":"Release binaries and the container image","href":"/getting-started/installation"},{"title":"Core concepts","href":"/getting-started/concepts"},{"title":"Models and providers","href":"/getting-started/models"},{"title":"The workbench","href":"/getting-started/workbench"}]},{"group":"Agents","icon":"robot","expanded":true,"pages":[{"title":"Agents","sidebarTitle":"Overview","href":"/agents/overview"},{"group":"Guides","pages":[{"title":"Create an agent in the workbench","href":"/agents/guides/create-in-workbench"},{"title":"Talk to an agent","href":"/agents/guides/talk-to-an-agent"},{"title":"Optimize an agent with plans","href":"/agents/guides/optimize-with-plans"},{"title":"Build a multi-agent network","href":"/agents/guides/multi-agent-networks"},{"title":"Customize a built-in agent","href":"/agents/guides/customize-built-ins"},{"title":"Steer tool choice","href":"/agents/guides/steer-tool-choice"},{"title":"Manage threads","href":"/agents/guides/threads"}]},{"group":"Reference","pages":[{"title":"Agent file","playground":"none","href":"/agents/reference/agent-file"},{"group":"Built-in agents","root":{"title":"Built-in agents","href":"/agents/reference/built-in-agents"},"pages":[{"group":"Global","pages":[{"title":"chat","sidebarTitle":"chat","playground":"none","href":"/agents/reference/built-in/chat"},{"title":"agent_drafter","sidebarTitle":"agent_drafter","playground":"none","href":"/agents/reference/built-in/agent_drafter"},{"title":"tool_drafter","sidebarTitle":"tool_drafter","playground":"none","href":"/agents/reference/built-in/tool_drafter"}]},{"group":"Workbench","pages":[{"title":"front_desk (workbench)","sidebarTitle":"front_desk","playground":"none","href":"/agents/reference/built-in/workbench/front_desk"},{"title":"plan_drafter (workbench)","sidebarTitle":"plan_drafter","playground":"none","href":"/agents/reference/built-in/workbench/plan_drafter"},{"title":"plan_loader (workbench)","sidebarTitle":"plan_loader","playground":"none","href":"/agents/reference/built-in/workbench/plan_loader"},{"title":"plan_editor (workbench)","sidebarTitle":"plan_editor","playground":"none","href":"/agents/reference/built-in/workbench/plan_editor"},{"title":"agent_drafter (workbench)","sidebarTitle":"agent_drafter","playground":"none","href":"/agents/reference/built-in/workbench/agent_drafter"},{"title":"tool_drafter (workbench)","sidebarTitle":"tool_drafter","playground":"none","href":"/agents/reference/built-in/workbench/tool_drafter"}]}]}]}]},{"group":"Plans","icon":"list-radio","expanded":true,"pages":[{"title":"Plans","sidebarTitle":"Overview","href":"/plans/overview"},{"group":"Guides","pages":[{"title":"Draft a plan in the workbench","href":"/plans/guides/draft-in-workbench"},{"title":"Run a plan","href":"/plans/guides/run-a-plan"},{"title":"Debug a plan","href":"/plans/guides/debug-a-plan"},{"group":"Steps","pages":[{"title":"Stop early with exit gates","href":"/plans/guides/exit-gates"},{"title":"Branch with route","href":"/plans/guides/branching"},{"title":"Select items with filter","href":"/plans/guides/filter"},{"title":"Iterate with map and reduce","href":"/plans/guides/map-and-reduce"},{"title":"Delegate a step to an agent","href":"/plans/guides/agent-steps"},{"title":"Ask for input mid-run","href":"/plans/guides/ask-steps"}]},{"title":"Compose plans","href":"/plans/guides/compose-plans"},{"title":"Handle failures","href":"/plans/guides/handle-failures"}]},{"group":"Reference","pages":[{"title":"Plan file","playground":"none","href":"/plans/reference/plan-file"},{"title":"Conditions and bodies","href":"/plans/reference/conditions-and-bodies"},{"group":"Control steps","root":{"title":"Control steps","href":"/plans/reference/control-steps"},"pages":[{"title":"route","sidebarTitle":"route","playground":"none","href":"/plans/reference/steps/route"},{"title":"filter","sidebarTitle":"filter","playground":"none","href":"/plans/reference/steps/filter"},{"title":"map","sidebarTitle":"map","playground":"none","href":"/plans/reference/steps/map"},{"title":"reduce","sidebarTitle":"reduce","playground":"none","href":"/plans/reference/steps/reduce"},{"title":"exit","sidebarTitle":"exit","playground":"none","href":"/plans/reference/steps/exit"},{"title":"agent","sidebarTitle":"agent","playground":"none","href":"/plans/reference/steps/agent"},{"title":"ask","sidebarTitle":"ask","playground":"none","href":"/plans/reference/steps/ask"}]},{"group":"Built-in plans","root":{"title":"Built-in plans","href":"/plans/reference/built-in-plans"},"pages":[{"title":"compose_plan","sidebarTitle":"compose_plan","playground":"none","href":"/plans/reference/built-in/compose_plan"},{"title":"search_tools","sidebarTitle":"search_tools","playground":"none","href":"/plans/reference/built-in/search_tools"}]}]}]},{"group":"Tools","icon":"toolbox","expanded":true,"pages":[{"title":"Tools","sidebarTitle":"Overview","href":"/tools/overview"},{"group":"Guides","pages":[{"title":"Create a tool in the workbench","href":"/tools/guides/create-in-workbench"},{"title":"Test a tool","href":"/tools/guides/test-a-tool"},{"title":"Improve what graph knows about a tool","href":"/tools/guides/tool-shapes"}]},{"group":"Reference","pages":[{"group":"Tool file","root":{"title":"Tool file","playground":"none","href":"/tools/reference/tool-file"},"pages":[{"title":"exec tools","sidebarTitle":"kind: exec","playground":"none","href":"/tools/reference/tool-file/exec"},{"title":"prompt tools","sidebarTitle":"kind: prompt","playground":"none","href":"/tools/reference/tool-file/prompt"},{"title":"reshape tools","sidebarTitle":"kind: reshape","playground":"none","href":"/tools/reference/tool-file/reshape"},{"title":"decision tools","sidebarTitle":"kind: decision","playground":"none","href":"/tools/reference/tool-file/decision"}]},{"group":"Built-in tools","root":{"title":"Built-in tools","href":"/tools/reference/builtin-tools"},"pages":[{"title":"builtin__infer","sidebarTitle":"builtin__infer","playground":"none","href":"/tools/reference/builtin/infer"},{"title":"builtin__decide","sidebarTitle":"builtin__decide","playground":"none","href":"/tools/reference/builtin/decide"},{"title":"builtin__reshape","sidebarTitle":"builtin__reshape","playground":"none","href":"/tools/reference/builtin/reshape"}]},{"group":"Native tools","root":{"title":"Native tools","href":"/tools/reference/native-tools"},"pages":[{"group":"Plan authoring","pages":[{"title":"builtin__validate_plan","sidebarTitle":"builtin__validate_plan","playground":"none","href":"/tools/reference/native/validate_plan"},{"title":"builtin__check_plan","sidebarTitle":"builtin__check_plan","playground":"none","href":"/tools/reference/native/check_plan"},{"title":"builtin__compose_context","sidebarTitle":"builtin__compose_context","playground":"none","href":"/tools/reference/native/compose_context"},{"title":"builtin__question_form","sidebarTitle":"builtin__question_form","playground":"none","href":"/tools/reference/native/question_form"},{"title":"builtin__find_tools","sidebarTitle":"builtin__find_tools","playground":"none","href":"/tools/reference/native/find_tools"}]},{"group":"Tool search","pages":[{"title":"builtin__catalog_tools","sidebarTitle":"builtin__catalog_tools","playground":"none","href":"/tools/reference/native/catalog_tools"},{"title":"builtin__score_candidates","sidebarTitle":"builtin__score_candidates","playground":"none","href":"/tools/reference/native/score_candidates"},{"title":"builtin__describe_tools","sidebarTitle":"builtin__describe_tools","playground":"none","href":"/tools/reference/native/describe_tools"}]},{"group":"Drafting","pages":[{"title":"builtin__try_tool","sidebarTitle":"builtin__try_tool","playground":"none","href":"/tools/reference/native/try_tool"},{"title":"builtin__save_tool","sidebarTitle":"builtin__save_tool","playground":"none","href":"/tools/reference/native/save_tool"},{"title":"builtin__save_agent","sidebarTitle":"builtin__save_agent","playground":"none","href":"/tools/reference/native/save_agent"}]}]},{"group":"Workbench tools","root":{"title":"Workbench tools","href":"/tools/reference/workbench-tools"},"pages":[{"group":"Drafts","pages":[{"title":"workbench__list_artifacts","sidebarTitle":"workbench__list_artifacts","playground":"none","href":"/tools/reference/workbench/list_artifacts"},{"title":"workbench__show_artifact","sidebarTitle":"workbench__show_artifact","playground":"none","href":"/tools/reference/workbench/show_artifact"},{"title":"workbench__load_artifact","sidebarTitle":"workbench__load_artifact","playground":"none","href":"/tools/reference/workbench/load_artifact"},{"title":"workbench__set_artifact","sidebarTitle":"workbench__set_artifact","playground":"none","href":"/tools/reference/workbench/set_artifact"},{"title":"workbench__try_artifact","sidebarTitle":"workbench__try_artifact","playground":"none","href":"/tools/reference/workbench/try_artifact"},{"title":"workbench__save_artifact","sidebarTitle":"workbench__save_artifact","playground":"none","href":"/tools/reference/workbench/save_artifact"},{"title":"workbench__discard_artifact","sidebarTitle":"workbench__discard_artifact","playground":"none","href":"/tools/reference/workbench/discard_artifact"}]},{"group":"Plan edits","pages":[{"title":"workbench__update_metadata","sidebarTitle":"workbench__update_metadata","playground":"none","href":"/tools/reference/workbench/update_metadata"},{"title":"workbench__add_step","sidebarTitle":"workbench__add_step","playground":"none","href":"/tools/reference/workbench/add_step"},{"title":"workbench__update_step","sidebarTitle":"workbench__update_step","playground":"none","href":"/tools/reference/workbench/update_step"},{"title":"workbench__delete_step","sidebarTitle":"workbench__delete_step","playground":"none","href":"/tools/reference/workbench/delete_step"},{"title":"workbench__restore_draft","sidebarTitle":"workbench__restore_draft","playground":"none","href":"/tools/reference/workbench/restore_draft"}]},{"group":"Catalog","pages":[{"title":"workbench__describe_tool","sidebarTitle":"workbench__describe_tool","playground":"none","href":"/tools/reference/workbench/describe_tool"}]},{"group":"Files","pages":[{"title":"workbench__read_file","sidebarTitle":"workbench__read_file","playground":"none","href":"/tools/reference/workbench/read_file"},{"title":"workbench__glob","sidebarTitle":"workbench__glob","playground":"none","href":"/tools/reference/workbench/glob"},{"title":"workbench__grep","sidebarTitle":"workbench__grep","playground":"none","href":"/tools/reference/workbench/grep"}]}]}]}]},{"group":"Packs","icon":"box","expanded":true,"pages":[{"title":"Packs","sidebarTitle":"Overview","href":"/packs/overview"},{"group":"Guides","pages":[{"title":"Install and update packs","href":"/packs/guides/install-packs"},{"title":"Write a pack","href":"/packs/guides/write-a-pack"}]},{"group":"Reference","pages":[{"title":"pack.toml","playground":"none","href":"/packs/reference/pack-file"}]}]},{"group":"Integrating","icon":"plug","pages":[{"group":"MCP","root":{"title":"MCP","href":"/integrating/mcp/overview"},"pages":[{"group":"Guides","pages":[{"title":"Connect an MCP server","href":"/integrating/mcp/guides/connect-mcp-server"},{"title":"Serve plans over MCP","href":"/integrating/mcp/guides/serve-over-mcp"},{"title":"Filter and override a server's tools","href":"/integrating/mcp/guides/filter-and-override-tools"},{"title":"Test an MCP server","href":"/integrating/mcp/guides/test-an-mcp-server"}]},{"group":"Reference","pages":[{"group":"MCP server tools","root":{"title":"MCP server tools","href":"/integrating/mcp/reference/server-tools"},"pages":[{"title":"graph_plan_list","sidebarTitle":"graph_plan_list","playground":"none","href":"/integrating/mcp/reference/server-tools/graph_plan_list"},{"title":"graph_plan_show","sidebarTitle":"graph_plan_show","playground":"none","href":"/integrating/mcp/reference/server-tools/graph_plan_show"},{"title":"graph_plan_new","sidebarTitle":"graph_plan_new","playground":"none","href":"/integrating/mcp/reference/server-tools/graph_plan_new"},{"title":"graph_plan_draft","sidebarTitle":"graph_plan_draft","playground":"none","href":"/integrating/mcp/reference/server-tools/graph_plan_draft"},{"title":"graph_plan_set","sidebarTitle":"graph_plan_set","playground":"none","href":"/integrating/mcp/reference/server-tools/graph_plan_set"},{"title":"graph_plan_unset","sidebarTitle":"graph_plan_unset","playground":"none","href":"/integrating/mcp/reference/server-tools/graph_plan_unset"},{"title":"graph_plan_step_add","sidebarTitle":"graph_plan_step_add","playground":"none","href":"/integrating/mcp/reference/server-tools/graph_plan_step_add"},{"title":"graph_plan_step_update","sidebarTitle":"graph_plan_step_update","playground":"none","href":"/integrating/mcp/reference/server-tools/graph_plan_step_update"},{"title":"graph_plan_step_rename","sidebarTitle":"graph_plan_step_rename","playground":"none","href":"/integrating/mcp/reference/server-tools/graph_plan_step_rename"},{"title":"graph_plan_step_rm","sidebarTitle":"graph_plan_step_rm","playground":"none","href":"/integrating/mcp/reference/server-tools/graph_plan_step_rm"},{"title":"graph_plan_validate","sidebarTitle":"graph_plan_validate","playground":"none","href":"/integrating/mcp/reference/server-tools/graph_plan_validate"},{"title":"graph_tools_list","sidebarTitle":"graph_tools_list","playground":"none","href":"/integrating/mcp/reference/server-tools/graph_tools_list"},{"title":"graph_tools_show","sidebarTitle":"graph_tools_show","playground":"none","href":"/integrating/mcp/reference/server-tools/graph_tools_show"},{"title":"graph_tools_test","sidebarTitle":"graph_tools_test","playground":"none","href":"/integrating/mcp/reference/server-tools/graph_tools_test"}]}]}]},{"group":"Observability","pages":[{"title":"OpenTelemetry","href":"/integrating/observability/opentelemetry"},{"title":"Stream run events","href":"/integrating/observability/run-events"}]}]},{"group":"Reference","icon":"book","pages":[{"group":"CLI","root":{"title":"CLI reference","href":"/reference/cli/overview"},"pages":[{"title":"graph ask","sidebarTitle":"graph ask","playground":"none","href":"/reference/cli/ask"},{"title":"graph chat","sidebarTitle":"graph chat","playground":"none","href":"/reference/cli/chat"},{"group":"graph plan","root":{"title":"graph plan","sidebarTitle":"graph plan","playground":"none","href":"/reference/cli/plan"},"pages":[{"title":"graph plan list","sidebarTitle":"list","playground":"none","href":"/reference/cli/plan/list"},{"title":"graph plan show","sidebarTitle":"show","playground":"none","href":"/reference/cli/plan/show"},{"title":"graph plan validate","sidebarTitle":"validate","playground":"none","href":"/reference/cli/plan/validate"},{"title":"graph plan migrate","sidebarTitle":"migrate","playground":"none","href":"/reference/cli/plan/migrate"},{"title":"graph plan run","sidebarTitle":"run","playground":"none","href":"/reference/cli/plan/run"},{"title":"graph plan new","sidebarTitle":"new","playground":"none","href":"/reference/cli/plan/new"},{"title":"graph plan draft","sidebarTitle":"draft","playground":"none","href":"/reference/cli/plan/draft"},{"title":"graph plan set","sidebarTitle":"set","playground":"none","href":"/reference/cli/plan/set"},{"title":"graph plan unset","sidebarTitle":"unset","playground":"none","href":"/reference/cli/plan/unset"},{"group":"graph plan step","root":{"title":"graph plan step","sidebarTitle":"graph plan step","playground":"none","href":"/reference/cli/plan/step"},"pages":[{"title":"graph plan step add","sidebarTitle":"add","playground":"none","href":"/reference/cli/plan/step/add"},{"title":"graph plan step update","sidebarTitle":"update","playground":"none","href":"/reference/cli/plan/step/update"},{"title":"graph plan step rename","sidebarTitle":"rename","playground":"none","href":"/reference/cli/plan/step/rename"},{"title":"graph plan step unset","sidebarTitle":"unset","playground":"none","href":"/reference/cli/plan/step/unset"},{"title":"graph plan step rm","sidebarTitle":"rm","playground":"none","href":"/reference/cli/plan/step/rm"}]}]},{"group":"graph tool","root":{"title":"graph tool","sidebarTitle":"graph tool","playground":"none","href":"/reference/cli/tool"},"pages":[{"title":"graph tool list","sidebarTitle":"list","playground":"none","href":"/reference/cli/tool/list"},{"title":"graph tool show","sidebarTitle":"show","playground":"none","href":"/reference/cli/tool/show"},{"title":"graph tool test","sidebarTitle":"test","playground":"none","href":"/reference/cli/tool/test"},{"title":"graph tool migrate","sidebarTitle":"migrate","playground":"none","href":"/reference/cli/tool/migrate"}]},{"group":"graph agent","root":{"title":"graph agent","sidebarTitle":"graph agent","playground":"none","href":"/reference/cli/agent"},"pages":[{"title":"graph agent list","sidebarTitle":"list","playground":"none","href":"/reference/cli/agent/list"},{"title":"graph agent show","sidebarTitle":"show","playground":"none","href":"/reference/cli/agent/show"},{"title":"graph agent validate","sidebarTitle":"validate","playground":"none","href":"/reference/cli/agent/validate"},{"title":"graph agent migrate","sidebarTitle":"migrate","playground":"none","href":"/reference/cli/agent/migrate"}]},{"group":"graph thread","root":{"title":"graph thread","sidebarTitle":"graph thread","playground":"none","href":"/reference/cli/thread"},"pages":[{"title":"graph thread list","sidebarTitle":"list","playground":"none","href":"/reference/cli/thread/list"},{"title":"graph thread show","sidebarTitle":"show","playground":"none","href":"/reference/cli/thread/show"},{"title":"graph thread rm","sidebarTitle":"rm","playground":"none","href":"/reference/cli/thread/rm"}]},{"group":"graph mcp","root":{"title":"graph mcp","sidebarTitle":"graph mcp","playground":"none","href":"/reference/cli/mcp"},"pages":[{"title":"graph mcp list","sidebarTitle":"list","playground":"none","href":"/reference/cli/mcp/list"},{"title":"graph mcp tools","sidebarTitle":"tools","playground":"none","href":"/reference/cli/mcp/tools"},{"title":"graph mcp test","sidebarTitle":"test","playground":"none","href":"/reference/cli/mcp/test"},{"title":"graph mcp serve","sidebarTitle":"serve","playground":"none","href":"/reference/cli/mcp/serve"},{"title":"graph mcp probe","sidebarTitle":"probe","playground":"none","href":"/reference/cli/mcp/probe"}]},{"group":"graph shape","root":{"title":"graph shape","sidebarTitle":"graph shape","playground":"none","href":"/reference/cli/shape"},"pages":[{"title":"graph shape list","sidebarTitle":"list","playground":"none","href":"/reference/cli/shape/list"},{"title":"graph shape show","sidebarTitle":"show","playground":"none","href":"/reference/cli/shape/show"}]},{"group":"graph config","root":{"title":"graph config","sidebarTitle":"graph config","playground":"none","href":"/reference/cli/config"},"pages":[{"title":"graph config show","sidebarTitle":"show","playground":"none","href":"/reference/cli/config/show"},{"title":"graph config init","sidebarTitle":"init","playground":"none","href":"/reference/cli/config/init"},{"title":"graph config path","sidebarTitle":"path","playground":"none","href":"/reference/cli/config/path"},{"title":"graph config check","sidebarTitle":"check","playground":"none","href":"/reference/cli/config/check"},{"title":"graph config migrate","sidebarTitle":"migrate","playground":"none","href":"/reference/cli/config/migrate"}]},{"group":"graph pack","root":{"title":"graph pack","sidebarTitle":"graph pack","playground":"none","href":"/reference/cli/pack"},"pages":[{"title":"graph pack add","sidebarTitle":"add","playground":"none","href":"/reference/cli/pack/add"},{"title":"graph pack list","sidebarTitle":"list","playground":"none","href":"/reference/cli/pack/list"},{"title":"graph pack update","sidebarTitle":"update","playground":"none","href":"/reference/cli/pack/update"},{"title":"graph pack remove","sidebarTitle":"remove","playground":"none","href":"/reference/cli/pack/remove"},{"title":"graph pack new","sidebarTitle":"new","playground":"none","href":"/reference/cli/pack/new"},{"title":"graph pack check","sidebarTitle":"check","playground":"none","href":"/reference/cli/pack/check"},{"title":"graph pack run","sidebarTitle":"run","playground":"none","href":"/reference/cli/pack/run"},{"title":"graph pack test","sidebarTitle":"test","playground":"none","href":"/reference/cli/pack/test"},{"title":"graph pack release","sidebarTitle":"release","playground":"none","href":"/reference/cli/pack/release"}]},{"group":"graph workbench","root":{"title":"graph workbench","sidebarTitle":"graph workbench","playground":"none","href":"/reference/cli/workbench"},"pages":[{"title":"graph workbench plan","sidebarTitle":"plan","playground":"none","href":"/reference/cli/workbench/plan"},{"title":"graph workbench agent","sidebarTitle":"agent","playground":"none","href":"/reference/cli/workbench/agent"},{"title":"graph workbench tool","sidebarTitle":"tool","playground":"none","href":"/reference/cli/workbench/tool"}]},{"title":"graph version","sidebarTitle":"graph version","playground":"none","href":"/reference/cli/version"},{"title":"Error handling","href":"/reference/cli/error-handling"}]},{"title":"config.toml","playground":"none","href":"/reference/configuration"},{"title":"Environment variables","playground":"none","href":"/reference/environment-variables"},{"title":"Template language","href":"/reference/template-language"},{"title":"File versions","href":"/reference/file-versions"},{"title":"Data directory","href":"/reference/data-directory"},{"title":"Glossary","href":"/reference/glossary"}]},{"title":"Changelog","icon":"clock-rotate-left","href":"/changelog"}]},"title":"Quick start - graph","buildId":"dpl_CJQjyFMo3m7wZruKi1248oJzrnYG","deploymentId":"dpl_CJQjyFMo3m7wZruKi1248oJzrnYG","dynamics":["07c022d89b","a74be98ba7"],"chunks":["Frame-DPQvot1W.js","DynamicMarkdown-XfgpN2Wi.js","zoom-image-lightbox-6J4uLOST.js","PlusIcon-Bs8LLFlB.js","lightbox-handle-r17bVUz3.js"]}