Install, update and remove Probe — through the wizard, with the commands underneath.
One command sets everything up. The tabs on this page show the wizard first and the equivalent command second, for when a script is doing the work.
npx probe-research install
The npm package is a thin launcher: it resolves and runs the real CLI, so you do not need Python tooling set up first. It signs you in, installs the plugins for the coding agents you pick, and offers to import work you already have.
Walk through the wizard
Four screens, and what each one asks.
An interactive install also asks “Where should this computer’s work go?”: the workspace its new projects are filed in. An unattended install (--yes or explicit flags) never guesses between several workspaces; it keeps the one already set (or your old saved default), and otherwise leaves it unset and says how to pick one. Change it later with probe workspace use <slug>. See each computer’s workspace.
A coding agent can sign you up or in itself, with no browser form: it follows useprobe.ai/auth.md, and you sign in with Google and type the 6-digit code the agent shows you. See agent sign-in.
Pick your coding agents, review what will be set up, install, and import. npx probe-research with no verb opens the main menu instead — the right entry point when you are managing an install rather than creating one.Add --agent codex for Codex, or --agent both for Claude Code and Codex together.
Same flow, no prompts. An omitted flag preserves whatever is already configured, so this is safe to run repeatedly against a fleet. See unattended use.
probe wizard --action manual
Prints every command the wizard runs, for the agents you name — generated from the same constants, so it cannot drift. This is the path for air-gapped machines and for anyone who wants to read the commands before running them.
The last step authorizes this Codex device — Codex needs its own capture credential, separate from Claude Code’s.
On pi, check the result rather than assuming it. A settings file that carries the package without its extensions loads the skills and the MCP manifest but never spawns the capture daemon — tracking reads as on while nothing is captured. probe doctor names that state.
The two plugins are separate on purpose, because they are separate consent decisions: tracking adds skills and read-only search, tap streams your sessions to the team knowledgebase.
If you are instrumenting a training script and no coding agent is involved, skip the wizard entirely:
pip install probe-research
uv tool install probe-research
uv add probe-research
One package ships both surfaces — import probe (the SDK) and probe (the CLI). They are the same implementation with different ergonomics, so they have capability parity.Then sign in — this signs the device in and installs nothing else:
probe wizard --action login
Auth and accounts
Signing in, switching accounts, tokens, contexts, and air-gapped sign-in.
The read-only MCP server ships inside the tracking plugin, so a plugin install needs no extra step. To wire it into another MCP client:
probe-research-mcp # stdio server
The hosted HTTP endpoint is https://mcp.research.prbe.ai/mcp. Credentials:
probe mcp status # where the credential resolves from, and whether it worksprobe mcp headers # Authorization header as JSONprobe mcp env # the export line, for clients that only read the environment
The server prefers PROBE_MCP_TOKEN, a separately minted read-only token. It falls back to PROBE_TOKEN for local development and exposes no mutation tools either way.
MCP reference
All six tools, token budgets, pagination and entity views.
Auto-update is on by default and runs in the background at session start.
Wizard
Command
npx probe-research # → Update to the latest version
The On this device block carries a Versions section: what you have installed, what is published, and whether you are current — graded per component, because CLI, SDK, plugin and tap update on their own cadences.To stop background upgrades, untick Automatic updates in Settings.
probe wizard --action update # update nowprobe wizard --no-auto-update --yes # stop background upgradesprobe doctor # versions, and the LAST UPDATE ATTEMPT
probe doctor’s last line matters more than the version numbers: a detached auto-updater that has been failing silently is otherwise invisible.
Stops capture and imports, clears local import history, removes the plugins, and signs this device out — the tokens saved here are revoked.To sign out without uninstalling, choose Sign out instead; the plugins stay installed.
probe wizard --action uninstall --yes # remove everythingprobe wizard --action logout # credentials only; plugins stayprobe wizard --no-capture --uninstall --yes # drop the capture plugin only
Nothing already sent to your team’s knowledgebase is touched. Uninstalling a client does not delete data.
Credentials in your shell outrank the config file. If PROBE_TOKEN, PROBE_MCP_TOKEN, PROBE_INGEST_TOKEN or PROBE_SERVICE_TOKEN is exported in your environment, signing out clears the file but the CLI still authenticates. The wizard says so when it sees one — it cannot unset a variable in your parent shell.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Probe Research","description":"Probe Research is the system of record for a team's ML work — projects, experiments, runs, metrics, artifacts, notes and coding-agent sessions, with semantic search over all of it.","colors":{"primary":"#1b1c1a","light":"#faf9f5","dark":"#1b1c1a"},"logo":{"light":"https://mintcdn.com/probe/frAHS0hkKnXGgKY1/logo/light.svg?fit=max\u0026auto=format\u0026n=frAHS0hkKnXGgKY1\u0026q=85\u0026s=3e3d470d6c5ca86844de9978bf1064cf","dark":"https://mintcdn.com/probe/frAHS0hkKnXGgKY1/logo/dark.svg?fit=max\u0026auto=format\u0026n=frAHS0hkKnXGgKY1\u0026q=85\u0026s=fe51261e1ec0727f060d4438310d7006"},"favicon":"https://mintcdn.com/probe/frAHS0hkKnXGgKY1/favicon.svg?fit=max\u0026auto=format\u0026n=frAHS0hkKnXGgKY1\u0026q=85\u0026s=b294cc1b88961f46a7913344947ed161","appearance":{"default":"light","strict":false},"background":{"color":{"light":"#faf9f5","dark":"#000000"}},"navbar":{"primary":{"type":"button","label":"Dashboard","href":"https://research.prbe.ai"}},"footer":{"socials":{"github":"https://github.com/prbe-ai/research-os-agent"}},"seo":{},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"probe","hasAudioNarration":false,"actualSubdomain":"probe","customDomains":["docs.prbe.ai"],"gitSource":{"type":"github","owner":"prbe-ai","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"latestBuiltDeploymentHistoryId":"6ad59cb45382a269c562d1a6","collectionId":"942d9ee8-e65c-4f24-b33a-06ad79e614de","liveDeploymentHistoryId":"6ad59cb45382a269c562d1a6","schemaVersion":"v3"},"entitlements":{"AI_CHAT":{"status":"DISABLED"},"WEB_MCP":{"status":"DISABLED"},"NARRATION":{"status":"DISABLED"}},"buildId":"6ad59cb45382a269c562d1a6","clientVersion":"0.0.3939","searchFilterCounts":[{"language":"default","tag":"Tracking your work","count":10},{"language":"default","tag":"Coding agents","count":8},{"language":"default","tag":"Dashboard","count":8},{"language":"default","tag":"Setup wizard","count":8},{"language":"default","tag":"Integrations and imports","count":5},{"language":"default","tag":"CLI","count":4},{"language":"default","tag":"Getting started","count":4},{"language":"default","tag":"Reference","count":3},{"language":"default","tag":"Python SDK","count":3},{"language":"default","tag":"Deploy and operate","count":2}]},"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":"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":[],"page":{"pagePath":"installation","slug":"/installation","pageMetadata":{"title":"Installation","description":"Install, update and remove Probe — through the wizard, with the commands underneath.","icon":"download","href":"/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, update and remove Probe — through the wizard, with the commands underneath.\"\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`,strong:`strong`,..._provideComponents(),...props.components},{Accordion,Card,CodeBlock,CodeGroup,Heading,Note,Tab,Tabs,Tip,Warning}=_components;if(!Accordion)_missingMdxReference(`Accordion`,true);if(!Card)_missingMdxReference(`Card`,true);if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!CodeGroup)_missingMdxReference(`CodeGroup`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!Tab)_missingMdxReference(`Tab`,true);if(!Tabs)_missingMdxReference(`Tabs`,true);if(!Tip)_missingMdxReference(`Tip`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`One command sets everything up. The tabs on this page show the wizard first and the equivalent command second, for when a script is doing the work.`}),`\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:`npx`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` probe-research`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` install`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`The npm package is a thin launcher: it resolves and runs the real CLI, so you do not need Python tooling set up first. It signs you in, installs the plugins for the coding agents you pick, and offers to import work you already have.`}),`\n`,_jsx(Card,{title:`Walk through the wizard`,icon:`wand-magic-sparkles`,horizontal:true,href:`/wizard/install`,children:_jsx(_components.p,{children:`Four screens, and what each one asks.`})}),`\n`,_jsxs(_components.p,{children:[`An interactive install also asks “Where should this computer’s work go?”: the workspace its new projects are filed in. An unattended install (`,_jsx(_components.code,{children:`--yes`}),` or explicit flags) never guesses between several workspaces; it keeps the one already set (or your old saved default), and otherwise leaves it unset and says how to pick one. Change it later with `,_jsx(_components.code,{children:`probe workspace use \u003cslug>`}),`. See `,_jsx(_components.a,{href:`/dashboard/workspaces#each-computers-workspace`,children:`each computer’s workspace`}),`.`]}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[`A coding agent can sign you up or in itself, with no browser form: it follows `,_jsx(_components.a,{href:`https://www.useprobe.ai/auth.md`,children:`useprobe.ai/auth.md`}),`, and you sign in with Google and type the 6-digit code the agent shows you. See `,_jsx(_components.a,{href:`/cli/auth#agent-sign-in`,children:`agent sign-in`}),`.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`setting-up-a-device`,children:`Setting up a device`}),`\n`,_jsxs(Tabs,{children:[_jsxs(Tab,{title:`Wizard`,id:`wizard`,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:`npx`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` probe-research`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` install`})]}),`\n`]})})}),_jsxs(_components.p,{children:[`Pick your coding agents, review what will be set up, install, and import. `,_jsx(_components.code,{children:`npx probe-research`}),` with no verb opens the main menu instead — the right entry point when you are managing an install rather than creating one.`]}),_jsxs(_components.p,{children:[`Add `,_jsx(_components.code,{children:`--agent codex`}),` for Codex, or `,_jsx(_components.code,{children:`--agent both`}),` for Claude Code and Codex together.`]})]}),_jsxs(Tab,{title:`Command`,id:`command`,children:[_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:`probe`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` wizard`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --action`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` configure`}),_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:` --agent`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` both`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --tracking`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --capture`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --auto-update`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --agent-rules`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --yes`})]}),`\n`]})})}),_jsxs(_components.p,{children:[`Same flow, no prompts. `,_jsx(_components.strong,{children:`An omitted flag preserves whatever is already configured`}),`, so this is safe to run repeatedly against a fleet. See `,_jsx(_components.a,{href:`/wizard/flags`,children:`unattended use`}),`.`]})]}),_jsxs(Tab,{title:`By hand`,id:`by-hand`,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:`probe`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` wizard`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --action`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` manual`})]}),`\n`]})})}),_jsx(_components.p,{children:`Prints every command the wizard runs, for the agents you name — generated from the same constants, so it cannot drift. This is the path for air-gapped machines and for anyone who wants to read the commands before running them.`}),_jsx(Accordion,{title:`What it prints, for Claude Code`,id:`what-it-prints-for-claude-code`,children:_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:` plugin`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` marketplace`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` add`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` prbe-ai/research-os-agent`})]}),`\n`,_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:` plugin`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` install`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` probe-research@research-os-agent`}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # tracking + MCP`})]}),`\n`,_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:` plugin`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` install`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` probe-research-tap@research-os-agent`}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # session capture`})]}),`\n`]})})})}),_jsxs(Accordion,{title:`What it prints, for Codex`,id:`what-it-prints-for-codex`,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:`codex`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` plugin`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` marketplace`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` add`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` prbe-ai/research-os-agent`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`codex`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` plugin`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` add`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` probe-research@research-os-agent`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`codex`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` plugin`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` add`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` probe-research-tap@research-os-agent`})]}),`\n`,_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:` probe-research`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` install`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --agent`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` codex`})]}),`\n`]})})}),_jsx(_components.p,{children:`The last step authorizes this Codex device — Codex needs its own capture credential, separate from Claude Code’s.`})]}),_jsx(Warning,{children:_jsxs(_components.p,{children:[`On pi, check the result rather than assuming it. A settings file that carries the package without its extensions loads the skills and the MCP manifest but never spawns the capture daemon — tracking reads as on while nothing is captured. `,_jsx(_components.code,{children:`probe doctor`}),` names that state.`]})})]})]}),`\n`,_jsxs(_components.p,{children:[`The two plugins are separate on purpose, because they are separate consent decisions: `,_jsx(_components.strong,{children:`tracking`}),` adds skills and read-only search, `,_jsx(_components.strong,{children:`tap`}),` streams your sessions to the team knowledgebase.`]}),`\n`,_jsx(Heading,{level:`2`,id:`cli-and-sdk-only`,children:`CLI and SDK only`}),`\n`,_jsx(_components.p,{children:`If you are instrumenting a training script and no coding agent is involved, skip the wizard entirely:`}),`\n`,_jsxs(CodeGroup,{children:[_jsx(CodeBlock,{filename:`pip`,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:`pip`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` install`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` probe-research`})]}),`\n`]})})}),_jsx(CodeBlock,{filename:`uv`,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:`uv`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` tool`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` install`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` probe-research`})]}),`\n`]})})}),_jsx(CodeBlock,{filename:`in a project`,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:`uv`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` add`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` probe-research`})]}),`\n`]})})})]}),`\n`,_jsxs(_components.p,{children:[`One package ships both surfaces — `,_jsx(_components.code,{children:`import probe`}),` (the `,_jsx(_components.a,{href:`/sdk/quickstart`,children:`SDK`}),`) and `,_jsx(_components.code,{children:`probe`}),` (the `,_jsx(_components.a,{href:`/cli/overview`,children:`CLI`}),`). They are the same implementation with different ergonomics, so they have capability parity.`]}),`\n`,_jsx(_components.p,{children:`Then sign in — this signs the device in and installs nothing else:`}),`\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:`probe`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` wizard`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --action`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` login`})]}),`\n`]})})}),`\n`,_jsx(Card,{title:`Auth and accounts`,icon:`key`,href:`/cli/auth`,children:_jsx(_components.p,{children:`Signing in, switching accounts, tokens, contexts, and air-gapped sign-in.`})}),`\n`,_jsx(Heading,{level:`2`,id:`mcp-server`,children:`MCP server`}),`\n`,_jsx(_components.p,{children:`The read-only MCP server ships inside the tracking plugin, so a plugin install needs no extra step. To wire it into another MCP client:`}),`\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:`probe-research-mcp`}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # stdio server`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`The hosted HTTP endpoint is `,_jsx(_components.code,{children:`https://mcp.research.prbe.ai/mcp`}),`. Credentials:`]}),`\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:`probe`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` mcp`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` status`}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # where the credential resolves from, and whether it works`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`probe`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` mcp`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` headers`}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # Authorization header as JSON`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`probe`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` mcp`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` env`}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # the export line, for clients that only read the environment`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`The server prefers `,_jsx(_components.code,{children:`PROBE_MCP_TOKEN`}),`, a separately minted read-only token. It falls back to `,_jsx(_components.code,{children:`PROBE_TOKEN`}),` for local development and exposes no mutation tools either way.`]}),`\n`,_jsx(Card,{title:`MCP reference`,icon:`plug`,href:`/agents/mcp`,children:_jsx(_components.p,{children:`All six tools, token budgets, pagination and entity views.`})}),`\n`,_jsx(Heading,{level:`2`,id:`keeping-it-current`,children:`Keeping it current`}),`\n`,_jsx(_components.p,{children:`Auto-update is on by default and runs in the background at session start.`}),`\n`,_jsxs(Tabs,{children:[_jsxs(Tab,{title:`Wizard`,id:`wizard-2`,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:`npx`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` probe-research`}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # → Update to the latest version`})]}),`\n`]})})}),_jsxs(_components.p,{children:[`The `,_jsx(_components.strong,{children:`On this device`}),` block carries a Versions section: what you have installed, what is published, and whether you are current — graded per component, because CLI, SDK, plugin and tap update on their own cadences.`]}),_jsxs(_components.p,{children:[`To stop background upgrades, untick `,_jsx(_components.strong,{children:`Automatic updates`}),` in `,_jsx(_components.a,{href:`/wizard/settings`,children:`Settings`}),`.`]})]}),_jsx(Tab,{title:`Command`,id:`command-2`,children:_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:`probe`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` wizard`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --action`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` update`}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # update now`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`probe`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` wizard`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --no-auto-update`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --yes`}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # stop background upgrades`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`probe`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` doctor`}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # versions, and the LAST UPDATE ATTEMPT`})]}),`\n`]})})})})]}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:`probe doctor`}),`’s last line matters more than the version numbers: a detached auto-updater that has been failing silently is otherwise invisible.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`removing-it`,children:`Removing it`}),`\n`,_jsxs(Tabs,{children:[_jsxs(Tab,{title:`Wizard`,id:`wizard-3`,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:`npx`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` probe-research`}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # → Uninstall Probe`})]}),`\n`]})})}),_jsx(_components.p,{children:`Stops capture and imports, clears local import history, removes the plugins, and signs this device out — the tokens saved here are revoked.`}),_jsxs(_components.p,{children:[`To sign out without uninstalling, choose `,_jsx(_components.strong,{children:`Sign out`}),` instead; the plugins stay installed.`]})]}),_jsx(Tab,{title:`Command`,id:`command-3`,children:_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:`probe`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` wizard`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --action`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` uninstall`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --yes`}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # remove everything`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`probe`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` wizard`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --action`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` logout`}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # credentials only; plugins stay`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`probe`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` wizard`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --no-capture`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --uninstall`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --yes`}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # drop the capture plugin only`})]}),`\n`]})})})})]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Nothing already sent to your team’s knowledgebase is touched.`}),` Uninstalling a client does not delete data.`]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`Credentials in your shell outrank the config file. If `,_jsx(_components.code,{children:`PROBE_TOKEN`}),`, `,_jsx(_components.code,{children:`PROBE_MCP_TOKEN`}),`, `,_jsx(_components.code,{children:`PROBE_INGEST_TOKEN`}),` or `,_jsx(_components.code,{children:`PROBE_SERVICE_TOKEN`}),` is exported in your environment, signing out clears the file but the CLI still authenticates. The wizard says so when it sees one — it cannot unset a variable in your parent shell.`]})})]})}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","description":"Install, update and remove Probe — through the wizard, with the commands underneath.","icon":"download","href":"/installation"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Setting up a device","slug":"setting-up-a-device","depth":2,"children":[]},{"title":"CLI and SDK only","slug":"cli-and-sdk-only","depth":2,"children":[]},{"title":"MCP server","slug":"mcp-server","depth":2,"children":[]},{"title":"Keeping it current","slug":"keeping-it-current","depth":2,"children":[]},{"title":"Removing it","slug":"removing-it","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"probe","siteName":"Probe Research","title":"Installation - Probe Research","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-19T04:29:45.242Z","originalFileLocation":"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=\"light\"}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, update and remove Probe — through the wizard, with the commands underneath.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Probe Research\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/probe/4ypKDS3cRTh5Q5OH/_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/probe/4ypKDS3cRTh5Q5OH/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/probe/4ypKDS3cRTh5Q5OH/_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/probe/4ypKDS3cRTh5Q5OH/_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/probe/4ypKDS3cRTh5Q5OH/_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/probe/4ypKDS3cRTh5Q5OH/_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/probe/4ypKDS3cRTh5Q5OH/_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/probe/4ypKDS3cRTh5Q5OH/_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/probe/4ypKDS3cRTh5Q5OH/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Installation - Probe Research\">\u003cmeta data-mint-head property=\"og:description\" content=\"Install, update and remove Probe — through the wizard, with the commands underneath.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Probe Research\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.prbe.ai/installation\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://probe.mintlify.app/_mintlify/api/og/v2?division=Getting+started\u0026amp;title=Installation\u0026amp;description=Install%2C+update+and+remove+Probe+%E2%80%94+through+the+wizard%2C+with+the+commands+underneath.\u0026amp;theme=a8e40fb0d6b9c223af821a5d\u0026amp;signature=af05ea78a5cb1857be9d74d13b5d570105a7d2aa4f89e64a8e87caf91136c6cc\">\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 - Probe Research\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Install, update and remove Probe — through the wizard, with the commands underneath.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://probe.mintlify.app/_mintlify/api/og/v2?division=Getting+started\u0026amp;title=Installation\u0026amp;description=Install%2C+update+and+remove+Probe+%E2%80%94+through+the+wizard%2C+with+the+commands+underneath.\u0026amp;theme=a8e40fb0d6b9c223af821a5d\u0026amp;signature=af05ea78a5cb1857be9d74d13b5d570105a7d2aa4f89e64a8e87caf91136c6cc\">\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/probe/4ypKDS3cRTh5Q5OH/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Probe Research\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#1b1c1a\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.prbe.ai/installation\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/installation.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.prbe.ai/#organization\",\"name\":\"Probe Research\",\"url\":\"https://docs.prbe.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/probe/frAHS0hkKnXGgKY1/logo/light.svg?fit=max\u0026auto=format\u0026n=frAHS0hkKnXGgKY1\u0026q=85\u0026s=3e3d470d6c5ca86844de9978bf1064cf\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.prbe.ai#website\",\"name\":\"Probe Research\",\"url\":\"https://docs.prbe.ai\",\"publisher\":{\"@id\":\"https://docs.prbe.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.prbe.ai/installation#webpage\",\"url\":\"https://docs.prbe.ai/installation\",\"name\":\"Installation\",\"description\":\"Install, update and remove Probe — through the wizard, with the commands underneath.\",\"dateModified\":\"2026-10-19T04:29:45.242Z\",\"isPartOf\":{\"@id\":\"https://docs.prbe.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.prbe.ai/installation#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.prbe.ai/installation#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Getting started\",\"item\":\"https://docs.prbe.ai/index\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Installation\",\"item\":\"https://docs.prbe.ai/installation\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.prbe.ai/installation#article\",\"headline\":\"Installation\",\"name\":\"Installation\",\"description\":\"Install, update and remove Probe — through the wizard, with the commands underneath.\",\"url\":\"https://docs.prbe.ai/installation\",\"mainEntityOfPage\":{\"@id\":\"https://docs.prbe.ai/installation#webpage\"},\"dateModified\":\"2026-10-19T04:29:45.242Z\",\"publisher\":{\"@id\":\"https://docs.prbe.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.prbe.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Probe Research\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Probe Research","nav":{"global":null,"pages":[{"group":"Getting started","icon":"flag","expanded":true,"pages":[{"title":"Probe Research","sidebarTitle":"Introduction","description":"The system of record for everything your team does in ML — runs, metrics, files, decisions and the coding sessions around them.","icon":"house","href":"/index"},{"title":"Installation","icon":"download","href":"/installation"},{"title":"Quickstart","description":"Set Probe up with the wizard, then record a run you can open in the dashboard.","icon":"rocket","href":"/quickstart"},{"title":"Core concepts","icon":"diagram-project","href":"/concepts"}]},{"group":"Setup wizard","icon":"wand-magic-sparkles","expanded":true,"pages":[{"title":"The wizard","sidebarTitle":"Overview","icon":"wand-magic-sparkles","href":"/wizard/overview"},{"title":"Install Probe","icon":"download","href":"/wizard/install"},{"title":"Import research work","icon":"box-archive","href":"/wizard/import"},{"title":"Existing imports","icon":"list-check","href":"/wizard/imports"},{"title":"Settings","icon":"sliders","href":"/wizard/settings"},{"title":"Accounts","icon":"user","href":"/wizard/account"},{"title":"Diagnose and repair","icon":"stethoscope","href":"/wizard/diagnose"},{"title":"Unattended use","icon":"code","href":"/wizard/flags"}]},{"group":"Tracking your work","icon":"flask","pages":[{"title":"Projects and experiments","icon":"folder-tree","href":"/tracking/projects"},{"title":"Runs","icon":"play","href":"/tracking/runs"},{"title":"Metrics","icon":"chart-line","href":"/tracking/metrics"},{"title":"Artifacts and files","icon":"folder","href":"/tracking/artifacts"},{"title":"Datasets, sources and checkpoints","sidebarTitle":"Datasets","icon":"database","href":"/tracking/datasets"},{"title":"Code capture and reproduction","icon":"camera","href":"/tracking/snapshots"},{"title":"Spans, trajectories and trials","icon":"timeline","href":"/tracking/trajectories"},{"title":"Notes and documents","icon":"pen","href":"/tracking/notes"},{"title":"Summaries and Overview pages","sidebarTitle":"Summaries","icon":"file-lines","href":"/tracking/summaries"},{"title":"Papers","icon":"book-open","href":"/tracking/papers"}]},{"group":"Python SDK","icon":"python","pages":[{"title":"SDK quickstart","sidebarTitle":"Quickstart","icon":"play","href":"/sdk/quickstart"},{"title":"API reference","icon":"book","href":"/sdk/reference"},{"title":"Framework integrations","icon":"plug","href":"/sdk/integrations"}]},{"group":"CLI","icon":"terminal","pages":[{"title":"CLI overview","sidebarTitle":"Overview","icon":"terminal","href":"/cli/overview"},{"title":"Authentication and accounts","icon":"key","sidebarTitle":"Auth and accounts","href":"/cli/auth"},{"title":"Command reference","icon":"list","href":"/cli/commands"},{"title":"The outbox","icon":"inbox","href":"/cli/outbox"}]},{"group":"Coding agents","icon":"robot","pages":[{"title":"Coding agents","sidebarTitle":"Overview","icon":"robot","href":"/agents/overview"},{"title":"The Probe daemon","sidebarTitle":"Probe daemon","icon":"microchip","href":"/agents/daemon"},{"title":"Skills","icon":"wand-magic-sparkles","href":"/agents/skills"},{"title":"Keep folders out of Probe","sidebarTitle":".probe.config","icon":"eye-slash","href":"/agents/probe-config"},{"title":"MCP server","icon":"plug","href":"/agents/mcp"},{"title":"Session capture","icon":"message","href":"/agents/capture"},{"title":"Status line","icon":"bars","href":"/agents/statusline"},{"title":"Capy","icon":"cloud","href":"/agents/capy"}]},{"group":"Dashboard","icon":"browser","pages":[{"title":"The dashboard","sidebarTitle":"Overview","icon":"browser","href":"/dashboard/overview"},{"title":"Projects","icon":"folder-tree","href":"/dashboard/projects"},{"title":"Experiments and runs","icon":"flask","href":"/dashboard/experiments-runs"},{"title":"Charts","icon":"chart-line","href":"/dashboard/charts"},{"title":"Data","icon":"database","href":"/dashboard/data"},{"title":"Search and knowledge","icon":"magnifying-glass","href":"/dashboard/search"},{"title":"Assistant","icon":"sparkles","href":"/dashboard/assistant"},{"title":"Workspaces, team and settings","icon":"users","href":"/dashboard/workspaces"}]},{"group":"Integrations and imports","icon":"right-left","pages":[{"title":"Integrations","sidebarTitle":"Overview","icon":"right-left","href":"/integrations/overview"},{"title":"Weights \u0026 Biases","icon":"chart-line","href":"/integrations/wandb"},{"title":"GitHub","icon":"github","href":"/integrations/github"},{"title":"Benchling","icon":"flask","href":"/integrations/benchling"},{"title":"Backfill","icon":"clock-rotate-left","href":"/integrations/backfill"}]},{"group":"Deploy and operate","icon":"server","pages":[{"title":"Architecture","icon":"sitemap","href":"/deploy/architecture"},{"title":"Self-hosting","icon":"server","href":"/deploy/self-host"}]},{"group":"Reference","icon":"book","pages":[{"title":"Environment variables","icon":"gear","href":"/reference/environment"},{"title":"Troubleshooting","icon":"wrench","href":"/reference/troubleshooting"},{"title":"Glossary","icon":"book-bookmark","href":"/reference/glossary"}]}]},"title":"Installation - Probe Research","buildId":"dpl_5UDDZ9hnigTkoV7QtvQ39eUp84nu","deploymentId":"dpl_5UDDZ9hnigTkoV7QtvQ39eUp84nu","dynamics":[],"chunks":[]}