Pair a workstation, select an approved workspace, inspect its status and run the connector as a background service.
The terminal connector makes an approved directory on your computer available to the Assistant. The CLI process must remain online. The connection, workspace approval, command policy, network permission and browser authentication are separate controls; start with Connect a terminal.
The first connection is pending until the owner approves it in Settings → Vault → Terminals. Reconnecting the same terminal preserves its registration; a different directory needs its own approved workspace.
revo terminal statusrevo terminal status --project asterion-test
An existing registration does not prove that its runner is online or its workspace is approved. Inspect all three before asking the Assistant to execute a command.
Option
Applies to
Meaning
--workspace <path>
Connect, disconnect, background service
Root directory for the approved workspace
--name <name>
Connect or select a registration
Human-readable terminal name
--terminal-id <uuid>
Select an existing registration
Use instead of --name, never both
--project <name>
Terminal commands
Use a saved CLI connection
--realtime-url <url>
Connect
Override the connection address only when required by the instance setup
--url, --token, --instance
Ordinary terminal commands
Explicit API overrides; not supported by service install/uninstall
Terminal commands do not accept a child shell command after --. Connect the runner, then execute through an authorized Revo conversation.
After approving the connection and verifying it interactively:
revo terminal service install --workspace "$HOME/projects/asterion-demo" \ --name "Asterion Demo Workstation"revo terminal status
Background services are supported on macOS and Linux. They use saved connection configuration; do not place credentials in service command arguments. Installing a service does not approve its workspace or grant additional access.To remove the background service:
revo terminal service uninstall --workspace "$HOME/projects/asterion-demo"
Stopping a process and revoking access are different actions. Inspect Vault after revocation and confirm the expected connection state before reusing a workspace.
Manage website sessions in Settings → Vault → Browser Profiles, then assign the appropriate profile to an approved terminal workspace. A CLI API key authenticates to Revo; it does not sign the browser into a supplier website.The legacy cleanup command removes a selected local browser profile:
The old browser-profile connection flow is retired. Use the Browser Profiles guide for current assignment, clearing website state and access boundaries.
Use a terminal to run a repository test suite, inspect a generated CSV, validate a contract price, or operate a browser on an approved site. Keep each task inside the intended workspace and grant only the command/network access it needs.Terminal execution and logs shows what appears in the conversation, how truncation differs from process failure, what the local operational log records, and how to distinguish a completed command from a confirmed business result.
Last modified on November 8, 2026
⌘I
{"docsConfig":{"theme":"luma","$schema":"https://mintlify.com/docs.json","name":"RevoEngine","description":"Build, automate, and operate production software with RevoEngine.","colors":{"primary":"#202124","light":"#F5F5F5","dark":"#6B6B6B"},"logo":{"light":"https://mintcdn.com/revoengine/kML8CcZSPEra9eLq/logo/logo-light.png?fit=max\u0026auto=format\u0026n=kML8CcZSPEra9eLq\u0026q=85\u0026s=373c9adb2e49fc5404a3193b2b612b82","dark":"https://mintcdn.com/revoengine/kML8CcZSPEra9eLq/logo/logo-dark.png?fit=max\u0026auto=format\u0026n=kML8CcZSPEra9eLq\u0026q=85\u0026s=005fc62385c782830d7578effd226413"},"favicon":"https://mintcdn.com/revoengine/gP_luhFNh7-RQAtb/favicon.svg?fit=max\u0026auto=format\u0026n=gP_luhFNh7-RQAtb\u0026q=85\u0026s=d768f127bd12556658633c8589c8253d","api":{"openapi":"api-reference/openapi.json","params":{"expanded":"closed"},"playground":{"display":"interactive","proxy":true,"credentials":false},"examples":{"defaults":"required","languages":["curl","javascript","python"],"autogenerate":true}},"navbar":{"links":[{"href":"https://revoengine.statuspage.io/","label":"Status"}],"primary":{"type":"button","label":"Open RevoEngine","href":"https://app.revoengine.com"}},"footer":{"links":[{"header":"Legal and support","items":[{"label":"Policies and terms","href":"/resources/introduction"},{"label":"Privacy and cookies","href":"/resources/privacy-policy-and-cookies"},{"label":"Support policy","href":"/resources/support-policy"}]}]},"search":{"prompt":"Search RevoEngine concepts, guides, SDK examples, and API operations"},"seo":{"metatags":{},"indexing":"navigable"},"contextual":{"options":["copy","view"],"display":"toc"},"metadata":{"timestamp":true},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"revoengine","hasAudioNarration":false,"actualSubdomain":"revoengine","customDomains":["docs.revoengine.com"],"gitSource":{"type":"github","owner":"revoengine","repo":"public-docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"entitlements":{},"buildId":"6af0919e2f2e026614e775ff","clientVersion":"0.0.4087","searchFilterCounts":[{"language":"default","tag":"Reference","count":804},{"language":"default","tag":"Platform API","count":577},{"language":"default","tag":"Low-code method reference","count":223},{"language":"default","tag":"Guides","count":178},{"language":"default","tag":"api","count":76},{"language":"default","tag":"Build and integrate","count":75},{"language":"default","tag":"Automation","count":74},{"language":"default","tag":"Changelog","count":63},{"language":"default","tag":"Operate","count":60},{"language":"default","tag":"Agents","count":58}]},"assistantConfig":{},"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":"developers/cli-terminal","slug":"/developers/cli-terminal","pageMetadata":{"title":"Terminal command reference","description":"Pair a workstation, select an approved workspace, inspect its status and run the connector as a background service.","icon":"terminal","href":"/developers/cli-terminal"},"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: \"Pair a workstation, select an approved workspace, inspect its status and run the connector as a background service.\"\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];const ReadingFlow=({label,steps})=>_jsxs(`figure`,{className:`revo-reading-flow not-prose`,\"aria-label\":label,\"data-layout\":steps.some(step=>step[2])?`vertical`:`horizontal`,children:[_jsx(`style`,{children:`\n .revo-reading-flow {\n margin: 1.5rem 0;\n --rf-border: #cbd5e1;\n --rf-surface: #f8fafc;\n --rf-ink: #0f172a;\n --rf-muted: #475569;\n --rf-accent: #0f766e;\n }\n .dark .revo-reading-flow {\n --rf-border: #475569;\n --rf-surface: #1e293b;\n --rf-ink: #f1f5f9;\n --rf-muted: #cbd5e1;\n --rf-accent: #99f6e4;\n }\n .revo-reading-flow ol {\n display: grid;\n grid-auto-flow: column;\n grid-auto-columns: minmax(0, 1fr);\n gap: 18px;\n margin: 0;\n padding: 0;\n list-style: none;\n }\n .revo-reading-flow li {\n position: relative;\n min-width: 0;\n padding: .75rem;\n border: 1px solid var(--rf-border);\n border-radius: 10px;\n background: var(--rf-surface);\n color: var(--rf-ink);\n overflow-wrap: anywhere;\n }\n .revo-reading-flow li:not(:last-child):after {\n position: absolute;\n inset-inline-end: -15px;\n top: calc(50% - 4px);\n width: 8px;\n height: 8px;\n border-right: 2px solid var(--rf-accent);\n border-top: 2px solid var(--rf-accent);\n transform: rotate(45deg);\n content: '';\n }\n .revo-reading-flow strong {\n display: block;\n font-size: .9rem;\n line-height: 1.4;\n }\n .revo-reading-flow li span {\n display: block;\n margin-top: .35rem;\n color: var(--rf-muted);\n font-size: .875rem;\n line-height: 1.45;\n }\n .revo-reading-flow .rf-branch {\n border-inline-start: 2px solid var(--rf-border);\n padding-inline-start: .6rem;\n font-weight: 550;\n }\n .revo-reading-flow[data-layout=\"vertical\"] ol { grid-auto-flow: row; grid-auto-columns: auto; gap: 14px; }\n .revo-reading-flow[data-layout=\"vertical\"] li:not(:last-child):after {\n top: auto;\n bottom: -10px;\n inset-inline-end: calc(50% - 4px);\n transform: rotate(135deg);\n }\n @media (max-width: 640px) {\n .revo-reading-flow ol { grid-auto-flow: row; grid-auto-columns: auto; gap: 14px; }\n .revo-reading-flow li:not(:last-child):after {\n top: auto;\n bottom: -10px;\n inset-inline-end: calc(50% - 4px);\n transform: rotate(135deg);\n }\n }\n `}),_jsx(`ol`,{role:`list`,children:steps.map(([title,detail,branch])=>_jsxs(`li`,{children:[_jsx(`strong`,{children:title}),_jsx(`span`,{children:detail}),branch\u0026\u0026_jsx(`span`,{className:`rf-branch`,children:branch})]},title))})]});function _createMdxContent(props){const _components={a:`a`,code:`code`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,..._provideComponents(),...props.components},{CodeBlock,Heading,Table,_MdxComponentBoundary}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);if(!_MdxComponentBoundary)_missingMdxReference(`_MdxComponentBoundary`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`The terminal connector makes an approved directory on your computer available to the Assistant. The CLI process must remain online. The connection, workspace approval, command policy, network permission and browser authentication are separate controls; start with `,_jsx(_components.a,{href:`/ai/terminals`,children:`Connect a terminal`}),`.`]}),`\n`,_jsx(_MdxComponentBoundary,{name:`ReadingFlow`,children:_jsx(ReadingFlow,{label:`Connect the CLI to an Assistant`,steps:[[`Start`,`Run the terminal connection in the intended workspace.`],[`Allow`,`Set command and network grants for that workspace.`],[`Observe`,`Check command output and completion in the conversation.`]]})}),`\n`,_jsx(Heading,{level:`2`,id:`connect-and-inspect`,children:`Connect and inspect`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`3`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`3`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`revo`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` auth`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` login`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`revo`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` terminal`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` connect`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --workspace`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$HOME`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`/projects/asterion-demo\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --name`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Asterion Demo Workstation\"`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`The first connection is pending until the owner approves it in `,_jsx(_components.strong,{children:`Settings → Vault → Terminals`}),`. Reconnecting the same terminal preserves its registration; a different directory needs its own approved workspace.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`2`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`revo`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` terminal`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` status`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`revo`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` terminal`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` status`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --project`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` asterion-test`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`An existing registration does not prove that its runner is online or its workspace is approved. Inspect all three before asking the Assistant to execute a command.`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Option`}),_jsx(_components.th,{children:`Applies to`}),_jsx(_components.th,{children:`Meaning`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`--workspace \u003cpath>`})}),_jsx(_components.td,{children:`Connect, disconnect, background service`}),_jsx(_components.td,{children:`Root directory for the approved workspace`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`--name \u003cname>`})}),_jsx(_components.td,{children:`Connect or select a registration`}),_jsx(_components.td,{children:`Human-readable terminal name`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`--terminal-id \u003cuuid>`})}),_jsx(_components.td,{children:`Select an existing registration`}),_jsxs(_components.td,{children:[`Use instead of `,_jsx(_components.code,{children:`--name`}),`, never both`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`--project \u003cname>`})}),_jsx(_components.td,{children:`Terminal commands`}),_jsx(_components.td,{children:`Use a saved CLI connection`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`--realtime-url \u003curl>`})}),_jsx(_components.td,{children:`Connect`}),_jsx(_components.td,{children:`Override the connection address only when required by the instance setup`})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.code,{children:`--url`}),`, `,_jsx(_components.code,{children:`--token`}),`, `,_jsx(_components.code,{children:`--instance`})]}),_jsx(_components.td,{children:`Ordinary terminal commands`}),_jsx(_components.td,{children:`Explicit API overrides; not supported by service install/uninstall`})]})]})]}),`\n`,_jsxs(_components.p,{children:[`Terminal commands do not accept a child shell command after `,_jsx(_components.code,{children:`--`}),`. Connect the runner, then execute through an authorized Revo conversation.`]}),`\n`,_jsx(Heading,{level:`2`,id:`run-in-the-background`,children:`Run in the background`}),`\n`,_jsx(_components.p,{children:`After approving the connection and verifying it interactively:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`3`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`3`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`revo`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` terminal`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` service`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` install`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --workspace`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$HOME`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`/projects/asterion-demo\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --name`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Asterion Demo Workstation\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`revo`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` terminal`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` status`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`Background services are supported on macOS and Linux. They use saved connection configuration; do not place credentials in service command arguments. Installing a service does not approve its workspace or grant additional access.`}),`\n`,_jsx(_components.p,{children:`To remove the background service:`}),`\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:`revo`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` terminal`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` service`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` uninstall`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --workspace`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$HOME`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`/projects/asterion-demo\"`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`To revoke the selected local terminal grant:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`2`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`revo`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` terminal`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` disconnect`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --workspace`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$HOME`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`/projects/asterion-demo\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --name`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Asterion Demo Workstation\"`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`Stopping a process and revoking access are different actions. Inspect Vault after revocation and confirm the expected connection state before reusing a workspace.`}),`\n`,_jsx(Heading,{level:`2`,id:`browser-authentication`,children:`Browser authentication`}),`\n`,_jsxs(_components.p,{children:[`Manage website sessions in `,_jsx(_components.strong,{children:`Settings → Vault → Browser Profiles`}),`, then assign the appropriate profile to an approved terminal workspace. A CLI API key authenticates to Revo; it does not sign the browser into a supplier website.`]}),`\n`,_jsx(_components.p,{children:`The legacy cleanup command removes a selected local browser profile:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`2`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`revo`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` terminal`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` browser-profile`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` forget`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --browser-profile`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` supplier-portal`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --terminal-id`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$TERMINAL_ID`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --workspace`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$HOME`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`/projects/asterion-demo\"`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`The old browser-profile connection flow is retired. Use the `,_jsx(_components.a,{href:`/ai/browser-profiles`,children:`Browser Profiles guide`}),` for current assignment, clearing website state and access boundaries.`]}),`\n`,_jsx(Heading,{level:`2`,id:`practical-uses-and-evidence`,children:`Practical uses and evidence`}),`\n`,_jsx(_components.p,{children:`Use a terminal to run a repository test suite, inspect a generated CSV, validate a contract price, or operate a browser on an approved site. Keep each task inside the intended workspace and grant only the command/network access it needs.`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.a,{href:`/ai/terminal-execution-and-logs`,children:`Terminal execution and logs`}),` shows what appears in the conversation, how truncation differs from process failure, what the local operational log records, and how to distinguish a completed command from a confirmed business result.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{ReadingFlow,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":"Terminal command reference","description":"Pair a workstation, select an approved workspace, inspect its status and run the connector as a background service.","icon":"terminal","href":"/developers/cli-terminal"}}},"mdxSourceWithNoJs":null,"noJsSplices":[[147,2945,")=>null;function _cr"]]},"mdxExtracts":{"tableOfContents":[{"title":"Connect and inspect","slug":"connect-and-inspect","depth":2,"children":[]},{"title":"Run in the background","slug":"run-in-the-background","depth":2,"children":[]},{"title":"Browser authentication","slug":"browser-authentication","depth":2,"children":[]},{"title":"Practical uses and evidence","slug":"practical-uses-and-evidence","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"revoengine","siteName":"RevoEngine","title":"Terminal command reference - RevoEngine","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-08T15:14:14.183Z","gitLastModified":"2026-11-08T15:13:31.000Z","originalFileLocation":"developers/cli-terminal.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=\"Pair a workstation, select an approved workspace, inspect its status and run the connector as a background service.\">\u003cmeta data-mint-head name=\"application-name\" content=\"RevoEngine\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/revoengine/s4Tw1v44Xc7EV0Rr/_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/revoengine/s4Tw1v44Xc7EV0Rr/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/revoengine/s4Tw1v44Xc7EV0Rr/_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/revoengine/s4Tw1v44Xc7EV0Rr/_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/revoengine/s4Tw1v44Xc7EV0Rr/_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/revoengine/s4Tw1v44Xc7EV0Rr/_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/revoengine/s4Tw1v44Xc7EV0Rr/_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/revoengine/s4Tw1v44Xc7EV0Rr/_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/revoengine/s4Tw1v44Xc7EV0Rr/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Terminal command reference - RevoEngine\">\u003cmeta data-mint-head property=\"og:description\" content=\"Pair a workstation, select an approved workspace, inspect its status and run the connector as a background service.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"RevoEngine\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.revoengine.com/developers/cli-terminal\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://revoengine.mintlify.site/_mintlify/api/og/v2?division=CLI+and+VS+Code\u0026amp;title=Terminal+command+reference\u0026amp;description=Pair+a+workstation%2C+select+an+approved+workspace%2C+inspect+its+status+and+run+the+connector+as+a+background+service.\u0026amp;theme=dc9432172716906c8e3e0c1b\u0026amp;signature=98e438152afaf51c36589b48d18ce3b27e7cc9c1e877184e5f0d71300e961d03\">\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=\"Terminal command reference - RevoEngine\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Pair a workstation, select an approved workspace, inspect its status and run the connector as a background service.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://revoengine.mintlify.site/_mintlify/api/og/v2?division=CLI+and+VS+Code\u0026amp;title=Terminal+command+reference\u0026amp;description=Pair+a+workstation%2C+select+an+approved+workspace%2C+inspect+its+status+and+run+the+connector+as+a+background+service.\u0026amp;theme=dc9432172716906c8e3e0c1b\u0026amp;signature=98e438152afaf51c36589b48d18ce3b27e7cc9c1e877184e5f0d71300e961d03\">\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/revoengine/s4Tw1v44Xc7EV0Rr/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"RevoEngine\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#202124\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.revoengine.com/developers/cli-terminal\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/developers/cli-terminal.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.revoengine.com/#organization\",\"name\":\"RevoEngine\",\"url\":\"https://docs.revoengine.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/revoengine/kML8CcZSPEra9eLq/logo/logo-light.png?fit=max\u0026auto=format\u0026n=kML8CcZSPEra9eLq\u0026q=85\u0026s=373c9adb2e49fc5404a3193b2b612b82\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.revoengine.com#website\",\"name\":\"RevoEngine\",\"url\":\"https://docs.revoengine.com\",\"publisher\":{\"@id\":\"https://docs.revoengine.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.revoengine.com/developers/cli-terminal#webpage\",\"url\":\"https://docs.revoengine.com/developers/cli-terminal\",\"name\":\"Terminal command reference\",\"description\":\"Pair a workstation, select an approved workspace, inspect its status and run the connector as a background service.\",\"dateModified\":\"2026-11-08T15:13:31.000Z\",\"isPartOf\":{\"@id\":\"https://docs.revoengine.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.revoengine.com/developers/cli-terminal#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.revoengine.com/developers/cli-terminal#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Build and integrate\",\"item\":\"https://docs.revoengine.com/build/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Developer tools\",\"item\":\"https://docs.revoengine.com/developers/overview\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"CLI and VS Code\",\"item\":\"https://docs.revoengine.com/developers/cli\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Terminal command reference\",\"item\":\"https://docs.revoengine.com/developers/cli-terminal\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.revoengine.com/developers/cli-terminal#article\",\"headline\":\"Terminal command reference\",\"name\":\"Terminal command reference\",\"description\":\"Pair a workstation, select an approved workspace, inspect its status and run the connector as a background service.\",\"url\":\"https://docs.revoengine.com/developers/cli-terminal\",\"mainEntityOfPage\":{\"@id\":\"https://docs.revoengine.com/developers/cli-terminal#webpage\"},\"dateModified\":\"2026-11-08T15:13:31.000Z\",\"publisher\":{\"@id\":\"https://docs.revoengine.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.revoengine.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"RevoEngine\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"RevoEngine","nav":{"global":null,"tabs":[{"tab":"Guides","icon":"book-open","groups":[{"group":"Start here","pages":[{"title":"RevoEngine","icon":"sparkles","href":"/introduction"},{"title":"Quickstart","icon":"rocket","href":"/quickstart"},{"title":"Choose your approach","icon":"compass","href":"/platform/product-model"},{"group":"Workspace","pages":[{"title":"Platform UI tour","icon":"display","href":"/platform/ui-tour"},{"title":"Feature directory","icon":"map","href":"/platform/feature-directory"},{"title":"Personal settings","icon":"user-gear","href":"/platform/personal-settings"},{"title":"Account security and devices","icon":"shield-halved","href":"/platform/account-security"},{"title":"Search and discovery","icon":"magnifying-glass","href":"/platform/search"},{"title":"Instance settings","icon":"sliders","href":"/platform/instance-settings"}]},{"group":"Concepts","pages":[{"title":"Platform overview","icon":"layer-group","href":"/platform/overview"},{"title":"Enterprise execution platform","icon":"building-shield","href":"/platform/enterprise-execution"},{"title":"Architecture","icon":"sitemap","href":"/platform/architecture"},{"title":"Environments and versions","icon":"code-branch","href":"/platform/environments-and-versions"},{"title":"Security and governance","icon":"shield-halved","href":"/platform/security-and-governance"},{"title":"Limits and quotas","icon":"gauge-high","href":"/platform/limits-and-quotas"},{"title":"Glossary","icon":"book","href":"/platform/glossary"}]}]},{"group":"Build and integrate","pages":[{"group":"Components and Studio","icon":"code","pages":[{"group":"Components","pages":[{"title":"Build with RevoEngine","icon":"hammer","href":"/build/overview"},{"title":"Components","icon":"puzzle-piece","href":"/build/components"},{"title":"Component configuration","icon":"sliders","href":"/build/component-configuration"},{"title":"Custom Node.js components","icon":"node-js","href":"/build/custom-nodejs"}]},{"group":"Libraries","pages":[{"title":"Libraries","icon":"books","href":"/build/libraries"},{"title":"Build a typed library API","icon":"code","href":"/build/library-authoring"}]},{"group":"Editor and testing","pages":[{"title":"Studio","icon":"code","href":"/build/web-ide"},{"title":"Studio coding sessions","icon":"code-branch","href":"/build/studio-sessions"},{"title":"Save and resume a Studio workspace","icon":"code-branch","href":"/build/studio-session-workspace"},{"title":"Collaborate in a Studio session","icon":"code-branch","href":"/build/studio-session-collaboration"},{"title":"Test and review a Studio candidate","icon":"code-branch","href":"/build/studio-session-review"},{"title":"Commit, activate and continue work","icon":"code-branch","href":"/build/studio-session-release"},{"title":"Debugging components","icon":"bug","href":"/build/debugging"},{"title":"Native tests","icon":"flask-vial","href":"/build/native-tests"}]}]},{"group":"Low-code","icon":"terminal","pages":[{"group":"Low-code basics","pages":[{"title":"Low-code overview","icon":"wand-magic-sparkles","href":"/low-code/overview"},{"title":"Runtime API","icon":"brackets-curly","href":"/low-code/runtime-api"}]},{"group":"HTTP calls","pages":[{"title":"HTTP integrations","icon":"globe","href":"/low-code/http"},{"title":"Call a JSON API","icon":"book-open","href":"/low-code/http-json"},{"title":"Send multipart form data","icon":"book-open","href":"/low-code/http-multipart"},{"title":"Read HTTP streams","icon":"book-open","href":"/low-code/http-streams"},{"title":"Stream HTTP to Storage","icon":"book-open","href":"/low-code/http-storage"},{"title":"Receive callbacks","icon":"book-open","href":"/low-code/http-callbacks"}]},{"group":"Data and validation","pages":[{"title":"Database API","icon":"database","href":"/low-code/database"},{"title":"SFTP integrations","icon":"folder-arrow-down","href":"/low-code/sftp"},{"title":"JSON Validator","icon":"shield-check","href":"/low-code/json-validator"}]}]},{"group":"HTTP endpoints","icon":"route","pages":[{"title":"Endpoints","icon":"route","href":"/operate/endpoints"},{"title":"HTTP responses","icon":"arrow-right-arrow-left","href":"/operate/endpoint-http"},{"title":"Endpoint configuration reference","icon":"sliders","href":"/operate/endpoint-configuration"},{"title":"SSE streams","icon":"tower-broadcast","href":"/operate/endpoint-sse"}]},{"group":"Custom widgets","icon":"table-cells","pages":[{"title":"Custom widgets","icon":"table-cells","href":"/widgets/overview"},{"title":"Build your first widget","sidebarTitle":"First widget","icon":"play","href":"/widgets/quickstart"},{"title":"Rows, cells and matrix","sidebarTitle":"Rows and matrix","icon":"table-cells","href":"/widgets/matrix"},{"title":"Configure a Custom Widget","sidebarTitle":"Source configuration","icon":"book-open","href":"/widgets/source-configuration"},{"group":"Elements","pages":[{"title":"Cell types","icon":"list","href":"/widgets/elements"},{"title":"Text, buttons and empty cells","sidebarTitle":"Text and buttons","icon":"font","href":"/widgets/text-and-buttons"},{"title":"Inputs","icon":"sliders","href":"/widgets/inputs"},{"title":"Forms and fields","icon":"rectangle-list","href":"/widgets/forms"},{"title":"Tables, columns and selection","sidebarTitle":"Tables and selection","icon":"table","href":"/widgets/tables"},{"title":"Charts and data","icon":"chart-column","href":"/widgets/charts"}]},{"group":"Interactions","pages":[{"title":"Reactive widgets","icon":"sliders","href":"/operate/reactive-widgets"},{"title":"The $widget context","sidebarTitle":"$widget context","icon":"brackets-curly","href":"/widgets/context"},{"title":"Input state and lifecycle","sidebarTitle":"State and lifecycle","icon":"book-open","href":"/widgets/state"},{"title":"Bindings and paths","icon":"link","href":"/widgets/bindings"},{"title":"Events: the on map","sidebarTitle":"on events","icon":"bolt","href":"/widgets/events"},{"title":"Action reference","icon":"bolt","href":"/widgets/actions"},{"title":"Partial refresh and ordered commands","sidebarTitle":"Partial refresh","icon":"arrows-rotate","href":"/widgets/refresh"},{"title":"Execute and confirm completion","sidebarTitle":"Execute and wait","icon":"play","href":"/widgets/execute"},{"title":"Open a detail view","icon":"book-open","href":"/widgets/navigation"},{"title":"Header controls and timers","sidebarTitle":"Headers and timers","icon":"book-open","href":"/widgets/header-and-timers"}]},{"group":"Troubleshooting","pages":[{"title":"Limits and troubleshooting","icon":"triangle-exclamation","href":"/widgets/limits"}]}]},{"group":"Developer tools","icon":"terminal","pages":[{"group":"Integration basics","pages":[{"title":"Developer overview","icon":"code","href":"/developers/overview"},{"title":"Authentication","icon":"key","href":"/developers/authentication"},{"title":"Errors and retries","icon":"circle-exclamation","href":"/developers/errors"}]},{"group":"HTTP interfaces","pages":[{"title":"Platform API","icon":"server","href":"/developers/platform-api"},{"title":"Endpoint runtime","icon":"route","href":"/developers/endpoint-runtime"},{"title":"Sandbox API","icon":"flask","href":"/developers/sandbox-api"}]},{"group":"MCP","pages":[{"title":"MCP overview","icon":"plug","href":"/developers/mcp-overview"},{"title":"Connect an MCP client","icon":"link","href":"/developers/mcp-connect"},{"title":"Protocol and sessions","icon":"arrows-rotate","href":"/developers/mcp-sessions"},{"title":"Tools and safety","icon":"screwdriver-wrench","href":"/developers/mcp-tools"},{"title":"Resources, skills, and prompts","icon":"book-open","href":"/developers/mcp-resources-and-prompts"},{"title":"MCP server plugins","icon":"plug-circle-plus","href":"/developers/mcp-plugins"},{"title":"MCP troubleshooting","icon":"stethoscope","href":"/developers/mcp-troubleshooting"}]},{"group":"Node.js SDK","pages":[{"title":"Node.js SDK overview","icon":"node-js","href":"/developers/sdk-overview"},{"title":"Hosted Node.js SDK","icon":"cloud","href":"/developers/sdk-hosted"},{"title":"Standalone Node.js SDK","icon":"server","href":"/developers/sdk-standalone"},{"title":"SDK storage and batching","icon":"boxes-stacked","href":"/developers/sdk-storage-and-batching"},{"title":"Upgrade to RevoEngine 1.8","icon":"arrow-up-right-dots","href":"/developers/upgrading-to-1-8"}]},{"group":"CLI and VS Code","pages":[{"title":"RevoEngine CLI","icon":"terminal","href":"/developers/cli"},{"title":"CLI projects","icon":"folder-tree","href":"/developers/cli-projects"},{"title":"CLI environments","icon":"arrow-right-arrow-left","href":"/developers/cli-environments"},{"title":"CLI tests and debugging","icon":"flask","href":"/developers/cli-tests-and-debugging"},{"title":"Studio from the CLI","description":"Inspect saved sessions, stage source, run tests, and carry an exact candidate through review and activation.","icon":"code-branch","href":"/developers/cli-studio"},{"title":"Terminal command reference","icon":"terminal","href":"/developers/cli-terminal"},{"title":"VS Code extension","description":"Develop RevoEngine low-code components locally with workspace views, Git-aware sync planning, debugging, and runtime-aware TypeScript support.","icon":"square-terminal","href":"/developers/vscode-extension"}]}]}]},{"group":"Operate","pages":[{"group":"Data and Storage","icon":"database","pages":[{"group":"Data","pages":[{"title":"Databases","icon":"database","href":"/operate/databases"},{"title":"Database Tables","icon":"table","href":"/operate/database-definitions"},{"title":"Database Audit","icon":"clock-rotate-left","href":"/operate/database-audit"},{"title":"Database Views","icon":"binoculars","href":"/operate/database-views"},{"title":"Materialized Views","icon":"layer-group","href":"/operate/materialized-views"},{"title":"Database Cache","icon":"bolt","href":"/operate/database-cache"},{"group":"Read and write","pages":[{"title":"Query records","icon":"book-open","href":"/operate/database-queries"},{"title":"Write and import records","icon":"book-open","href":"/operate/database-mutations"},{"title":"Export data to Storage","icon":"file-export","href":"/operate/database-exports"}]}]},{"group":"Storage","pages":[{"title":"Storage","icon":"hard-drive","href":"/operate/storage"},{"title":"Storage upload sessions","icon":"cloud-arrow-up","href":"/operate/storage-uploads"},{"group":"Structured files","pages":[{"title":"Structured files in Storage","icon":"table","href":"/operate/storage-structured-files"},{"title":"Structured file schema","icon":"book-open","href":"/operate/storage-file-schema"},{"title":"CSV and TSV dialects","icon":"book-open","href":"/operate/storage-csv"},{"title":"Write and read typed rows","icon":"book-open","href":"/operate/storage-typed-rows"}]}]}]},{"group":"Jobs, schedules and events","icon":"bolt","pages":[{"group":"Jobs and delivery","pages":[{"title":"Automation","icon":"gears","href":"/operate/automation"},{"title":"Jobs and durable execution","icon":"briefcase","href":"/operate/jobs"},{"title":"Job failure notifications","icon":"book-open","href":"/operate/job-notifications"},{"title":"Outbound webhooks","icon":"webhook","href":"/operate/webhooks"},{"title":"Event History","icon":"clock-rotate-left","href":"/operate/event-history"}]},{"group":"Schedules","pages":[{"title":"Schedules","icon":"calendar-clock","href":"/operate/schedules"},{"title":"Schedule configuration","icon":"book-open","href":"/operate/schedule-configuration"},{"title":"Configure Schedule input","icon":"book-open","href":"/operate/schedule-inputs"},{"title":"Schedule targets","icon":"book-open","href":"/operate/schedule-targets"}]},{"group":"Events","pages":[{"title":"Events","icon":"bolt","href":"/operate/events"},{"title":"Configure Event input","icon":"book-open","href":"/operate/event-inputs"},{"title":"Filter Event messages","icon":"book-open","href":"/operate/event-filters"},{"title":"Publish a custom Event","icon":"book-open","href":"/operate/event-publishing"},{"title":"Native Event types","icon":"book-open","href":"/operate/event-types"}]}]},{"group":"Dashboards","icon":"chart-line","pages":[{"title":"Dashboards","icon":"chart-line","href":"/operate/dashboards"},{"title":"Built-in widget library","icon":"book-open","href":"/widgets/dashboard-library"}]},{"group":"Observability and collaboration","icon":"chart-simple","pages":[{"group":"Observability","pages":[{"title":"Observability","icon":"chart-line","href":"/operate/observability"},{"title":"Search instance logs","icon":"magnifying-glass","href":"/operate/logs"},{"title":"Traces and correlation","icon":"timeline","href":"/operate/traces"}]},{"group":"Collaboration","pages":[{"title":"Team chat and system inbox","icon":"comments","href":"/operate/chat"},{"title":"Realtime","icon":"bolt","href":"/operate/realtime"}]}]},{"group":"Identity and security","icon":"shield","pages":[{"title":"Identity and access","icon":"users-gear","href":"/operate/identity-and-access"},{"title":"SSO and OIDC","icon":"key","href":"/operate/sso-and-oidc"},{"title":"Users","icon":"user","href":"/operate/users"},{"title":"Service Accounts","icon":"server","href":"/operate/service-accounts"},{"title":"Groups","icon":"users","href":"/operate/groups"},{"title":"Permissions","icon":"shield-keyhole","href":"/operate/permissions"},{"title":"Secrets","icon":"vault","href":"/operate/secrets"},{"title":"Vault and connected accounts","icon":"vault","href":"/operate/vault"}]},{"group":"Production workflows","icon":"diagram-project","pages":[{"title":"Process an uploaded file","icon":"file-circle-check","href":"/platform/file-processing-workflow"},{"title":"Connect an external system","icon":"arrows-rotate","href":"/platform/external-integration-workflow"},{"title":"Put an Agent into production","icon":"robot","href":"/platform/agent-production-workflow"},{"title":"Investigate a production failure","icon":"magnifying-glass-chart","href":"/platform/incident-investigation-workflow"}]},{"group":"Patterns","icon":"layer-group","pages":[{"title":"Patterns","icon":"shapes","href":"/low-code/patterns"},{"group":"Flow control","pages":[{"title":"Job concurrency","icon":"layer-group","href":"/patterns/job-concurrency"},{"title":"Design coordination keys","sidebarTitle":"Coordination keys","icon":"key","href":"/patterns/coordination-keys"},{"title":"Limit a low-code operation","sidebarTitle":"Low-code concurrency","icon":"layer-group","href":"/patterns/low-code-concurrency"}]},{"group":"Reliable effects","pages":[{"title":"Idempotency and duplicate effects","sidebarTitle":"Idempotency","icon":"shield-check","href":"/patterns/idempotency"},{"title":"Delivery, dispatch and exactly-once effects","icon":"arrows-split-up-and-left","href":"/patterns/delivery-guarantees"},{"title":"Metadata and correlation","icon":"tags","href":"/patterns/metadata-and-correlation"},{"title":"Event to Job to Webhook","icon":"diagram-project","href":"/patterns/event-to-webhook"},{"title":"Retries and uncertain outcomes","sidebarTitle":"Retries and uncertainty","icon":"arrows-rotate","href":"/patterns/retry-and-uncertainty"},{"title":"Acceptance and completion","sidebarTitle":"Acceptance and completion","icon":"clock","href":"/patterns/acceptance-and-completion"},{"title":"Local transactions and external work","sidebarTitle":"Transactions","icon":"database","href":"/patterns/transactions"}]},{"group":"Data at scale","pages":[{"title":"Bound reads and show partial results","sidebarTitle":"Bounded data","icon":"filter","href":"/patterns/bounded-data"}]}]}]},{"group":"AI and Agents","pages":[{"title":"RevoEngine Agents","icon":"sparkles","href":"/ai/overview"},{"group":"Agent capabilities","pages":[{"title":"Agent Harness","icon":"microchip-ai","href":"/ai/agent-harness"},{"title":"Tools and skills","icon":"screwdriver-wrench","href":"/ai/tools-and-skills"},{"title":"RevoEngine and coding agents","icon":"scale-balanced","href":"/ai/compare-coding-agents"}]},{"group":"Interactive Agents","pages":[{"title":"Interactive Agents","icon":"messages","href":"/ai/assistant"},{"title":"Agent configuration and personalization","icon":"sliders","href":"/ai/assistant-configuration"},{"title":"Configure instance AI","icon":"book-open","href":"/ai/instance-ai-settings"},{"title":"Call the Assistant from code","icon":"book-open","href":"/ai/assistant-from-code"},{"title":"Charts and tables in Assistant","icon":"book-open","href":"/ai/assistant-visuals"},{"title":"Approvals and plans","icon":"shield-check","href":"/ai/approvals-and-plans"}]},{"group":"Coding and browser","pages":[{"title":"Agentic coding","icon":"code","href":"/ai/agentic-coding"},{"title":"Connect a terminal","icon":"terminal","href":"/ai/terminals"},{"title":"Terminal execution and logs","icon":"terminal","href":"/ai/terminal-execution-and-logs"},{"title":"Work with the browser","icon":"globe","href":"/ai/browser"},{"title":"Browser profiles","icon":"id-card","href":"/ai/browser-profiles"}]},{"group":"Autonomous Agents","pages":[{"title":"Autonomous Agents","icon":"robot","href":"/ai/agents"},{"title":"Agent configuration","icon":"sliders","href":"/ai/agent-configuration"},{"title":"Agent delivery and delegation","icon":"book-open","href":"/ai/agent-delivery-configuration"},{"title":"Operate Agents","icon":"chart-line","href":"/ai/agent-operations"},{"title":"Memory and workspaces","icon":"folder-tree","href":"/ai/memory-and-workspaces"}]},{"title":"Plugins","icon":"plug","href":"/ai/plugins"}]},{"group":"Help","pages":[{"group":"Legal and support","icon":"scale-balanced","pages":[{"title":"Legal and Support Documents","icon":"scale-balanced","href":"/resources/introduction"},{"title":"Platform Terms and Conditions","icon":"file-contract","href":"/resources/platform-terms-and-conditions"},{"title":"Cloud Services and Support Terms and Conditions","icon":"cloud","href":"/resources/cloud-services-and-support-terms-and-conditions"},{"title":"Privacy and Cookie Policy","icon":"user-shield","href":"/resources/privacy-policy-and-cookies"},{"title":"Service Level Agreement (SLA)","icon":"gauge-high","href":"/resources/service-level-agreement-sla"},{"title":"Support Policy","icon":"life-ring","href":"/resources/support-policy"}]}]}]},{"tab":"Examples","icon":"flask","pages":[{"title":"Examples","href":"/examples/overview"}]},{"tab":"Reference","icon":"brackets-curly","pages":[{"title":"Reference","href":"/low-code/reference"}]},{"tab":"Changelog","icon":"clock-rotate-left","pages":[{"title":"Changelog","href":"/releases/changelog"}]}]},"basePath":"","title":"Terminal command reference - RevoEngine","buildId":"dpl_FWZhTb2vab28gFGFH4ojka6qEznQ","deploymentId":"dpl_FWZhTb2vab28gFGFH4ojka6qEznQ","dynamics":[],"chunks":[]}