Run captured programs on any machine you can reach over SSH.
The ssh machine provider reaches a machine running sshd, and the machine
runtime runs captured programs on it. Anything you can
already ssh into works, with nothing to install on it. You run the
machine; Mirage only runs programs on it. Python SDK and Node.
A program on the machine opens workspace files at the same paths as in
Mirage, so the machine must see the mounts there. With mount_type: ssh,
Mirage serves every mount over the runtime’s own connection and the machine
mounts each with sshfs, as for
Docker. The
machine needs sshfs, and passwordless sudo for a mountpoint its user
cannot create (/data).Without mount_type, two ways:Files already on the machine. Mount the machine’s directory with the
ssh VFS at a prefix equal to its path there. The same
path then names the same file on both sides, with nothing to install:
Any other mount (S3, Slack and so on). Install Mirage and fuse3 on the
machine. Write the same mounts at the same paths into sandbox.yaml, and
start Mirage with it there:
Nothing checks that the paths match; a mismatch shows only when a program
misses a file. For a friendlier name, put or link the directory at that path
on the machine: Mirage never rewrites paths. A program on the machine opens its files directly, outside
this workspace’s mount modes and permissions.
host is also the address unless hostname overrides it; port,
username, identity_file, private_key and timeout are optional.
Authentication is a key or an agent, never a password.
private_key takes the key’s own text rather than a path, so a
credential pointer can read it
from a secret store.
The machine’s login shell must be POSIX-compatible. Commands use the
session’s working directory and environment.
Host keys are not verified, so treat the network path to the machine as
trusted.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Mirage","description":"Mirage gives AI agents one virtual filesystem for S3, Google Drive, Slack, GitHub, Notion, Postgres, and SSH, so shell commands work across services.","colors":{"primary":"#0C0C0C","light":"#FAFAFA","dark":"#000000"},"logo":{"light":"https://mintcdn.com/struktoai/7G-pGKhPIqaKqOXr/logo/light.svg?fit=max\u0026auto=format\u0026n=7G-pGKhPIqaKqOXr\u0026q=85\u0026s=d7007be7b5588a72b2072d2c33791785","dark":"https://mintcdn.com/struktoai/7G-pGKhPIqaKqOXr/logo/dark.svg?fit=max\u0026auto=format\u0026n=7G-pGKhPIqaKqOXr\u0026q=85\u0026s=0a255f925beb7370a41145f3f9185e9d"},"favicon":"https://mintcdn.com/struktoai/F9Lv_nTaj6By6crk/favicon.svg?fit=max\u0026auto=format\u0026n=F9Lv_nTaj6By6crk\u0026q=85\u0026s=bbca6fb54e64d72bdda46fb667828f1f","api":{"playground":{"display":"simple"},"examples":{"defaults":"all","languages":["curl","python","javascript"],"prefill":true}},"navbar":{"links":[{"icon":"globe","href":"https://www.strukto.ai/mirage","label":"mirage"},{"icon":"discord","href":"https://discord.gg/u8BPQ65KsS","label":""},{"icon":"x-twitter","href":"https://x.com/struktoai","label":""},{"icon":"github","href":"https://github.com/strukto-ai/mirage","label":"strukto-ai/mirage"}]},"footer":{"socials":{"github":"https://github.com/strukto-ai/mirage"}},"seo":{"metatags":{"keywords":"Mirage, filesystem for AI agents, virtual filesystem, AI agent tools, agent infrastructure, MCP alternative, bash for agents, S3 filesystem, Google Drive filesystem, Slack filesystem, GitHub filesystem, agent sandbox, Strukto","author":"Strukto","robots":"index, follow","googlebot":"index, follow","canonical":"https://docs.mirage.strukto.ai","theme-color":"#0C0C0C","color-scheme":"light dark","language":"en","category":"Technology","target":"developers","apple-mobile-web-app-capable":"yes","apple-mobile-web-app-status-bar-style":"black-translucent","og:type":"website","og:url":"https://docs.mirage.strukto.ai","og:image":"https://raw.githubusercontent.com/strukto-ai/mirage/main/assets/mirage-og-light@2x.png","og:image:alt":"Mirage: a virtual terminal for AI agents","og:site_name":"Mirage","og:locale":"en_US","twitter:card":"summary_large_image","twitter:site":"@struktoai","twitter:creator":"@struktoai","twitter:image":"https://raw.githubusercontent.com/strukto-ai/mirage/main/assets/mirage-og-light@2x.png","twitter:image:alt":"Mirage · A Virtual Terminal for AI Agents | Strukto"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"struktoai","hasAudioNarration":false,"actualSubdomain":"struktoai","customDomains":["docs.mirage.strukto.ai"],"gitSource":{"type":"github","owner":"strukto-ai","repo":"mirage","deployBranch":"main","contentDirectory":"docs","isPrivate":true,"mountPath":"","label":""},"entitlements":{},"buildId":"6af0813e1d63cdd7f63d6621","clientVersion":"0.0.4087","searchFilterCounts":[{"language":"default","tag":"VFS","count":204},{"language":"default","tag":"Home","count":134},{"language":"default","tag":"API","count":95},{"language":"default","tag":"TS","count":95},{"language":"default","tag":"Python","count":91},{"language":"default","tag":"CLIs","count":85},{"language":"default","tag":"Workspaces","count":52},{"language":"default","tag":"Object Storage","count":48},{"language":"default","tag":"Cloud \u0026 Productivity","count":35},{"language":"default","tag":"Data \u0026 AI","count":33}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","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":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","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":"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":"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":"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":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","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":"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":"workos-sso-scim","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},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"home/setup/machine/ssh","slug":"/home/setup/machine/ssh","pageMetadata":{"title":"SSH","icon":"/images/ssh-logo.svg","description":"Run captured programs on any machine you can reach over SSH.","href":"/home/setup/machine/ssh"},"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: \"Run captured programs on any machine you can reach over SSH.\"\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`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Tab,Table,Tabs,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Tab)_missingMdxReference(`Tab`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tabs)_missingMdxReference(`Tabs`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`The `,_jsx(_components.code,{children:`ssh`}),` machine provider reaches a machine running `,_jsx(_components.code,{children:`sshd`}),`, and the `,_jsx(_components.code,{children:`machine`}),`\nruntime runs captured programs on it. Anything you can\nalready `,_jsx(_components.code,{children:`ssh`}),` into works, with nothing to install on it. You run the\nmachine; Mirage only runs programs on it. Python SDK and Node.`]}),`\n`,_jsx(Heading,{level:`2`,id:`installation`,children:`Installation`}),`\n`,_jsxs(Tabs,{children:[_jsx(Tab,{title:`Python`,icon:`https://mintcdn.com/struktoai/F9Lv_nTaj6By6crk/images/python-logo.svg?fit=max\u0026auto=format\u0026n=F9Lv_nTaj6By6crk\u0026q=85\u0026s=cf5b268d330f7db46ea5cf6083f309a1`,\"data-og-width\":`110`,width:`110`,\"data-og-height\":`110`,height:`110`,\"data-path\":`images/python-logo.svg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/struktoai/F9Lv_nTaj6By6crk/images/python-logo.svg?w=280\u0026fit=max\u0026auto=format\u0026n=F9Lv_nTaj6By6crk\u0026q=85\u0026s=ec6faf31d17c507de04884c8e3e84fc4 280w, https://mintcdn.com/struktoai/F9Lv_nTaj6By6crk/images/python-logo.svg?w=560\u0026fit=max\u0026auto=format\u0026n=F9Lv_nTaj6By6crk\u0026q=85\u0026s=513110075319fa38b569cd5d9ee56d18 560w, https://mintcdn.com/struktoai/F9Lv_nTaj6By6crk/images/python-logo.svg?w=840\u0026fit=max\u0026auto=format\u0026n=F9Lv_nTaj6By6crk\u0026q=85\u0026s=745eae9b6f83f284317d6b3cf86f4c10 840w, https://mintcdn.com/struktoai/F9Lv_nTaj6By6crk/images/python-logo.svg?w=1100\u0026fit=max\u0026auto=format\u0026n=F9Lv_nTaj6By6crk\u0026q=85\u0026s=6a35b2dee25d105157f63804517f48f9 1100w, https://mintcdn.com/struktoai/F9Lv_nTaj6By6crk/images/python-logo.svg?w=1650\u0026fit=max\u0026auto=format\u0026n=F9Lv_nTaj6By6crk\u0026q=85\u0026s=68cfc238e62768721a07cba5ccb3713a 1650w, https://mintcdn.com/struktoai/F9Lv_nTaj6By6crk/images/python-logo.svg?w=2500\u0026fit=max\u0026auto=format\u0026n=F9Lv_nTaj6By6crk\u0026q=85\u0026s=96add08ae3d01c99c5232c2c81047d2e 2500w`,id:`python`,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:`pip`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` install`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'mirage-ai[ssh]'`})]}),`\n`]})})})}),_jsx(Tab,{title:`TypeScript`,icon:`https://mintcdn.com/struktoai/F9Lv_nTaj6By6crk/images/typescript-logo.svg?fit=max\u0026auto=format\u0026n=F9Lv_nTaj6By6crk\u0026q=85\u0026s=63a620cb702b16103c53ea361a17504a`,\"data-og-width\":`512`,width:`512`,\"data-og-height\":`512`,height:`512`,\"data-path\":`images/typescript-logo.svg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/struktoai/F9Lv_nTaj6By6crk/images/typescript-logo.svg?w=280\u0026fit=max\u0026auto=format\u0026n=F9Lv_nTaj6By6crk\u0026q=85\u0026s=7c886d111e0b35db581edbd0386add28 280w, https://mintcdn.com/struktoai/F9Lv_nTaj6By6crk/images/typescript-logo.svg?w=560\u0026fit=max\u0026auto=format\u0026n=F9Lv_nTaj6By6crk\u0026q=85\u0026s=e98d98edfc76a1404929453da5d80b3a 560w, https://mintcdn.com/struktoai/F9Lv_nTaj6By6crk/images/typescript-logo.svg?w=840\u0026fit=max\u0026auto=format\u0026n=F9Lv_nTaj6By6crk\u0026q=85\u0026s=e7c730e2b1309d022b3aa24d1ca5c74c 840w, https://mintcdn.com/struktoai/F9Lv_nTaj6By6crk/images/typescript-logo.svg?w=1100\u0026fit=max\u0026auto=format\u0026n=F9Lv_nTaj6By6crk\u0026q=85\u0026s=e85d76cfa96c69572349fa12b6c25d2c 1100w, https://mintcdn.com/struktoai/F9Lv_nTaj6By6crk/images/typescript-logo.svg?w=1650\u0026fit=max\u0026auto=format\u0026n=F9Lv_nTaj6By6crk\u0026q=85\u0026s=a0916e2a32a69fa95eaa12e96abb6ddb 1650w, https://mintcdn.com/struktoai/F9Lv_nTaj6By6crk/images/typescript-logo.svg?w=2500\u0026fit=max\u0026auto=format\u0026n=F9Lv_nTaj6By6crk\u0026q=85\u0026s=76c3b60256c0fde6517926f902498a59 2500w`,id:`typescript`,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:`pnpm`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` add`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` ssh2`})]}),`\n`]})})})})]}),`\n`,_jsx(Heading,{level:`2`,id:`usage`,children:`Usage`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`captures`}),` defaults to `,_jsx(_components.a,{href:`/home/setup/runtime/overview#captures`,children:_jsx(_components.code,{children:`@external`})}),`:\nevery program Mirage does not have itself. Name `,_jsx(_components.code,{children:`@python`}),` to run\nPython on the machine too.`]}),`\n`,_jsxs(Tabs,{children:[_jsx(Tab,{title:`Python`,icon:`https://mintcdn.com/struktoai/F9Lv_nTaj6By6crk/images/python-logo.svg?fit=max\u0026auto=format\u0026n=F9Lv_nTaj6By6crk\u0026q=85\u0026s=cf5b268d330f7db46ea5cf6083f309a1`,\"data-og-width\":`110`,width:`110`,\"data-og-height\":`110`,height:`110`,\"data-path\":`images/python-logo.svg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/struktoai/F9Lv_nTaj6By6crk/images/python-logo.svg?w=280\u0026fit=max\u0026auto=format\u0026n=F9Lv_nTaj6By6crk\u0026q=85\u0026s=ec6faf31d17c507de04884c8e3e84fc4 280w, https://mintcdn.com/struktoai/F9Lv_nTaj6By6crk/images/python-logo.svg?w=560\u0026fit=max\u0026auto=format\u0026n=F9Lv_nTaj6By6crk\u0026q=85\u0026s=513110075319fa38b569cd5d9ee56d18 560w, https://mintcdn.com/struktoai/F9Lv_nTaj6By6crk/images/python-logo.svg?w=840\u0026fit=max\u0026auto=format\u0026n=F9Lv_nTaj6By6crk\u0026q=85\u0026s=745eae9b6f83f284317d6b3cf86f4c10 840w, https://mintcdn.com/struktoai/F9Lv_nTaj6By6crk/images/python-logo.svg?w=1100\u0026fit=max\u0026auto=format\u0026n=F9Lv_nTaj6By6crk\u0026q=85\u0026s=6a35b2dee25d105157f63804517f48f9 1100w, https://mintcdn.com/struktoai/F9Lv_nTaj6By6crk/images/python-logo.svg?w=1650\u0026fit=max\u0026auto=format\u0026n=F9Lv_nTaj6By6crk\u0026q=85\u0026s=68cfc238e62768721a07cba5ccb3713a 1650w, https://mintcdn.com/struktoai/F9Lv_nTaj6By6crk/images/python-logo.svg?w=2500\u0026fit=max\u0026auto=format\u0026n=F9Lv_nTaj6By6crk\u0026q=85\u0026s=96add08ae3d01c99c5232c2c81047d2e 2500w`,id:`python-2`,children:_jsx(CodeBlock,{filename:``,numberOfLines:`17`,language:`python`,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:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`17`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` mirage `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#D4D4D4`},children:` RAMVFS`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, MountMode, Workspace`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` mirage.runtime.machine `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` MachineRuntime`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`ws `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` Workspace(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"/data\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: RAMVFS()},`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` mode`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`MountMode.`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#D4D4D4`},children:`EXEC`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` machines`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"box\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"provider\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"ssh\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"host\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"mybox\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"username\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"deploy\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"identity_file\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"~/.ssh/id_ed25519\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` runtimes`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`[MachineRuntime([`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"@python\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"@external\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`], `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`machine`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"box\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)],`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ws.shell(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"python3 -c 'print(1 + 1)'\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`]})})})}),_jsx(Tab,{title:`TypeScript`,icon:`https://mintcdn.com/struktoai/F9Lv_nTaj6By6crk/images/typescript-logo.svg?fit=max\u0026auto=format\u0026n=F9Lv_nTaj6By6crk\u0026q=85\u0026s=63a620cb702b16103c53ea361a17504a`,\"data-og-width\":`512`,width:`512`,\"data-og-height\":`512`,height:`512`,\"data-path\":`images/typescript-logo.svg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/struktoai/F9Lv_nTaj6By6crk/images/typescript-logo.svg?w=280\u0026fit=max\u0026auto=format\u0026n=F9Lv_nTaj6By6crk\u0026q=85\u0026s=7c886d111e0b35db581edbd0386add28 280w, https://mintcdn.com/struktoai/F9Lv_nTaj6By6crk/images/typescript-logo.svg?w=560\u0026fit=max\u0026auto=format\u0026n=F9Lv_nTaj6By6crk\u0026q=85\u0026s=e98d98edfc76a1404929453da5d80b3a 560w, https://mintcdn.com/struktoai/F9Lv_nTaj6By6crk/images/typescript-logo.svg?w=840\u0026fit=max\u0026auto=format\u0026n=F9Lv_nTaj6By6crk\u0026q=85\u0026s=e7c730e2b1309d022b3aa24d1ca5c74c 840w, https://mintcdn.com/struktoai/F9Lv_nTaj6By6crk/images/typescript-logo.svg?w=1100\u0026fit=max\u0026auto=format\u0026n=F9Lv_nTaj6By6crk\u0026q=85\u0026s=e85d76cfa96c69572349fa12b6c25d2c 1100w, https://mintcdn.com/struktoai/F9Lv_nTaj6By6crk/images/typescript-logo.svg?w=1650\u0026fit=max\u0026auto=format\u0026n=F9Lv_nTaj6By6crk\u0026q=85\u0026s=a0916e2a32a69fa95eaa12e96abb6ddb 1650w, https://mintcdn.com/struktoai/F9Lv_nTaj6By6crk/images/typescript-logo.svg?w=2500\u0026fit=max\u0026auto=format\u0026n=F9Lv_nTaj6By6crk\u0026q=85\u0026s=76c3b60256c0fde6517926f902498a59 2500w`,id:`typescript-2`,children:_jsx(CodeBlock,{filename:``,numberOfLines:`18`,language:`typescript`,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:`typescript`,children:_jsxs(_components.code,{language:`typescript`,numberOfLines:`18`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`MountMode`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`MachineRuntime`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`RAMVFS`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`Workspace`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` } `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '@struktoai/mirage-node'`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` ws`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` new`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` Workspace`}),_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\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'/data'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`:`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` new`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` RAMVFS`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`() },`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` mode:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` MountMode`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:`EXEC`}),_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:` machines:`}),_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:` box:`}),_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:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'ssh'`}),_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:` host:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'mybox'`}),_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:` username:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'deploy'`}),_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:` identityFile:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '~/.ssh/id_ed25519'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` runtimes:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` [`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`new`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` MachineRuntime`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({ `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`captures:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` [`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'@python'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'@external'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`], `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`machine:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'box'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` })],`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` ws`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`shell`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"python3 -c 'print(1 + 1)'\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`]})})})}),_jsx(Tab,{title:`YAML`,icon:`file-code`,id:`yaml`,children:_jsx(CodeBlock,{filename:``,numberOfLines:`14`,language:`yaml`,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:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`14`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`mode`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`exec`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`machines`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` box`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` provider`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`ssh`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` host`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`mybox`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` username`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`deploy`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` identity_file`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`~/.ssh/id_ed25519`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`runtimes`}),_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\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`machine`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` captures`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"@python\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"@external\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`]`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` machine`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`box`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`mounts`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` /data`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` vfs`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`ram`})]}),`\n`]})})})})]}),`\n`,_jsx(Heading,{level:`2`,id:`connecting-the-workspace`,children:`Connecting the workspace`}),`\n`,_jsxs(_components.p,{children:[`A program on the machine opens workspace files at the same paths as in\nMirage, so the machine must see the mounts there. With `,_jsx(_components.code,{children:`mount_type: ssh`}),`,\nMirage serves every mount over the runtime’s own connection and the machine\nmounts each with `,_jsx(_components.code,{children:`sshfs`}),`, as for\n`,_jsx(_components.a,{href:`/home/setup/machine/docker#connecting-the-workspace`,children:`Docker`}),`. The\nmachine needs `,_jsx(_components.code,{children:`sshfs`}),`, and passwordless `,_jsx(_components.code,{children:`sudo`}),` for a mountpoint its user\ncannot create (`,_jsx(_components.code,{children:`/data`}),`).`]}),`\n`,_jsxs(_components.p,{children:[`Without `,_jsx(_components.code,{children:`mount_type`}),`, two ways:`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Files already on the machine.`}),` Mount the machine’s directory with the\n`,_jsx(_components.a,{href:`/python/vfs/ssh`,children:`ssh VFS`}),` at a prefix equal to its path there. The same\npath then names the same file on both sides, with nothing to install:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`14`,language:`yaml`,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:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`14`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`mounts`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` /home/user/proj`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` vfs`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`ssh`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` config`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` host`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`mybox`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` root`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`/home/user/proj`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`machines`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` box`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` provider`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`ssh`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` host`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`mybox`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`runtimes`}),_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\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`machine`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` captures`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"@python\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"@external\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`]`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` machine`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`box`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Any other mount`}),` (S3, Slack and so on). Install Mirage and `,_jsx(_components.code,{children:`fuse3`}),` on the\nmachine. Write the same mounts at the same paths into `,_jsx(_components.code,{children:`sandbox.yaml`}),`, and\nstart Mirage with it there:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`7`,language:`yaml`,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:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`7`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`mounts`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` /data`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` vfs`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`s3`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` config`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` bucket`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`my-bucket`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` backend`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`fuse`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` mountpoint`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`/data`})]}),`\n`]})})}),`\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:`ssh`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` mybox`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` mirage`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` workspace`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` create`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` sandbox.yaml`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`Nothing checks that the paths match; a mismatch shows only when a program\nmisses a file. For a friendlier name, put or link the directory at that path\non the machine: Mirage never rewrites paths. A program on the machine opens its files directly, outside\nthis workspace’s mount modes and permissions.`}),`\n`,_jsx(Heading,{level:`2`,id:`runtime-behavior`,children:`Runtime behavior`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Capability`}),_jsx(_components.th,{children:`On the machine`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Command`}),_jsx(_components.td,{children:`The captured program and its words, as typed`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Piped input`}),_jsx(_components.td,{children:`stdin`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Environment`}),_jsxs(_components.td,{children:[`The session’s, over the config `,_jsx(_components.code,{children:`env`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Working directory`}),_jsx(_components.td,{children:`The shell’s, unchanged`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Workspace files`}),_jsxs(_components.td,{children:[`The machine’s own paths; see `,_jsx(_components.a,{href:`#connecting-the-workspace`,children:`above`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Disk and network`}),_jsx(_components.td,{children:`The machine’s own`})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`notes`,children:`Notes`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`host`}),` is also the address unless `,_jsx(_components.code,{children:`hostname`}),` overrides it; `,_jsx(_components.code,{children:`port`}),`,\n`,_jsx(_components.code,{children:`username`}),`, `,_jsx(_components.code,{children:`identity_file`}),`, `,_jsx(_components.code,{children:`private_key`}),` and `,_jsx(_components.code,{children:`timeout`}),` are optional.\nAuthentication is a key or an agent, never a password.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`private_key`}),` takes the key’s own text rather than a path, so a\n`,_jsx(_components.a,{href:`/home/authentication#pointer-fields`,children:`credential pointer`}),` can read it\nfrom a secret store.`]}),`\n`,_jsx(_components.li,{children:`The machine’s login shell must be POSIX-compatible. Commands use the\nsession’s working directory and environment.`}),`\n`]}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`Host keys are not verified, so treat the network path to the machine as\ntrusted.`})})]})}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":"SSH","icon":"/images/ssh-logo.svg","description":"Run captured programs on any machine you can reach over SSH.","href":"/home/setup/machine/ssh"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Installation","slug":"installation","depth":2,"children":[]},{"title":"Usage","slug":"usage","depth":2,"children":[]},{"title":"Connecting the workspace","slug":"connecting-the-workspace","depth":2,"children":[]},{"title":"Runtime behavior","slug":"runtime-behavior","depth":2,"children":[]},{"title":"Notes","slug":"notes","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"struktoai","siteName":"Mirage","title":"SSH - Mirage","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-08T12:34:59.941Z","originalFileLocation":"home/setup/machine/ssh.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Run captured programs on any machine you can reach over SSH.\">\u003cmeta data-mint-head name=\"keywords\" content=\"Mirage, filesystem for AI agents, virtual filesystem, AI agent tools, agent infrastructure, MCP alternative, bash for agents, S3 filesystem, Google Drive filesystem, Slack filesystem, GitHub filesystem, agent sandbox, Strukto\">\u003cmeta data-mint-head name=\"application-name\" content=\"Mirage\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003cmeta data-mint-head name=\"robots\" content=\"index, follow\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/struktoai/3lv99snhL-Tr_A0L/_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/struktoai/3lv99snhL-Tr_A0L/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/struktoai/3lv99snhL-Tr_A0L/_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/struktoai/3lv99snhL-Tr_A0L/_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/struktoai/3lv99snhL-Tr_A0L/_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/struktoai/3lv99snhL-Tr_A0L/_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/struktoai/3lv99snhL-Tr_A0L/_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/struktoai/3lv99snhL-Tr_A0L/_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/struktoai/3lv99snhL-Tr_A0L/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"SSH - Mirage\">\u003cmeta data-mint-head property=\"og:description\" content=\"Run captured programs on any machine you can reach over SSH.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Mirage\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.mirage.strukto.ai/home/setup/machine/ssh\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://raw.githubusercontent.com/strukto-ai/mirage/main/assets/mirage-og-light@2x.png\">\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=\"SSH - Mirage\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Run captured programs on any machine you can reach over SSH.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://raw.githubusercontent.com/strukto-ai/mirage/main/assets/mirage-og-light@2x.png\">\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/struktoai/3lv99snhL-Tr_A0L/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Mirage\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0C0C0C\">\u003cmeta data-mint-head name=\"og:locale\" content=\"en_US\">\u003cmeta data-mint-head name=\"author\" content=\"Strukto\">\u003cmeta data-mint-head name=\"googlebot\" content=\"index, follow\">\u003cmeta data-mint-head name=\"theme-color\" content=\"#0C0C0C\">\u003cmeta data-mint-head name=\"color-scheme\" content=\"light dark\">\u003cmeta data-mint-head name=\"language\" content=\"en\">\u003cmeta data-mint-head name=\"category\" content=\"Technology\">\u003cmeta data-mint-head name=\"target\" content=\"developers\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-capable\" content=\"yes\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\">\u003cmeta data-mint-head name=\"og:image:alt\" content=\"Mirage: a virtual terminal for AI agents\">\u003cmeta data-mint-head name=\"twitter:creator\" content=\"@struktoai\">\u003cmeta data-mint-head name=\"twitter:image:alt\" content=\"Mirage · A Virtual Terminal for AI Agents | Strukto\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.mirage.strukto.ai/home/setup/machine/ssh\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/home/setup/machine/ssh.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.mirage.strukto.ai/#organization\",\"name\":\"Mirage\",\"url\":\"https://docs.mirage.strukto.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/struktoai/7G-pGKhPIqaKqOXr/logo/light.svg?fit=max\u0026auto=format\u0026n=7G-pGKhPIqaKqOXr\u0026q=85\u0026s=d7007be7b5588a72b2072d2c33791785\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.mirage.strukto.ai#website\",\"name\":\"Mirage\",\"url\":\"https://docs.mirage.strukto.ai\",\"publisher\":{\"@id\":\"https://docs.mirage.strukto.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.mirage.strukto.ai/home/setup/machine/ssh#webpage\",\"url\":\"https://docs.mirage.strukto.ai/home/setup/machine/ssh\",\"name\":\"SSH\",\"description\":\"Run captured programs on any machine you can reach over SSH.\",\"dateModified\":\"2026-11-08T12:34:59.941Z\",\"isPartOf\":{\"@id\":\"https://docs.mirage.strukto.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.mirage.strukto.ai/home/setup/machine/ssh#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.mirage.strukto.ai/home/setup/machine/ssh#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Machines\",\"item\":\"https://docs.mirage.strukto.ai/home/setup/machine/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"SSH\",\"item\":\"https://docs.mirage.strukto.ai/home/setup/machine/ssh\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.mirage.strukto.ai/home/setup/machine/ssh#article\",\"headline\":\"SSH\",\"name\":\"SSH\",\"description\":\"Run captured programs on any machine you can reach over SSH.\",\"url\":\"https://docs.mirage.strukto.ai/home/setup/machine/ssh\",\"mainEntityOfPage\":{\"@id\":\"https://docs.mirage.strukto.ai/home/setup/machine/ssh#webpage\"},\"image\":\"https://raw.githubusercontent.com/strukto-ai/mirage/main/assets/mirage-og-light@2x.png\",\"dateModified\":\"2026-11-08T12:34:59.941Z\",\"publisher\":{\"@id\":\"https://docs.mirage.strukto.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.mirage.strukto.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Mirage\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Mirage","nav":{"global":null,"tabs":[{"tab":"Home","icon":"https://mintlify.s3.us-west-1.amazonaws.com/struktoai/images/mirage-icon-light.svg","groups":[{"group":"Getting Started","pages":[{"title":"Introduction","icon":"https://mintlify.s3.us-west-1.amazonaws.com/struktoai/images/mirage-icon-light.svg","href":"/home/introduction"},{"title":"Installation","icon":"download","href":"/home/install"}]},{"group":"Examples","pages":[{"title":"Embedded Terminal","icon":"terminal","href":"/home/examples/embedded-terminal"},{"title":"Policy \u0026 Security","icon":"shield-halved","href":"/home/examples/policy-security"},{"title":"Runtime Routing","icon":"route","href":"/home/examples/runtime-routing"}]},{"group":"Agents","pages":[{"title":"Agents","sidebarTitle":"Overview","icon":"robot","href":"/home/agents"},{"group":"Coding Agents","icon":"laptop-code","pages":[{"title":"Claude Code","icon":"https://mintlify.s3.us-west-1.amazonaws.com/struktoai/images/claude-logo.svg","href":"/home/agents/claude-code"},{"title":"OpenAI Codex","icon":"https://mintlify.s3.us-west-1.amazonaws.com/struktoai/images/openai-logo.svg","href":"/home/agents/codex"},{"title":"Grok Build","icon":"https://mintlify.s3.us-west-1.amazonaws.com/struktoai/images/grok-logo.svg","href":"/home/agents/grok-build"}]},{"group":"Access","icon":"plug","pages":[{"title":"Access","sidebarTitle":"Overview","icon":"cube","href":"/home/access/overview"},{"title":"HTTP","icon":"globe","href":"/home/access/http"},{"title":"MCP","icon":"https://mintlify.s3.us-west-1.amazonaws.com/struktoai/images/mcp-icon.svg","href":"/home/access/mcp"},{"title":"RPC","icon":"brackets-curly","href":"/home/access/rpc"},{"title":"SSH","icon":"square-terminal","href":"/home/access/ssh"},{"title":"CLI","icon":"https://mintlify.s3.us-west-1.amazonaws.com/struktoai/images/mirage-icon-light.svg","href":"/home/access/cli"},{"title":"Errors","icon":"triangle-exclamation","href":"/home/access/errors"},{"group":"FUSE","icon":"folder-open","pages":[{"title":"Overview","icon":"folder-open","href":"/home/setup/fuse"},{"title":"macOS","icon":"apple","href":"/home/setup/macos"},{"title":"Linux","icon":"linux","href":"/home/setup/linux"},{"title":"Windows","icon":"windows","href":"/home/setup/windows"}]}]}]},{"group":"VFS","pages":[{"title":"VFS","sidebarTitle":"Overview","icon":"grid-2","href":"/home/setup/vfs"},{"title":"Custom VFS","icon":"code","href":"/home/setup/custom-vfs"},{"title":"VFS.md and SKILL.md","icon":"file-lines","href":"/home/setup/vfs-md"},{"group":"Local \u0026 Infrastructure","icon":"server","pages":[{"title":"RAM","icon":"memory","href":"/home/setup/ram"},{"title":"Disk","icon":"hard-drive","href":"/home/setup/disk"},{"title":"OPFS","icon":"hard-drive","href":"/home/setup/opfs"},{"title":"Redis","icon":"https://mintlify.s3.us-west-1.amazonaws.com/struktoai/images/redis-logo.svg","href":"/home/setup/redis"},{"title":"SQL","icon":"database","href":"/home/setup/sql"},{"title":"SSH","icon":"https://mintlify.s3.us-west-1.amazonaws.com/struktoai/images/ssh-logo.svg","href":"/home/setup/ssh"}]},{"group":"Object Storage","icon":"cloud","pages":[{"title":"S3","icon":"https://mintlify.s3.us-west-1.amazonaws.com/struktoai/images/s3-logo.svg","href":"/home/setup/s3"},{"title":"Cloudflare R2","icon":"https://mintlify.s3.us-west-1.amazonaws.com/struktoai/images/cloudflare-logo.svg","href":"/home/setup/r2"},{"title":"Google Cloud Storage","icon":"https://mintlify.s3.us-west-1.amazonaws.com/struktoai/images/gcs-logo.svg","href":"/home/setup/gcs"},{"title":"OCI Object Storage","icon":"https://mintlify.s3.us-west-1.amazonaws.com/struktoai/images/oracle-logo.svg","href":"/home/setup/oci"},{"title":"Supabase Storage","icon":"https://mintlify.s3.us-west-1.amazonaws.com/struktoai/images/supabase-logo.svg","href":"/home/setup/supabase"},{"title":"MinIO","icon":"https://mintlify.s3.us-west-1.amazonaws.com/struktoai/images/minio-logo.svg","href":"/home/setup/minio"},{"title":"Ceph (Rados Gateway)","icon":"https://mintlify.s3.us-west-1.amazonaws.com/struktoai/images/ceph-logo.svg","href":"/home/setup/ceph"},{"title":"SeaweedFS","icon":"https://mintlify.s3.us-west-1.amazonaws.com/struktoai/images/seaweedfs-logo.svg","href":"/home/setup/seaweedfs"},{"title":"Wasabi","icon":"https://mintlify.s3.us-west-1.amazonaws.com/struktoai/images/wasabi-logo.svg","href":"/home/setup/wasabi"},{"title":"Backblaze B2","icon":"https://mintlify.s3.us-west-1.amazonaws.com/struktoai/images/backblaze-logo.svg","href":"/home/setup/backblaze"},{"title":"DigitalOcean Spaces","icon":"https://mintlify.s3.us-west-1.amazonaws.com/struktoai/images/digitalocean-logo.svg","href":"/home/setup/digitalocean"},{"title":"Tencent COS","icon":"https://mintlify.s3.us-west-1.amazonaws.com/struktoai/images/tencent-logo.svg","href":"/home/setup/tencent"},{"title":"Alibaba OSS","icon":"https://mintlify.s3.us-west-1.amazonaws.com/struktoai/images/aliyun-logo.svg","href":"/home/setup/aliyun"},{"title":"Scaleway","icon":"https://mintlify.s3.us-west-1.amazonaws.com/struktoai/images/scaleway-logo.svg","href":"/home/setup/scaleway"},{"title":"QingStor","icon":"cloud","href":"/home/setup/qingstor"},{"title":"HF Buckets","icon":"https://mintlify.s3.us-west-1.amazonaws.com/struktoai/images/huggingface-logo.svg","href":"/home/setup/hf_buckets"}]},{"group":"Cloud \u0026 Productivity","icon":"folder-open","pages":[{"title":"Google Workspace","icon":"https://mintlify.s3.us-west-1.amazonaws.com/struktoai/images/google-logo.svg","href":"/home/setup/google"},{"title":"Google Calendar","icon":"https://mintlify.s3.us-west-1.amazonaws.com/struktoai/images/gcal-logo.svg","href":"/home/setup/gcal"},{"title":"OneDrive","icon":"microsoft","href":"/home/setup/onedrive"},{"title":"SharePoint","icon":"microsoft","href":"/home/setup/sharepoint"},{"title":"Dropbox","icon":"https://mintlify.s3.us-west-1.amazonaws.com/struktoai/images/dropbox-logo.svg","href":"/home/setup/dropbox"},{"title":"Box","icon":"https://mintlify.s3.us-west-1.amazonaws.com/struktoai/images/box-logo.svg","href":"/home/setup/box"},{"title":"Nextcloud","icon":"https://mintlify.s3.us-west-1.amazonaws.com/struktoai/images/nextcloud-logo.svg","href":"/home/setup/nextcloud"},{"title":"Databricks Volume","icon":"https://mintlify.s3.us-west-1.amazonaws.com/struktoai/images/databricks-logo.svg","href":"/home/setup/databricks"},{"title":"TiDB Cloud Filesystem","icon":"https://mintlify.s3.us-west-1.amazonaws.com/struktoai/images/tidb-logo.svg","href":"/home/setup/tidb"}]},{"group":"Developer \u0026 Messaging","icon":"code","pages":[{"title":"GitHub","icon":"github","href":"/home/setup/github"},{"title":"HF Spaces","icon":"https://mintlify.s3.us-west-1.amazonaws.com/struktoai/images/huggingface-logo.svg","href":"/home/setup/hf_spaces"},{"title":"Linear","icon":"https://mintlify.s3.us-west-1.amazonaws.com/struktoai/images/linear-logo.svg","href":"/home/setup/linear"},{"title":"Weights \u0026 Biases","icon":"https://mintlify.s3.us-west-1.amazonaws.com/struktoai/images/wandb-logo.svg","href":"/home/setup/wandb"},{"title":"Langfuse","icon":"https://mintlify.s3.us-west-1.amazonaws.com/struktoai/images/langfuse-logo.svg","href":"/home/setup/langfuse"},{"title":"Jaeger","icon":"https://mintlify.s3.us-west-1.amazonaws.com/struktoai/images/jaeger-logo.svg","href":"/home/setup/jaeger"},{"title":"Slack","icon":"https://mintlify.s3.us-west-1.amazonaws.com/struktoai/images/slack-logo.svg","href":"/home/setup/slack"},{"title":"Discord","icon":"https://mintlify.s3.us-west-1.amazonaws.com/struktoai/images/discord-logo.svg","href":"/home/setup/discord"},{"title":"Email","icon":"envelope","href":"/home/setup/email"}]},{"group":"Data \u0026 AI","icon":"database","pages":[{"title":"MongoDB","icon":"https://mintlify.s3.us-west-1.amazonaws.com/struktoai/images/mongodb-logo.svg","href":"/home/setup/mongodb"},{"title":"GridFS","icon":"https://mintlify.s3.us-west-1.amazonaws.com/struktoai/images/mongodb-logo.svg","href":"/home/setup/gridfs"},{"title":"Postgres","icon":"https://mintlify.s3.us-west-1.amazonaws.com/struktoai/images/postgres-logo.svg","href":"/home/setup/postgres"},{"title":"Airtable","icon":"https://mintlify.s3.us-west-1.amazonaws.com/struktoai/images/airtable-logo.svg","href":"/home/setup/airtable"},{"title":"Chroma","icon":"https://mintlify.s3.us-west-1.amazonaws.com/struktoai/images/chroma-logo.svg","href":"/home/setup/chroma"},{"title":"LanceDB","icon":"database","href":"/home/setup/lancedb"},{"title":"Qdrant","icon":"https://mintlify.s3.us-west-1.amazonaws.com/struktoai/images/qdrant-logo.svg","href":"/home/setup/qdrant"},{"title":"Dify","icon":"https://mintlify.s3.us-west-1.amazonaws.com/struktoai/images/dify-logo.svg","href":"/home/setup/dify"},{"title":"Mem0","icon":"https://mintlify.s3.us-west-1.amazonaws.com/struktoai/images/mem0.svg","href":"/home/setup/mem0"},{"title":"HF Datasets","icon":"https://mintlify.s3.us-west-1.amazonaws.com/struktoai/images/huggingface-logo.svg","href":"/home/setup/hf_datasets"},{"title":"HF Models","icon":"https://mintlify.s3.us-west-1.amazonaws.com/struktoai/images/huggingface-logo.svg","href":"/home/setup/hf_models"}]},{"group":"Notes \u0026 Tasks","icon":"book","pages":[{"title":"Notion","icon":"https://mintlify.s3.us-west-1.amazonaws.com/struktoai/images/notion-logo.svg","href":"/home/setup/notion"},{"title":"Trello","icon":"https://mintlify.s3.us-west-1.amazonaws.com/struktoai/images/trello-logo.svg","href":"/home/setup/trello"}]}]},{"group":"Integration","pages":[{"title":"Integration","sidebarTitle":"Overview","icon":"plug","href":"/home/integration/overview"},{"title":"Search","icon":"magnifying-glass","href":"/home/integration/search"},{"title":"Lines","icon":"list-ol","href":"/home/integration/lines"},{"title":"Checksums","icon":"fingerprint","href":"/home/integration/checksums"},{"title":"Walks","icon":"folder-tree","href":"/home/integration/walks"}]},{"group":"CLIs","pages":[{"title":"Overview","icon":"wrench","href":"/home/setup/clis"},{"group":"CLIs","icon":"wrench","pages":[{"title":"Himalaya","icon":"envelope","href":"/home/setup/cli/himalaya"},{"title":"GWS","icon":"https://mintlify.s3.us-west-1.amazonaws.com/struktoai/images/google-logo.svg","href":"/home/setup/cli/gws"},{"title":"Slack","icon":"https://mintlify.s3.us-west-1.amazonaws.com/struktoai/images/slack-logo.svg","href":"/home/setup/cli/slack"},{"title":"Discord","icon":"https://mintlify.s3.us-west-1.amazonaws.com/struktoai/images/discord-logo.svg","href":"/home/setup/cli/discord"},{"title":"ntn","icon":"https://mintlify.s3.us-west-1.amazonaws.com/struktoai/images/notion-logo.svg","href":"/home/setup/cli/ntn"},{"title":"Linear","icon":"https://mintlify.s3.us-west-1.amazonaws.com/struktoai/images/linear-logo.svg","href":"/home/setup/cli/linear"},{"title":"Trello","icon":"https://mintlify.s3.us-west-1.amazonaws.com/struktoai/images/trello-logo.svg","href":"/home/setup/cli/trello"},{"title":"Airtable","icon":"https://mintlify.s3.us-west-1.amazonaws.com/struktoai/images/airtable-logo.svg","href":"/home/setup/cli/airtable"},{"title":"gh","icon":"github","href":"/home/setup/cli/gh"},{"title":"hf","icon":"https://mintlify.s3.us-west-1.amazonaws.com/struktoai/images/huggingface-logo.svg","href":"/home/setup/cli/hf"},{"title":"git","icon":"git-alt","href":"/home/setup/cli/git"},{"title":"search","icon":"magnifying-glass","href":"/home/setup/cli/search"}]}]},{"group":"Mirage Shell","pages":[{"title":"Mirage shell","icon":"square-terminal","href":"/home/core/shell"},{"title":"Command Output Limits","sidebarTitle":"Output Limits","icon":"gauge","href":"/home/core/output-limits"},{"title":"Core Tools","icon":"wrench","href":"/home/core/tools"},{"title":"Data \u0026 Network","icon":"network-wired","href":"/home/core/data-network"}]},{"group":"Agent Profiles","pages":[{"title":"Agent profiles","sidebarTitle":"Overview","icon":"robot","href":"/home/profiles"}]},{"group":"Policy","pages":[{"title":"Policy","sidebarTitle":"Overview","icon":"https://mintlify.s3.us-west-1.amazonaws.com/struktoai/images/policy-icon.svg","href":"/home/policy/overview"},{"title":"Policies","icon":"gavel","href":"/home/policy/policies"},{"title":"Scripts","icon":"code","href":"/home/policy/scripts"},{"title":"Explain","icon":"lightbulb","href":"/home/policy/explain"},{"title":"Route Runtime","icon":"route","href":"/home/policy/route-runtime"},{"title":"Route Network","icon":"network-wired","href":"/home/policy/route-network"}]},{"group":"Runtimes","pages":[{"title":"Runtimes","sidebarTitle":"Overview","icon":"microchip","href":"/home/setup/runtime/overview"},{"group":"Python","icon":"python","pages":[{"title":"Monty","icon":"https://mintlify.s3.us-west-1.amazonaws.com/struktoai/images/pydantic-logo.svg","href":"/home/setup/runtime/monty"},{"title":"WASI","icon":"https://mintlify.s3.us-west-1.amazonaws.com/struktoai/images/webassembly-logo.svg","href":"/home/setup/runtime/wasi"},{"title":"Pyodide","icon":"python","href":"/home/setup/runtime/pyodide"}]},{"group":"JavaScript","icon":"js","pages":[{"title":"QuickJS","icon":"js","href":"/home/setup/runtime/quickjs"}]},{"title":"Local","icon":"laptop","href":"/home/setup/runtime/local"},{"title":"Sandlock","icon":"https://mintlify.s3.us-west-1.amazonaws.com/struktoai/images/sandlock-logo.svg","href":"/home/setup/runtime/sandlock"},{"title":"Custom runtime","icon":"code","href":"/home/setup/runtime/custom"}]},{"group":"Machines","pages":[{"title":"Overview","icon":"server","href":"/home/setup/machine/overview"},{"title":"Docker","icon":"https://mintlify.s3.us-west-1.amazonaws.com/struktoai/images/docker-logo.svg","href":"/home/setup/machine/docker"},{"title":"Apple Container","icon":"apple","href":"/home/setup/machine/apple_container"},{"title":"smolvm","icon":"https://mintlify.s3.us-west-1.amazonaws.com/struktoai/images/smolvm-logo.svg","href":"/home/setup/machine/smolvm"},{"title":"microsandbox","icon":"https://mintlify.s3.us-west-1.amazonaws.com/struktoai/images/microsandbox-logo.svg","href":"/home/setup/machine/microsandbox"},{"title":"Daytona","icon":"https://mintlify.s3.us-west-1.amazonaws.com/struktoai/images/daytona-logo.svg","href":"/home/setup/machine/daytona"},{"title":"E2B","icon":"https://mintlify.s3.us-west-1.amazonaws.com/struktoai/images/e2b-logo.svg","description":"Run captured programs in an E2B cloud sandbox you created.","href":"/home/setup/machine/e2b"},{"title":"SSH","icon":"https://mintlify.s3.us-west-1.amazonaws.com/struktoai/images/ssh-logo.svg","href":"/home/setup/machine/ssh"}]},{"group":"Infrastructure","pages":[{"title":"Overview","description":"The stores a workspace keeps, the infrastructure each one can live on, and where you set it.","icon":"network-wired","href":"/home/infrastructure/overview"},{"title":"Namespace","icon":"link","href":"/home/infrastructure/namespace"},{"title":"Sessions","icon":"user","href":"/home/infrastructure/sessions"},{"title":"History","icon":"clock-rotate-left","href":"/home/infrastructure/history"},{"title":"Jobs","icon":"list-check","href":"/home/infrastructure/jobs"},{"title":"File cache","icon":"database","href":"/home/infrastructure/file-cache"},{"title":"Index","icon":"folder-tree","href":"/home/infrastructure/file-index"}]},{"group":"Configuration","pages":[{"title":"Workspace configuration","icon":"sliders","href":"/home/configuration"},{"title":"Service credentials","sidebarTitle":"Service credentials","icon":"key","href":"/home/authentication"},{"title":"Security limits","icon":"shield-halved","href":"/home/security"}]},{"group":"Notifications","pages":[{"title":"Overview","sidebarTitle":"Overview","icon":"bell","href":"/home/notifications"},{"title":"VFS Notifications","icon":"table-cells","href":"/home/notifications/support"}]},{"group":"Help","pages":[{"title":"Troubleshooting","icon":"life-ring","href":"/home/troubleshooting"}]}]},{"tab":"Python","icon":"https://mintlify.s3.us-west-1.amazonaws.com/struktoai/images/python-logo.svg","pages":[{"title":"Python","href":"/python/install"}]},{"tab":"TS","icon":"https://mintlify.s3.us-west-1.amazonaws.com/struktoai/images/typescript-logo.svg","pages":[{"title":"TS","href":"/typescript/install"}]},{"tab":"API","icon":"code","pages":[{"title":"API","href":"/api/overview"}]}]},"basePath":"","title":"SSH - Mirage","buildId":"dpl_FWZhTb2vab28gFGFH4ojka6qEznQ","deploymentId":"dpl_FWZhTb2vab28gFGFH4ojka6qEznQ","dynamics":[],"chunks":[]}