Syncs your shares, runs the command in the environment over the tailnet, streams its output, waits for results coming back, and exits with the command’s exit code.
Flag
Default
Description
--timeout N
no limit
Stop the command after N seconds; envctl exits with 124
--no-sync
Don’t sync shares before running
--dir path
the template’s working directory
Run from this folder in the environment
The command isn’t run through a shell: use sh -c '…' for pipes and &&. See Run commands for the details.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"envlink","description":"Build environments on demand for you and your coding agent: lease a Linux build box, a Postgres or a hosted sandbox, sync your folder to it, and get results back as local files.","colors":{"primary":"#0F7A6C","light":"#5CC4B6","dark":"#0F7A6C"},"logo":{"light":"https://mintcdn.com/envlink/U7kOPAl55LRjZQ4e/logo/light.svg?fit=max\u0026auto=format\u0026n=U7kOPAl55LRjZQ4e\u0026q=85\u0026s=c72283d5bf971219ece7a4abb3969c71","dark":"https://mintcdn.com/envlink/U7kOPAl55LRjZQ4e/logo/dark.svg?fit=max\u0026auto=format\u0026n=U7kOPAl55LRjZQ4e\u0026q=85\u0026s=ab484baf14425bd898fec1cd05da254c","href":"/"},"favicon":"https://mintcdn.com/envlink/U7kOPAl55LRjZQ4e/favicon.svg?fit=max\u0026auto=format\u0026n=U7kOPAl55LRjZQ4e\u0026q=85\u0026s=96f153c75742c7a792bd2d1036172004","navbar":{"links":[{"href":"https://envlink.projectinwork.com","label":"Console"},{"href":"https://envlink.projectinwork.com/demo/","label":"Demo"}],"primary":{"type":"button","label":"Install envctl","href":"/install"}},"footer":{"links":[{"header":"envlink","items":[{"label":"Console","href":"https://envlink.projectinwork.com"},{"label":"Install","href":"https://envlink.projectinwork.com/install"},{"label":"Live demo","href":"https://envlink.projectinwork.com/demo"}]}]},"fonts":{"family":"IBM Plex Sans"},"contextual":{"options":["copy","view","claude","chatgpt"],"display":"header"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"envlink","hasAudioNarration":false,"actualSubdomain":"envlink","customDomains":[],"gitSource":{"type":"github","owner":"devibuilds","repo":"envlink","deployBranch":"main","contentDirectory":"docs-site","isPrivate":true,"mountPath":"","label":""},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ad4727bfced9b2b07ebaec2","clientVersion":"0.0.3880","searchFilterCounts":[]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-branches-v2-autocommit","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-branches-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"teamspace","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"client-snapshot-docs-config","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":true},"customCss":[],"page":{"pagePath":"cli/exec","slug":"/cli/exec","pageMetadata":{"title":"exec","description":"Run a command in an environment.","href":"/cli/exec"},"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 a command in an environment.\"\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`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,..._provideComponents(),...props.components},{CodeBlock,Table}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Table)_missingMdxReference(`Table`,true);return _jsxs(_Fragment,{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:`envctl`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` exec`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` [--timeout `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`N]`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` [--no-sync] [--dir path] `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`\u003c`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`environment`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` -- `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`\u003c`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`command`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` [args...]`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`Syncs your shares, runs the command in the environment over the tailnet, streams its output, waits for results coming back, and exits with the command’s exit code.`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Flag`}),_jsx(_components.th,{children:`Default`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`--timeout N`})}),_jsx(_components.td,{children:`no limit`}),_jsx(_components.td,{children:`Stop the command after N seconds; envctl exits with 124`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`--no-sync`})}),_jsx(_components.td,{}),_jsx(_components.td,{children:`Don’t sync shares before running`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`--dir path`})}),_jsx(_components.td,{children:`the template’s working directory`}),_jsx(_components.td,{children:`Run from this folder in the environment`})]})]})]}),`\n`,_jsxs(_components.p,{children:[`The command isn’t run through a shell: use `,_jsx(_components.code,{children:`sh -c '…'`}),` for pipes and `,_jsx(_components.code,{children:`\u0026\u0026`}),`. See `,_jsx(_components.a,{href:`/guides/exec`,children:`Run commands`}),` for the details.`]})]})}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":"exec","description":"Run a command in an environment.","href":"/cli/exec"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"subdomain":"envlink","siteName":"envlink","title":"exec - envlink","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-18T07:17:31.436Z","originalFileLocation":"cli/exec.mdx"},"headHtml":"\u003cmeta data-mint-head name=\"description\" content=\"Run a command in an environment.\">\u003cmeta data-mint-head name=\"application-name\" content=\"envlink\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/envlink/lXcnVOmYbM3jf15G/_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/envlink/lXcnVOmYbM3jf15G/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/envlink/lXcnVOmYbM3jf15G/_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/envlink/lXcnVOmYbM3jf15G/_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/envlink/lXcnVOmYbM3jf15G/_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/envlink/lXcnVOmYbM3jf15G/_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/envlink/lXcnVOmYbM3jf15G/_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/envlink/lXcnVOmYbM3jf15G/_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/envlink/lXcnVOmYbM3jf15G/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"exec - envlink\">\u003cmeta data-mint-head property=\"og:description\" content=\"Run a command in an environment.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"envlink\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://envlink.mintlify.app/cli/exec\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"exec - envlink\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Run a command in an environment.\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/envlink/lXcnVOmYbM3jf15G/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"envlink\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0F7A6C\">\u003clink data-mint-head rel=\"canonical\" href=\"https://envlink.mintlify.app/cli/exec\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/cli/exec.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://envlink.mintlify.app/#organization\",\"name\":\"envlink\",\"url\":\"https://envlink.mintlify.app\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/envlink/U7kOPAl55LRjZQ4e/logo/light.svg?fit=max\u0026auto=format\u0026n=U7kOPAl55LRjZQ4e\u0026q=85\u0026s=c72283d5bf971219ece7a4abb3969c71\"}},{\"@type\":\"WebSite\",\"@id\":\"https://envlink.mintlify.app#website\",\"name\":\"envlink\",\"url\":\"https://envlink.mintlify.app\",\"publisher\":{\"@id\":\"https://envlink.mintlify.app/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://envlink.mintlify.app/cli/exec#webpage\",\"url\":\"https://envlink.mintlify.app/cli/exec\",\"name\":\"exec\",\"description\":\"Run a command in an environment.\",\"dateModified\":\"2026-10-18T07:17:31.436Z\",\"isPartOf\":{\"@id\":\"https://envlink.mintlify.app#website\"},\"breadcrumb\":{\"@id\":\"https://envlink.mintlify.app/cli/exec#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://envlink.mintlify.app/cli/exec#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"envctl\",\"item\":\"https://envlink.mintlify.app/cli/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"exec\",\"item\":\"https://envlink.mintlify.app/cli/exec\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://envlink.mintlify.app/cli/exec#article\",\"headline\":\"exec\",\"name\":\"exec\",\"description\":\"Run a command in an environment.\",\"url\":\"https://envlink.mintlify.app/cli/exec\",\"mainEntityOfPage\":{\"@id\":\"https://envlink.mintlify.app/cli/exec#webpage\"},\"dateModified\":\"2026-10-18T07:17:31.436Z\",\"publisher\":{\"@id\":\"https://envlink.mintlify.app/#organization\"},\"isPartOf\":{\"@id\":\"https://envlink.mintlify.app#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"envlink\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"envlink","nav":{"global":null,"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":""}]},{"tab":"CLI reference","groups":[{"group":"envctl","pages":[{"title":"Overview","href":"/cli/overview"},{"title":"login, templates, version","href":"/cli/login"},{"title":"sandbox","href":"/cli/sandbox"},{"title":"env","description":"Create, list and delete environments.","href":"/cli/env"},{"title":"exec","href":"/cli/exec"},{"title":"sync, status, logs","description":"Sync shares now, show what the local envd knows, and read its connection and sync log.","href":"/cli/sync"},{"title":"snapshots","href":"/cli/snapshots"},{"title":"artifact","href":"/cli/artifact"},{"title":"project","href":"/cli/project"},{"title":"skills","href":"/cli/skills"}]}]},{"tab":"API reference","pages":[{"title":"API reference","href":"/api-reference/introduction"}]}]},"title":"exec - envlink","buildId":"dpl_8yzRtH9eErzJnpfBBed2uBNYhAmY","deploymentId":"dpl_8yzRtH9eErzJnpfBBed2uBNYhAmY","dynamics":[],"chunks":[]}