Save a machine with your repositories cloned and tools installed, so every new session starts ready in about a second.
A setup is a saved machine that new sessions start on. It holds your repositories, already cloned, and whatever your setup script installed, so a session is ready in about a second. To copy one session, transcript included, fork it instead. To add a repository to a single session, use the repos chip on the home screen.
Fill in the form yourself, or ask the agent to save the session you’re in. Either way the setup is yours alone until you share it. Your own setups are limited to 5 per account.
In the Setups manager
Ask the agent
1
Open the Setups manager
Choose Account menu → Setups (the account menu opens from your account badge at the bottom of the sidebar), or click Manage setups → in the home screen’s setup chip. Then click New setup.
2
Name it and add your repositories
Give the setup a name your team will recognise, such as harbor dev. Under Repositories, type owner/repo or paste a github.com URL, add a branch if you don’t want the default, and click Add. Private repositories need GitHub connected.
3
Write the setup script
Put the commands you’d otherwise run at the start of every session in Setup script: installs, builds, migrations, seed data. It runs once, at build time, in /workspace. The first command that fails stops the build.
4
Add a boot script and notes
Both are optional. A Boot script catches each new machine up with your repository, usually with a git pull. Notes for the agent tell it how the project runs. To share the setup, add emails under Shared with.
5
Click Save & build
Alpha opens the build log and streams it live. Save keeps the setup without building it. When the build finishes, a check mark appears under the log: “Ready — pick it on the home screen with the chip.” The setup chip’s icon sits before the word “chip”.
Once a session’s machine works the way you want, ask the agent to save it. It writes the setup script from the commands that actually worked here.Alpha will:
Collect the install, migrate and seed commands this session needed, in dependency order.
Save the setup under your account and build it on a fresh machine, not this one.
Tell you when it’s ready to pick on the home screen, or that it’s still building.
The agent can’t share a setup, and it replaces an existing setup of the same name only when you ask for exactly that.
Field
What it does
Limit
Name
Shown in the setup chip, the manager and session headers
60 characters, unique across your Alpha
Description
One line under the name in the manager
300 characters
Repositories
Cloned into /workspace/<name>, on the branch you give or the default
5, which count toward the 5 per session limit
Setup script
Runs once at build time, as root, with bash -e and no prompts. Your secrets and GITHUB_TOKEN are in its environment.
32 KB
Boot script
Runs on each fresh machine from the setup, before the agent starts. Edits apply without a rebuild.
32 KB; 5 minutes (default) per run
Notes for the agent
Handed to the agent with your messages in every session from the setup. They never appear in the transcript.
4,000 characters
Shared with
Accounts that can see the setup and start sessions from it
20 emails
If you don’t see Shared with, sharing isn’t turned on for your Alpha. It needs everyone to sign in with their own account.
The setup chip sits in the home composer’s bottom row, beside the repos chip. It reads blank machine until you pick a setup. This browser remembers your pick for later sessions.
1
Pick the setup
Click the setup chip and choose a setup. Setups marked building or not built can’t be picked yet. Once you’ve picked one, the repos chip lists the setup’s repositories marked “from the setup”, so you don’t add them twice.
With no setups yet, Blank machine is the only choice.
2
Send your first prompt
While the machine starts, the status line reads “Starting a machine from harbor dev”.
3
Check the header
The session header names the setup beside the title for the life of the session. If the setup is later deleted, the badge reads deleted setup.
Each session starts on its own copy, so nothing you do in one session reaches the setup or other sessions.
A setup’s repositories are frozen at the moment it was built. There are two ways to bring them forward.
Change
How
Who gets it
The latest code, or a quick install
Edit the Boot script. No rebuild needed.
Every machine created after the edit
New dependencies, repositories or setup script
Edit the setup, then Rebuild or Save & rebuild
Sessions started after the rebuild
A rebuild never touches existing sessions; they keep their machines. If a rebuild fails, the previous build stays in use. Resetting a session started from the setup gives it the latest build.The boot script runs on a fresh machine only, never when a sleeping session wakes. Your first message waits for it, so keep it to seconds. If it fails, Alpha notes it in the transcript, continues on the machine as built, and leaves the output in /var/log/forge-boot.log.To stop a build, click Cancel on its row or Cancel build in its log. Deleting a setup asks “Delete the “harbor dev” setup and its snapshot? Sessions started from it keep their machines.”
Add an account’s email under Shared with and click Save. The setup appears in that person’s manager and setup chip, marked “Shared by” and your name. Alpha doesn’t notify them.
Owner
Someone it’s shared with
Anyone else, admins included
Sees it and starts sessions from it
Yes
Yes
No
Reads its build log
Yes
Yes
No
Edits, builds, cancels, deletes or shares it
Yes
No
No
Removing an email takes effect at once. Sessions already started keep their machines, but their next fresh machine starts blank, with the repositories cloned again. Setups shared with you don’t count toward your limit of 5 per account.
Starting from someone else’s setup means trusting them. Its boot script runs as root on your new machines with your GitHub token and secrets in its environment, and its owner can change that script at any time without a rebuild.
A build never touches your sessions. Alpha starts a separate, temporary machine, lends it your credentials, runs your setup, removes the credentials and saves the result.
Kept in the setup
Removed before it’s saved
Your repositories, dependencies and build outputs
Your secrets and GITHUB_TOKEN
A database the setup script started and seeded
Your git name and email
Every file the script wrote, keys included
The agent’s history and sign-ins from the build
Only the environment is cleaned, not files. A token your script writes into .npmrc or .env ships to everyone you share the setup with. Keep keys in secrets and read them from the environment.
Connect an account so setups can clone your private repositories.
Secrets
Store the keys your setup script needs, so they never land in a file.
Sleep, wake and reset
What a reset does to a session that started from a setup.
Fork or delete a session
Copy one session, transcript and all, when a setup is more than you need.
⌘I
{"docsConfig":{"theme":"maple","$schema":"https://mintlify.com/docs.json","name":"Alpha","colors":{"primary":"#1A54F0","light":"#749FF9","dark":"#1A54F0"},"logo":{"light":"https://mintcdn.com/lyzr-15a99e0f/peFm_Sv4KgaR4cun/images/logo/light.png?fit=max\u0026auto=format\u0026n=peFm_Sv4KgaR4cun\u0026q=85\u0026s=633788f52e3e9a8128bdaf2d7a62fff6","dark":"https://mintcdn.com/lyzr-15a99e0f/peFm_Sv4KgaR4cun/images/logo/dark.png?fit=max\u0026auto=format\u0026n=peFm_Sv4KgaR4cun\u0026q=85\u0026s=cca4899a3c056f427f80610ac85d1170","href":"https://alpha.new"},"favicon":"https://mintcdn.com/lyzr-15a99e0f/peFm_Sv4KgaR4cun/images/favicon.png?fit=max\u0026auto=format\u0026n=peFm_Sv4KgaR4cun\u0026q=85\u0026s=606bf8d8b1dd77e7fc7d13b52bd06f85","appearance":{"default":"system","strict":false},"background":{"color":{"light":"#FAFAF9","dark":"#0E0E0D"}},"navbar":{"primary":{"type":"button","label":"Open Alpha","href":"https://alpha.new"}},"footer":{"socials":{"github":"https://github.com/suyash-lyzr/alpha-documentation"}},"search":{"prompt":"Search docs"},"seo":{"metatags":{"og:site_name":"Alpha docs"}},"fonts":{"family":"Geist"},"icons":{"library":"fontawesome"},"styling":{"eyebrows":"section","codeblocks":"system","latex":false},"contextual":{"options":["copy","view","chatgpt","claude"],"display":"header"},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"lyzr-15a99e0f","hasAudioNarration":false,"actualSubdomain":"lyzr-15a99e0f","customDomains":[],"gitSource":{"type":"github","owner":"suyash-lyzr","repo":"alpha-documentation","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":"","_id":"6ae0b4f093d54c7ebe38e84c"},"chroma":{"latestBuiltDeploymentHistoryId":"6ae13e48963c9b68664e663c","collectionId":"6f6abaac-a319-483c-b30d-6356d4f82504","liveDeploymentHistoryId":"6ae13e48963c9b68664e663c","schemaVersion":"v3"},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae13f861208be8074bfe6ae","clientVersion":"0.0.3990","searchFilterCounts":[{"language":"default","tag":"Build","count":22},{"language":"default","tag":"Get started","count":17},{"language":"default","tag":"Reference","count":12},{"language":"default","tag":"Workspace","count":10},{"language":"default","tag":"Ship","count":8},{"language":"default","tag":"Agents","count":7},{"language":"default","tag":"Connect","count":7},{"language":"default","tag":"Chat with the agent","count":6},{"language":"default","tag":"Sessions","count":6},{"language":"default","tag":"Guides","count":5}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","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":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"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":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":true},"customCss":[{"filePath":"style.css","content":"/* cyrillic-ext */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrodmgPn.woff2) format('woff2');\n unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrMdmgPn.woff2) format('woff2');\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* symbols2 */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFg08vz7ehw.woff2) format('woff2');\n unicode-range: U+2000-2001, U+2004-2008, U+200A, U+23B8-23BD, U+2500-259F;\n}\n/* vietnamese */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrgdmgPn.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrkdmgPn.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrcdmg.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* cyrillic-ext */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrodmgPn.woff2) format('woff2');\n unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrMdmgPn.woff2) format('woff2');\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* symbols2 */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFg08vz7ehw.woff2) format('woff2');\n unicode-range: U+2000-2001, U+2004-2008, U+200A, U+23B8-23BD, U+2500-259F;\n}\n/* vietnamese */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrgdmgPn.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrkdmgPn.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrcdmg.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n:root{--a-canvas:#f0f0ef;--a-bg:#fafaf9;--a-card:#ffffff;--a-fill:#f2f2f1;--a-fg:#161614;--a-soft:#3c3c39;--a-muted:#636361;--a-border:rgb(22 22 20 / 9%);--a-signal:#1a54f0;--a-signal-soft:rgb(26 84 240 / 8%);--a-radius:0.7rem;--a-shadow-card:0 0 0 1px var(--a-border), 0 1px 2px rgb(22 22 20 / 4%), 0 2px 6px rgb(22 22 20 / 4%);--a-shadow-raised:0 0 0 1px var(--a-border), 0 2px 10px rgb(22 22 20 / 7%)}.dark{--a-canvas:#0e0e0d;--a-bg:#0e0e0d;--a-card:#181817;--a-fill:#20201f;--a-fg:#f5f5f4;--a-soft:#d6d6d3;--a-muted:#9f9f9a;--a-border:rgb(255 255 255 / 8%);--a-signal:#749ff9;--a-signal-soft:rgb(116 159 249 / 10%);--a-shadow-card:0 0 0 1px var(--a-border), inset 0 1px 0 rgb(255 255 255 / 4%), 0 1px 2px rgb(0 0 0 / 25%);--a-shadow-raised:0 0 0 1px var(--a-border), inset 0 1px 0 rgb(255 255 255 / 5%), 0 2px 12px rgb(0 0 0 / 30%)}code,kbd,pre{font-family:\"Geist Mono\",ui-monospace,\"SF Mono\",Menlo,monospace!important}#page-title{font-size:1.75rem!important;line-height:1.2!important;font-weight:600!important;letter-spacing:-.025em!important}#header .eyebrow{font-size:.75rem;font-weight:500;letter-spacing:.01em}#content-area .prose{font-size:.9375rem;line-height:1.7}#content-area .prose h2{font-size:1.25rem;font-weight:600;letter-spacing:-.015em;margin-top:2.5rem}#content-area .prose h3{font-size:1rem;font-weight:600;letter-spacing:-.01em}#content-area .prose li,#content-area .prose p{color:var(--a-soft)}#content-area .prose strong{color:var(--a-fg);font-weight:560}#content-area .prose a{text-decoration-color:color-mix(in oklab,var(--a-signal) 45%,transparent);text-underline-offset:3px}::selection{background:var(--a-signal-soft)}#sidebar-content{font-size:.875rem}#content-area .prose table,#table-of-contents{font-size:.8125rem}.callout,.card{border-radius:var(--a-radius)!important;box-shadow:var(--a-shadow-card)}.card{border-color:transparent!important;background:var(--a-card);transition:box-shadow 150ms ease}.card[role=link]:hover,a.card:hover{box-shadow:0 0 0 1px color-mix(in oklab,var(--a-signal) 55%,transparent),0 2px 10px rgb(22 22 20/6%)}.card [data-component-part=card-content-container]{display:flex;align-items:flex-start;gap:.75rem;padding:.875rem 1rem!important}.card [data-component-part=card-icon]{flex:none;width:1.75rem!important;height:1.75rem!important;margin:0!important;display:grid;place-items:center;border-radius:.45rem;background:var(--a-fill);box-shadow:0 0 0 1px var(--a-border)}.card [data-component-part=card-icon] svg{width:.875rem!important;height:.875rem!important;background-color:var(--a-soft)!important}.card [data-component-part=card-title],.card [data-component-part=card-title] *{margin-top:0!important;padding-top:.25rem;font-size:.875rem!important;line-height:1.3!important;font-weight:600;letter-spacing:-.01em}.card [data-component-part=card-content]{margin-top:0!important;font-size:.8125rem!important;line-height:1.5!important;color:var(--a-muted)}.card [data-component-part=card-content] *{font-size:inherit!important;line-height:inherit!important}.callout{border:0!important;background:var(--a-card)!important;font-size:.875rem}.callout [data-component-part=callout-icon] svg{color:var(--a-muted)!important}.callout[data-callout-type=warning] [data-component-part=callout-icon] svg{color:#c27c0e!important}.callout[data-callout-type=check] [data-component-part=callout-icon] svg{color:#1f8a5b!important}.callout [data-component-part=callout-content],.callout [data-component-part=callout-content] p{color:var(--a-soft)!important}[data-component-part=frame]{border-radius:calc(var(--a-radius)*1.4)!important;background:var(--a-fill)!important;border:0!important;box-shadow:0 0 0 1px var(--a-border);padding:.5rem!important}[data-component-part=frame] img,[data-component-part=frame] video{border-radius:var(--a-radius)!important;box-shadow:var(--a-shadow-raised)}[data-component-part=frame-caption]{font-size:.8125rem;color:var(--a-muted)}[data-component-part=step-number]{font-family:\"Geist Mono\",ui-monospace,monospace;font-size:.75rem!important}[data-component-part=step-title]{font-weight:600;letter-spacing:-.01em}#content-area .prose th{font-weight:560;color:var(--a-muted)}.prose :not(pre)>code{font-size:.8125rem;border-radius:.35rem}kbd{display:inline-block;min-width:1.4em;padding:.05em .4em;font-size:.75rem;line-height:1.5;text-align:center;color:var(--a-fg);background:var(--a-card);border-radius:.35rem;box-shadow:0 0 0 1px var(--a-border),0 1px 0 var(--a-border)}.prompt-card{margin:1.5rem 0;padding:.25rem .75rem .5rem;border-radius:calc(var(--a-radius)*1.4);background:var(--a-fill);box-shadow:0 0 0 1px var(--a-border)}.prompt-card-label{margin:.6rem .25rem -.25rem;font-size:.75rem;font-weight:500;color:var(--a-muted)}@media (max-width:640px){#page-title{font-size:1.5rem!important}#content-area .prose table{display:block;overflow-x:auto}}#content-area .prose table{width:100%;table-layout:fixed}#content-area .prose td,#content-area .prose th{overflow-wrap:anywhere;vertical-align:top}#alpha-top-actions{position:fixed;top:.5rem;right:1.5rem;z-index:40;display:flex;align-items:center;gap:1rem}#alpha-top-actions[hidden]{display:none}#alpha-changelog-link{font-size:.8125rem;font-weight:500;color:var(--a-muted);text-decoration:none;transition:color 150ms ease}#alpha-changelog-link:hover{color:var(--a-fg)}#alpha-ask-ai{display:inline-flex;align-items:center;gap:.4rem;height:2rem;padding:0 .5rem 0 .75rem;border-radius:999px;font-size:.8125rem;font-weight:560;color:var(--a-signal);background:var(--a-signal-soft);box-shadow:0 0 0 1px color-mix(in oklab,var(--a-signal) 35%,transparent);cursor:pointer;transition:background 150ms ease,box-shadow 150ms ease}#alpha-ask-ai:hover{background:color-mix(in oklab,var(--a-signal) 18%,transparent);box-shadow:0 0 0 1px color-mix(in oklab,var(--a-signal) 60%,transparent)}#alpha-ask-ai[hidden]{display:none}#alpha-ask-ai kbd{padding:0 .35em;font-size:.6875rem;color:inherit;background:0 0;box-shadow:0 0 0 1px color-mix(in oklab,var(--a-signal) 30%,transparent)}@media (max-width:1023px){#alpha-top-actions{display:none}}.card-group:is([style*=\"--cols:3\"], [style*=\"--cols: 3\"], [style*=\"--cols:4\"], [style*=\"--cols: 4\"]) .card [data-component-part=card-content-container]{display:block;padding:1rem!important}.card-group:is([style*=\"--cols:3\"], [style*=\"--cols: 3\"], [style*=\"--cols:4\"], [style*=\"--cols: 4\"]) .card [data-component-part=card-icon]{margin-bottom:.75rem!important}.card-group:is([style*=\"--cols:3\"], [style*=\"--cols: 3\"], [style*=\"--cols:4\"], [style*=\"--cols: 4\"]) .card [data-component-part=card-title]{padding-top:0}.card-group:is([style*=\"--cols:3\"], [style*=\"--cols: 3\"], [style*=\"--cols:4\"], [style*=\"--cols: 4\"]) .card [data-component-part=card-content]{margin-top:.25rem!important}:root{--content-width:46rem}html.alpha-sidebar-collapsed{--sidebar-width:0px;--content-width:54rem}html.alpha-sidebar-collapsed #sidebar{display:none!important}#alpha-sidebar-toggle{position:fixed;top:.6875rem;left:calc(var(--sidebar-width, 19rem) + .5rem);z-index:40;display:grid;place-items:center;width:1.625rem;height:1.625rem;border-radius:.45rem;color:var(--a-muted);cursor:pointer;transition:color 150ms ease,background 150ms ease}#alpha-sidebar-toggle:hover{color:var(--a-fg);background:var(--a-fill)}html.alpha-sidebar-collapsed #alpha-sidebar-toggle{color:var(--a-signal)}@media (max-width:1023px){#alpha-sidebar-toggle{display:none}}.update-container{flex-direction:column!important;gap:1rem!important}.update-container>div:first-child{position:static!important;width:100%!important;display:flex!important;flex-direction:row!important;flex-wrap:wrap;align-items:center!important;gap:.5rem;padding-bottom:1rem;border-bottom:1px solid var(--a-border)}.update-container [data-component-part=update-description]{order:-1;flex-basis:100%;max-width:none!important;margin:0 0 .125rem!important;font-size:1.25rem!important;line-height:1.3!important;font-weight:600!important;letter-spacing:-.015em;color:var(--a-fg)!important}.update-container [data-component-part=update-label]{padding:0!important;background:0 0!important;font-size:.8125rem!important;font-weight:500!important;color:var(--a-muted)!important}.update-container [data-component-part=update-label]::after{content:\"·\";margin-left:.5rem;color:var(--a-muted)}.update-container [data-component-part=update-tag-list]{display:flex;flex-wrap:wrap;gap:.375rem;margin:0!important}.update-container [data-component-part=update-tag]{margin:0!important;padding:.0625rem .5rem!important;border-radius:999px;font-size:.75rem!important;font-weight:500!important;line-height:1.5!important;color:var(--a-soft)!important;background:var(--a-fill)!important;box-shadow:0 0 0 1px var(--a-border)}.update-container [data-component-part=update-content]{width:100%}.update-container [data-component-part=update-content],.update-container [data-component-part=update-description]{padding-left:0!important;padding-right:0!important}.update-container [data-component-part=update-content]>:first-child{margin-left:0!important}#pagination [data-component-part=pagination-next]>div{justify-content:space-between!important}#pagination [data-component-part=pagination-next]>div>div:first-child{flex:1;align-items:flex-start!important;gap:.125rem}#pagination [data-component-part=pagination-description],#pagination [data-component-part=pagination-title]{width:100%!important;max-width:none!important;text-align:left!important}#pagination [data-component-part=pagination-description]{font-size:.8125rem}"}],"page":{"pagePath":"sessions/setups","slug":"/sessions/setups","pageMetadata":{"title":"Setups: ready-made machines","sidebarTitle":"Setups","description":"Save a machine with your repositories cloned and tools installed, so every new session starts ready in about a second.","href":"/sessions/setups"},"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: \"Save a machine with your repositories cloned and tools installed, so every new session starts ready in about a second.\"\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 PromptCard=({label=`Prompt`,children})=>_jsxs(`div`,{className:`prompt-card not-prose`,children:[_jsx(`div`,{className:`prompt-card-label`,children:label}),children]});const reposMax=`5 per session`;const setupsMax=`5 per account`;function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,..._provideComponents(),...props.components},{Card,CardGroup,CodeBlock,Frame,Heading,Mermaid,Note,OptimizedImage,Step,Steps,Tab,Table,Tabs,Tip,Warning,_MdxComponentBoundary}=_components;if(!Card)_missingMdxReference(`Card`,true);if(!CardGroup)_missingMdxReference(`CardGroup`,true);if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Mermaid)_missingMdxReference(`Mermaid`,true);if(!Note)_missingMdxReference(`Note`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);if(!Tab)_missingMdxReference(`Tab`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tabs)_missingMdxReference(`Tabs`,true);if(!Tip)_missingMdxReference(`Tip`,true);if(!Warning)_missingMdxReference(`Warning`,true);if(!_MdxComponentBoundary)_missingMdxReference(`_MdxComponentBoundary`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`A setup is a saved machine that new sessions start on. It holds your repositories, already cloned, and whatever your setup script installed, so a session is ready in about a second. To copy one session, transcript included, `,_jsx(_components.a,{href:`/sessions/fork-and-delete`,children:`fork it`}),` instead. To add a repository to a single session, use the repos chip on the `,_jsx(_components.a,{href:`/sessions/home-screen`,children:`home screen`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`which-machine-should-a-session-start-on`,children:`Which machine should a session start on?`}),`\n`,_jsx(_components.p,{children:`Every session gets its own machine. You choose what’s on it when you start the session.`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Start from`}),_jsx(_components.th,{children:`What’s on the machine`}),_jsx(_components.th,{children:`Transcript`}),_jsx(_components.th,{children:`Ready to work`}),_jsx(_components.th,{children:`Use it when`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Blank machine`})}),_jsx(_components.td,{children:`The agent, Node, Python, git and PostgreSQL`}),_jsx(_components.td,{children:`New`}),_jsx(_components.td,{children:`After your repositories clone and you install what you need`}),_jsx(_components.td,{children:`A new project, or a one-off look at a repository`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`A setup`}),_jsx(_components.td,{children:`The same, plus your repositories cloned and your setup script already run`}),_jsx(_components.td,{children:`New`}),_jsx(_components.td,{children:`About a second`}),_jsx(_components.td,{children:`You start many sessions on the same codebase`})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[`A `,_jsx(_components.a,{href:`/sessions/fork-and-delete`,children:`fork`})]}),_jsx(_components.td,{children:`A copy of one session’s machine and files`}),_jsx(_components.td,{children:`Copied`}),_jsx(_components.td,{children:`About 15 seconds`}),_jsx(_components.td,{children:`You want to take one session in another direction`})]})]})]}),`\n`,_jsx(Tip,{children:_jsx(_components.p,{children:`Not sure? If you’ve installed the same dependencies in more than two sessions, save them as a setup.`})}),`\n`,_jsx(Heading,{level:`2`,id:`create-a-setup`,children:`Create a setup`}),`\n`,_jsxs(_components.p,{children:[`Fill in the form yourself, or ask the agent to save the session you’re in. Either way the setup is yours alone until you share it. Your own setups are limited to `,_jsx(_components.a,{href:`/reference/limits`,children:setupsMax}),`.`]}),`\n`,_jsxs(Tabs,{children:[_jsx(Tab,{title:`In the Setups manager`,id:`in-the-setups-manager`,children:_jsxs(Steps,{children:[_jsx(Step,{title:`Open the Setups manager`,children:_jsxs(_components.p,{children:[`Choose `,_jsx(_components.strong,{children:`Account menu → Setups`}),` (the account menu opens from your account badge at the bottom of the sidebar), or click `,_jsx(_components.strong,{children:`Manage setups →`}),` in the home screen’s setup chip. Then click `,_jsx(_components.strong,{children:`New setup`}),`.`]})}),_jsx(Step,{title:`Name it and add your repositories`,children:_jsxs(_components.p,{children:[`Give the setup a name your team will recognise, such as `,_jsx(_components.code,{children:`harbor dev`}),`. Under `,_jsx(_components.strong,{children:`Repositories`}),`, type `,_jsx(_components.code,{children:`owner/repo`}),` or paste a github.com URL, add a branch if you don’t want the default, and click `,_jsx(_components.strong,{children:`Add`}),`. Private repositories need `,_jsx(_components.a,{href:`/github/connect`,children:`GitHub connected`}),`.`]})}),_jsx(Step,{title:`Write the setup script`,children:_jsxs(_components.p,{children:[`Put the commands you’d otherwise run at the start of every session in `,_jsx(_components.strong,{children:`Setup script`}),`: installs, builds, migrations, seed data. It runs once, at build time, in `,_jsx(_components.code,{children:`/workspace`}),`. The first command that fails stops the build.`]})}),_jsx(Step,{title:`Add a boot script and notes`,children:_jsxs(_components.p,{children:[`Both are optional. A `,_jsx(_components.strong,{children:`Boot script`}),` catches each new machine up with your repository, usually with a `,_jsx(_components.code,{children:`git pull`}),`. `,_jsx(_components.strong,{children:`Notes for the agent`}),` tell it how the project runs. To share the setup, add emails under `,_jsx(_components.strong,{children:`Shared with`}),`.`]})}),_jsx(Step,{title:`Click Save \u0026 build`,children:_jsxs(_components.p,{children:[`Alpha opens the build log and streams it live. `,_jsx(_components.strong,{children:`Save`}),` keeps the setup without building it. When the build finishes, a check mark appears under the log: “Ready — pick it on the home screen with the chip.” The setup chip’s icon sits before the word “chip”.`]})})]})}),_jsxs(Tab,{title:`Ask the agent`,id:`ask-the-agent`,children:[_jsx(_components.p,{children:`Once a session’s machine works the way you want, ask the agent to save it. It writes the setup script from the commands that actually worked here.`}),_jsx(_MdxComponentBoundary,{name:`PromptCard`,children:_jsx(PromptCard,{label:`Try this`,children:_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`text`,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:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Save this as a setup called \"harbor dev\" so new sessions start like this one: both repos cloned, dependencies installed and the test database migrated and seeded.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})})})}),_jsx(_components.p,{children:`Alpha will:`}),_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Collect the install, migrate and seed commands this session needed, in dependency order.`}),`\n`,_jsx(_components.li,{children:`Save the setup under your account and build it on a fresh machine, not this one.`}),`\n`,_jsx(_components.li,{children:`Tell you when it’s ready to pick on the home screen, or that it’s still building.`}),`\n`]}),_jsx(_components.p,{children:`The agent can’t share a setup, and it replaces an existing setup of the same name only when you ask for exactly that.`})]})]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`What it does`}),_jsx(_components.th,{children:`Limit`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Name`})}),_jsx(_components.td,{children:`Shown in the setup chip, the manager and session headers`}),_jsx(_components.td,{children:`60 characters, unique across your Alpha`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Description`})}),_jsx(_components.td,{children:`One line under the name in the manager`}),_jsx(_components.td,{children:`300 characters`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Repositories`})}),_jsxs(_components.td,{children:[`Cloned into `,_jsx(_components.code,{children:`/workspace/\u003cname>`}),`, on the branch you give or the default`]}),_jsxs(_components.td,{children:[`5, which count toward the `,reposMax,` limit`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Setup script`})}),_jsxs(_components.td,{children:[`Runs once at build time, as root, with `,_jsx(_components.code,{children:`bash -e`}),` and no prompts. Your secrets and `,_jsx(_components.code,{children:`GITHUB_TOKEN`}),` are in its environment.`]}),_jsx(_components.td,{\"data-numeric\":`true`,children:`32 KB`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Boot script`})}),_jsx(_components.td,{children:`Runs on each fresh machine from the setup, before the agent starts. Edits apply without a rebuild.`}),_jsx(_components.td,{children:`32 KB; 5 minutes (default) per run`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Notes for the agent`})}),_jsx(_components.td,{children:`Handed to the agent with your messages in every session from the setup. They never appear in the transcript.`}),_jsx(_components.td,{children:`4,000 characters`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Shared with`})}),_jsx(_components.td,{children:`Accounts that can see the setup and start sessions from it`}),_jsx(_components.td,{children:`20 emails`})]})]})]}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`If you don’t see `,_jsx(_components.strong,{children:`Shared with`}),`, sharing isn’t turned on for your Alpha. It needs everyone to sign in with their own account.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`start-a-session-from-a-setup`,children:`Start a session from a setup`}),`\n`,_jsxs(_components.p,{children:[`The setup chip sits in the home composer’s bottom row, beside the repos chip. It reads `,_jsx(_components.strong,{children:`blank machine`}),` until you pick a setup. This browser remembers your pick for later sessions.`]}),`\n`,_jsxs(Steps,{children:[_jsxs(Step,{title:`Pick the setup`,children:[_jsxs(_components.p,{children:[`Click the setup chip and choose a setup. Setups marked `,_jsx(_components.strong,{children:`building`}),` or `,_jsx(_components.strong,{children:`not built`}),` can’t be picked yet. Once you’ve picked one, the repos chip lists the setup’s repositories marked “from the setup”, so you don’t add them twice.`]}),_jsx(Frame,{caption:`With no setups yet, Blank machine is the only choice.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/lyzr-15a99e0f/ObBpayiae_4aNgzN/images/sessions/home-setup-picker.png?fit=max\u0026auto=format\u0026n=ObBpayiae_4aNgzN\u0026q=85\u0026s=342458d7e09c4ffe81463d33119581d2`,alt:`The Setup popover open above the home composer, whose setup chip reading blank machine is highlighted. The header reads SETUP, with Manage setups → on the right. The only row is Blank machine, with a default badge and a check mark, described as Ubuntu with the agent, Node, Python, a parked PostgreSQL and a headless browser. Nothing cloned. Under it, beside two dashed squares, an empty state reads No setups yet. Add one — your team's repository, cloned and installed once, ready every time. The footer reads A setup boots with its repositories already cloned and its setup script already run — nothing to install at session start. Behind the popover, the Alpha lockup, the greeting Still up, Alex? Same. Wha… and the composer's placeholder Describe what to build — / for commands, @ for f… show at the left.`,\"data-og-width\":`1606`,width:`1606`,\"data-og-height\":`868`,height:`868`,\"data-path\":`images/sessions/home-setup-picker.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/lyzr-15a99e0f/ObBpayiae_4aNgzN/images/sessions/home-setup-picker.png?w=280\u0026fit=max\u0026auto=format\u0026n=ObBpayiae_4aNgzN\u0026q=85\u0026s=e04b771409dfb85a4797baaf04819eaf 280w, https://mintcdn.com/lyzr-15a99e0f/ObBpayiae_4aNgzN/images/sessions/home-setup-picker.png?w=560\u0026fit=max\u0026auto=format\u0026n=ObBpayiae_4aNgzN\u0026q=85\u0026s=4e45716f076e1f58b54ec033f342c4e0 560w, https://mintcdn.com/lyzr-15a99e0f/ObBpayiae_4aNgzN/images/sessions/home-setup-picker.png?w=840\u0026fit=max\u0026auto=format\u0026n=ObBpayiae_4aNgzN\u0026q=85\u0026s=43090a44b1f9180698ef8f0ce80f8256 840w, https://mintcdn.com/lyzr-15a99e0f/ObBpayiae_4aNgzN/images/sessions/home-setup-picker.png?w=1100\u0026fit=max\u0026auto=format\u0026n=ObBpayiae_4aNgzN\u0026q=85\u0026s=342ec8a9d90346213c0c7255233d39be 1100w, https://mintcdn.com/lyzr-15a99e0f/ObBpayiae_4aNgzN/images/sessions/home-setup-picker.png?w=1650\u0026fit=max\u0026auto=format\u0026n=ObBpayiae_4aNgzN\u0026q=85\u0026s=77ae7e665e8650509a1f1f1315df9bae 1650w, https://mintcdn.com/lyzr-15a99e0f/ObBpayiae_4aNgzN/images/sessions/home-setup-picker.png?w=2500\u0026fit=max\u0026auto=format\u0026n=ObBpayiae_4aNgzN\u0026q=85\u0026s=0274c3a9e2f5f486a327ecda505ae2d3 2500w`})})]}),_jsx(Step,{title:`Send your first prompt`,children:_jsx(_components.p,{children:`While the machine starts, the status line reads “Starting a machine from harbor dev”.`})}),_jsx(Step,{title:`Check the header`,children:_jsxs(_components.p,{children:[`The session header names the setup beside the title for the life of the session. If the setup is later deleted, the badge reads `,_jsx(_components.strong,{children:`deleted setup`}),`.`]})})]}),`\n`,_jsx(_components.p,{children:`Each session starts on its own copy, so nothing you do in one session reaches the setup or other sessions.`}),`\n`,_jsx(Heading,{level:`2`,id:`keep-a-setup-current`,children:`Keep a setup current`}),`\n`,_jsx(_components.p,{children:`A setup’s repositories are frozen at the moment it was built. There are two ways to bring them forward.`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Change`}),_jsx(_components.th,{children:`How`}),_jsx(_components.th,{children:`Who gets it`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`The latest code, or a quick install`}),_jsxs(_components.td,{children:[`Edit the `,_jsx(_components.strong,{children:`Boot script`}),`. No rebuild needed.`]}),_jsx(_components.td,{children:`Every machine created after the edit`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`New dependencies, repositories or setup script`}),_jsxs(_components.td,{children:[`Edit the setup, then `,_jsx(_components.strong,{children:`Rebuild`}),` or `,_jsx(_components.strong,{children:`Save \u0026 rebuild`})]}),_jsx(_components.td,{children:`Sessions started after the rebuild`})]})]})]}),`\n`,_jsxs(_components.p,{children:[`A rebuild never touches existing sessions; they keep their machines. If a rebuild fails, the previous build stays in use. `,_jsx(_components.a,{href:`/sessions/machines`,children:`Resetting a session`}),` started from the setup gives it the latest build.`]}),`\n`,_jsxs(_components.p,{children:[`The boot script runs on a fresh machine only, never when a sleeping session wakes. Your first message waits for it, so keep it to seconds. If it fails, Alpha notes it in the transcript, continues on the machine as built, and leaves the output in `,_jsx(_components.code,{children:`/var/log/forge-boot.log`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`To stop a build, click `,_jsx(_components.strong,{children:`Cancel`}),` on its row or `,_jsx(_components.strong,{children:`Cancel build`}),` in its log. Deleting a setup asks “Delete the “harbor dev” setup and its snapshot? Sessions started from it keep their machines.”`]}),`\n`,_jsx(Heading,{level:`2`,id:`share-a-setup`,children:`Share a setup`}),`\n`,_jsxs(_components.p,{children:[`Add an account’s email under `,_jsx(_components.strong,{children:`Shared with`}),` and click `,_jsx(_components.strong,{children:`Save`}),`. The setup appears in that person’s manager and setup chip, marked “Shared by” and your name. Alpha doesn’t notify them.`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{}),_jsx(_components.th,{children:`Owner`}),_jsx(_components.th,{children:`Someone it’s shared with`}),_jsx(_components.th,{children:`Anyone else, admins included`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Sees it and starts sessions from it`}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:`No`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Reads its build log`}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:`No`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Edits, builds, cancels, deletes or shares it`}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`No`})]})]})]}),`\n`,_jsxs(_components.p,{children:[`Removing an email takes effect at once. Sessions already started keep their machines, but their next fresh machine starts blank, with the repositories cloned again. Setups shared with you don’t count toward your limit of `,setupsMax,`.`]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`Starting from someone else’s setup means trusting them. Its boot script runs as root on your new machines with `,_jsx(_components.strong,{children:`your`}),` GitHub token and secrets in its environment, and its owner can change that script at any time without a rebuild.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`what-a-build-keeps-and-what-it-removes`,children:`What a build keeps and what it removes`}),`\n`,_jsx(_components.p,{children:`A build never touches your sessions. Alpha starts a separate, temporary machine, lends it your credentials, runs your setup, removes the credentials and saves the result.`}),`\n`,_jsx(Mermaid,{chart:`flowchart LR\n A[Blank machine] --> B[Your credentials added]\n B --> C[Repositories cloned]\n C --> D[Setup script runs]\n D --> E[Credentials removed]\n E --> F[Saved as the setup]\n F --> G[New session starts]\n G --> H[Boot script runs]\n classDef focus stroke:#1A54F0,stroke-width:1.5px;\n class F focus;`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Kept in the setup`}),_jsx(_components.th,{children:`Removed before it’s saved`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Your repositories, dependencies and build outputs`}),_jsxs(_components.td,{children:[`Your secrets and `,_jsx(_components.code,{children:`GITHUB_TOKEN`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`A database the setup script started and seeded`}),_jsx(_components.td,{children:`Your git name and email`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Every file the script wrote, keys included`}),_jsx(_components.td,{children:`The agent’s history and sign-ins from the build`})]})]})]}),`\n`,_jsxs(_components.p,{children:[`Only the environment is cleaned, not files. A token your script writes into `,_jsx(_components.code,{children:`.npmrc`}),` or `,_jsx(_components.code,{children:`.env`}),` ships to everyone you share the setup with. Keep keys in `,_jsx(_components.a,{href:`/secrets`,children:`secrets`}),` and read them from the environment.`]}),`\n`,_jsx(Heading,{level:`2`,id:`what-do-the-statuses-and-messages-mean`,children:`What do the statuses and messages mean?`}),`\n`,_jsx(_components.p,{children:`Builds are limited to 30 minutes (default), and two run at a time across your Alpha.`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Status`}),_jsx(_components.th,{children:`Meaning`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`”not built yet”`}),_jsxs(_components.td,{children:[`Saved without a build. Click `,_jsx(_components.strong,{children:`Build`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`”queued…”`}),_jsx(_components.td,{children:`Waiting for another build to finish. It starts on its own.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`”building · 2m ago…”`}),_jsx(_components.td,{children:`Running. Open the build log to follow it.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`”ready · built 3h ago by Dana Reyes”`}),_jsx(_components.td,{children:`Sessions can start from it`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`”ready · built … · last rebuild failed”`}),_jsx(_components.td,{children:`The previous build is still in use. The error shows under the row.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`”build failed”`}),_jsxs(_components.td,{children:[`Nothing to start from yet. Fix the script and click `,_jsx(_components.strong,{children:`Build`}),`.`]})]})]})]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Message`}),_jsx(_components.th,{children:`Cause and fix`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`”the setup script exited with status 1”`}),_jsx(_components.td,{children:`A command failed. Find it in the build log, and try the script in a session first.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`”timed out after 30 minutes”`}),_jsx(_components.td,{children:`Move slow, optional steps out of the setup script`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`”a setup with this name already exists”`}),_jsx(_components.td,{children:`Names are unique across your Alpha, even for setups you can’t see. Choose another.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`”at most 5 setups per account”`}),_jsx(_components.td,{children:`Delete one of your own first`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`”This session’s setup no longer exists — starting a blank machine (its repositories are cloned fresh).”`}),_jsx(_components.td,{children:`The setup was deleted or unshared. The session carries on without its installs.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`”The setup’s boot script failed (exit 1) — continuing; its output is in /var/log/forge-boot.log on the machine.”`}),_jsx(_components.td,{children:`Ask the agent to read that file, then fix the boot script`})]})]})]}),`\n`,_jsxs(_components.p,{children:[`Other start-up errors are in `,_jsx(_components.a,{href:`/reference/troubleshooting`,children:`Troubleshooting`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`next-steps`,children:`Next steps`}),`\n`,_jsxs(CardGroup,{cols:2,children:[_jsx(Card,{title:`Connect GitHub and add repositories`,icon:`github`,href:`/github/connect`,children:_jsx(_components.p,{children:`Connect an account so setups can clone your private repositories.`})}),_jsx(Card,{title:`Secrets`,icon:`key`,href:`/secrets`,children:_jsx(_components.p,{children:`Store the keys your setup script needs, so they never land in a file.`})}),_jsx(Card,{title:`Sleep, wake and reset`,icon:`power-off`,href:`/sessions/machines`,children:_jsx(_components.p,{children:`What a reset does to a session that started from a setup.`})}),_jsx(Card,{title:`Fork or delete a session`,icon:`code-branch`,href:`/sessions/fork-and-delete`,children:_jsx(_components.p,{children:`Copy one session, transcript and all, when a setup is more than you need.`})})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{PromptCard,reposMax,setupsMax,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":{"codeStyling":"system","config":{},"pageMetadata":{"title":"Setups: ready-made machines","sidebarTitle":"Setups","description":"Save a machine with your repositories cloned and tools installed, so every new session starts ready in about a second.","href":"/sessions/setups"}}},"mdxSourceWithNoJs":null,"noJsSplices":[[146,314,")=>null;const reposM"],[4323,4337,"`5 per account`}),`."],[9403,9416,"`5 per session`,` li"],[18390,18404,"`5 per account`,`.`]"]]},"mdxExtracts":{"tableOfContents":[{"title":"Which machine should a session start on?","slug":"which-machine-should-a-session-start-on","depth":2,"children":[]},{"title":"Create a setup","slug":"create-a-setup","depth":2,"children":[]},{"title":"Start a session from a setup","slug":"start-a-session-from-a-setup","depth":2,"children":[]},{"title":"Keep a setup current","slug":"keep-a-setup-current","depth":2,"children":[]},{"title":"Share a setup","slug":"share-a-setup","depth":2,"children":[]},{"title":"What a build keeps and what it removes","slug":"what-a-build-keeps-and-what-it-removes","depth":2,"children":[]},{"title":"What do the statuses and messages mean?","slug":"what-do-the-statuses-and-messages-mean","depth":2,"children":[]},{"title":"Next steps","slug":"next-steps","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/lyzr-15a99e0f/f9d02407465743f5/ask-ai.js","/_mintlify/custom/lyzr-15a99e0f/b625f5335bec8a53/sidebar-toggle.js"],"subdomain":"lyzr-15a99e0f","siteName":"Alpha","title":"Setups: ready-made machines - Alpha","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-27T23:53:05.751Z","originalFileLocation":"sessions/setups.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=\"Save a machine with your repositories cloned and tools installed, so every new session starts ready in about a second.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Alpha\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/lyzr-15a99e0f/O3mZitdsDDMzESr8/_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/lyzr-15a99e0f/O3mZitdsDDMzESr8/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/lyzr-15a99e0f/O3mZitdsDDMzESr8/_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/lyzr-15a99e0f/O3mZitdsDDMzESr8/_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/lyzr-15a99e0f/O3mZitdsDDMzESr8/_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/lyzr-15a99e0f/O3mZitdsDDMzESr8/_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/lyzr-15a99e0f/O3mZitdsDDMzESr8/_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/lyzr-15a99e0f/O3mZitdsDDMzESr8/_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/lyzr-15a99e0f/O3mZitdsDDMzESr8/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Setups: ready-made machines - Alpha\">\u003cmeta data-mint-head property=\"og:description\" content=\"Save a machine with your repositories cloned and tools installed, so every new session starts ready in about a second.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Alpha docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://lyzr-15a99e0f.mintlify.app/sessions/setups\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://lyzr-15a99e0f.mintlify.app/_mintlify/api/og/v2?division=Sessions\u0026amp;title=Setups%3A+ready-made+machines\u0026amp;description=Save+a+machine+with+your+repositories+cloned+and+tools+installed%2C+so+every+new+session+starts+ready+in+about+a+second.\u0026amp;theme=47e77850d1920921f207f882\u0026amp;signature=d78236b7d7ebe260b8f6538f9feb664126053d86cd23d194eb80094ae70c6584\">\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=\"Setups: ready-made machines - Alpha\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Save a machine with your repositories cloned and tools installed, so every new session starts ready in about a second.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://lyzr-15a99e0f.mintlify.app/_mintlify/api/og/v2?division=Sessions\u0026amp;title=Setups%3A+ready-made+machines\u0026amp;description=Save+a+machine+with+your+repositories+cloned+and+tools+installed%2C+so+every+new+session+starts+ready+in+about+a+second.\u0026amp;theme=47e77850d1920921f207f882\u0026amp;signature=d78236b7d7ebe260b8f6538f9feb664126053d86cd23d194eb80094ae70c6584\">\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/lyzr-15a99e0f/O3mZitdsDDMzESr8/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Alpha\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#1A54F0\">\u003clink data-mint-head rel=\"canonical\" href=\"https://lyzr-15a99e0f.mintlify.app/sessions/setups\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/sessions/setups.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://lyzr-15a99e0f.mintlify.app/#organization\",\"name\":\"Alpha\",\"url\":\"https://lyzr-15a99e0f.mintlify.app\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/lyzr-15a99e0f/peFm_Sv4KgaR4cun/images/logo/light.png?fit=max\u0026auto=format\u0026n=peFm_Sv4KgaR4cun\u0026q=85\u0026s=633788f52e3e9a8128bdaf2d7a62fff6\"}},{\"@type\":\"WebSite\",\"@id\":\"https://lyzr-15a99e0f.mintlify.app#website\",\"name\":\"Alpha\",\"url\":\"https://lyzr-15a99e0f.mintlify.app\",\"publisher\":{\"@id\":\"https://lyzr-15a99e0f.mintlify.app/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://lyzr-15a99e0f.mintlify.app/sessions/setups#webpage\",\"url\":\"https://lyzr-15a99e0f.mintlify.app/sessions/setups\",\"name\":\"Setups: ready-made machines\",\"description\":\"Save a machine with your repositories cloned and tools installed, so every new session starts ready in about a second.\",\"dateModified\":\"2026-10-27T23:53:05.751Z\",\"isPartOf\":{\"@id\":\"https://lyzr-15a99e0f.mintlify.app#website\"},\"breadcrumb\":{\"@id\":\"https://lyzr-15a99e0f.mintlify.app/sessions/setups#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://lyzr-15a99e0f.mintlify.app/sessions/setups#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Sessions\",\"item\":\"https://lyzr-15a99e0f.mintlify.app/sessions/home-screen\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Setups: ready-made machines\",\"item\":\"https://lyzr-15a99e0f.mintlify.app/sessions/setups\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://lyzr-15a99e0f.mintlify.app/sessions/setups#article\",\"headline\":\"Setups: ready-made machines\",\"name\":\"Setups: ready-made machines\",\"description\":\"Save a machine with your repositories cloned and tools installed, so every new session starts ready in about a second.\",\"url\":\"https://lyzr-15a99e0f.mintlify.app/sessions/setups\",\"mainEntityOfPage\":{\"@id\":\"https://lyzr-15a99e0f.mintlify.app/sessions/setups#webpage\"},\"dateModified\":\"2026-10-27T23:53:05.751Z\",\"publisher\":{\"@id\":\"https://lyzr-15a99e0f.mintlify.app/#organization\"},\"isPartOf\":{\"@id\":\"https://lyzr-15a99e0f.mintlify.app#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Alpha\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Alpha","nav":{"global":null,"tabs":[{"tab":"Get started","pages":[{"title":"Get started","href":""}]},{"tab":"Build","groups":[{"group":"Sessions","pages":[{"title":"The home screen","sidebarTitle":"Home screen","href":"/sessions/home-screen"},{"title":"What happens when you start a session","sidebarTitle":"Starting a session","href":"/sessions/start-a-session"},{"title":"Find and organize sessions","sidebarTitle":"Sidebar and search","href":"/sessions/organize"},{"title":"Fork or delete a session","sidebarTitle":"Fork and delete","href":"/sessions/fork-and-delete"},{"title":"Sleep, wake and reset","sidebarTitle":"Sleep and wake","description":"Machines sleep when you leave and wake exactly as you left them. Work keeps running while you're away.","href":"/sessions/machines"},{"title":"Setups: ready-made machines","sidebarTitle":"Setups","href":"/sessions/setups"}]},{"group":"Chat with the agent","pages":[{"title":"The composer","sidebarTitle":"Composer","description":"Type, attach, dictate and mention: everything you can put in a message to the agent.","href":"/chat/composer"},{"title":"Queue, steer or stop","sidebarTitle":"Queue, steer and stop","href":"/chat/queue-and-steer"},{"title":"Follow the agent's work","sidebarTitle":"Reading the transcript","href":"/chat/transcript"},{"title":"Plan mode and the agent's questions","sidebarTitle":"Plan mode and questions","href":"/chat/plan-mode"},{"title":"Choose the agent and model","sidebarTitle":"Agents and models","href":"/chat/agents-and-models"},{"title":"Answers you can interact with","sidebarTitle":"Interactive answers","href":"/chat/interactive-answers"}]},{"group":"Workspace","pages":[{"title":"The workspace","sidebarTitle":"Workspace overview","href":"/workspace/overview"},{"title":"Preview your app","sidebarTitle":"Preview","href":"/workspace/preview"},{"title":"Point at and draw on your app","sidebarTitle":"Point and draw","href":"/workspace/point-and-draw"},{"title":"Files and uploads","sidebarTitle":"Files","href":"/workspace/files"},{"title":"File viewers","sidebarTitle":"File viewers","href":"/workspace/file-viewers"},{"title":"Slides, drawings and diagrams","sidebarTitle":"Decks and drawings","href":"/workspace/decks-and-drawings"},{"title":"The Shell","sidebarTitle":"Shell","href":"/workspace/shell"},{"title":"Your session's database","sidebarTitle":"Database","href":"/workspace/database"},{"title":"Browse, edit and query data","sidebarTitle":"Data, structure and SQL","href":"/workspace/database-data"},{"title":"Add sign-in to your app","sidebarTitle":"App sign-in","href":"/workspace/app-sign-in"}]}]},{"tab":"Ship","pages":[{"title":"Ship","href":"/publish/publish-your-app"}]},{"tab":"Connect","pages":[{"title":"Connect","href":"/integrations/overview"}]},{"tab":"Agents","pages":[{"title":"Agents","href":"/agents/build-an-agent"}]},{"tab":"Reference","pages":[{"title":"Reference","href":"/reference/slash-commands"}]}]},"title":"Setups: ready-made machines - Alpha","buildId":"dpl_2oYXwqkEXirXBPk8wV1FtM5USFWi","deploymentId":"dpl_2oYXwqkEXirXBPk8wV1FtM5USFWi","dynamics":["07c022d89b","a74be98ba7"],"chunks":["Frame-BbYRHtLl.js","DynamicMarkdown-DN96a4Ur.js","zoom-image-lightbox-D7yRe3On.js","lightbox-handle-r17bVUz3.js"]}