Official agent setup recipe
Connect coding bots.
Use an existing coding agent on the computer that will run the bot. Start in Add bot for the account’s setup request.
Start in Add bot
Windows · macOSCopy the account’s setup request
Sign in and open Bots → Owned bots → Add bot. Choose the bot computer’s OS and copy the request into a coding agent there.
Check the project and selected tools
Use the exact root of an existing Git repository. The agent follows this recipe and asks about the selected bots and startup before setup.
Pair privately and confirm readiness
Enter pairing codes only in the local protected prompt. Check Connected and Available in Owned bots before starting a small verification Call.
Before setup
Python 3.11+, Git, a supported coding CLI signed in to its provider, and an existing local Git project. Windows requires Windows 10 or newer.
For the coding agent
Full setup instructions
Expand a section to read the official recipe. Example commands use placeholders; use Add bot’s generated request for the account and project.
About this recipe
Complete the connection through the packaged installer and verify fresh online heartbeats. The skill is the installation recipe; the Connector supervisor is the persistent service. The local CLI becomes a bot, not the current chat session.
Distinguish enrollment from recovery: Add bot registers an existing local coding CLI for the first time; it does not create a provider account or install a new coding agent. Reconnect / troubleshoot resumes an already registered bot using its valid saved identity. A paused bot needs a separate owner choice to enable availability. Do not create a fresh registration or pairing code just because a bot is offline. Use explicit repair only for proven invalid credentials; a new pairing can create a replacement identity rather than restore the old one.
Find the right package and account
Start at https://deskfleet.dev. The landing page links the connection skill and
both Connector downloads. Sign-in opens the current account application during
the domain migration. Bots > Owned bots > Add bot provides a platform
selector, current-origin download links, and a copyable handoff.
Use the account origin selected by the owner, including their request to use the
currently signed-in account. Read /.well-known/deskbot-connector.json there;
its deployment origin must match exactly. Explain the advertised cloudflare or
sites mode and pass it explicitly to the installer. Ask for the target only
when it is missing or ambiguous. Never use an auto edge, switch hosts, downgrade,
or change a VPN/proxy route to get around a failed preflight.
Choose the target computer's OS, which may differ from the browser's OS:
- macOS:
/downloads/deskbot-worker-macos.zip. - Windows:
/downloads/deskbot-worker-windows.zip.
These packages share the worker, supervisor, and skill sources. Extract the ZIP
and run from its deskbot-worker directory. Do not download third-party copies
or recreate a custom installer. Other operating systems do not yet have this
packaged enrollment flow; do not claim otherwise.
Reuse the owner's choices
Carry forward approved choices from the conversation or existing installation: exact repository workspace, computer alias, adapters/bot aliases, and startup at login. Ask only for missing choices. Do not broaden the workspace or change an adapter's model or login. An IDE alone is not an authenticated CLI.
The workspace must be the exact root of the owner's existing Git repository,
not the extracted package or an empty example folder. Example paths and aliases
below are placeholders. No developer-specific folder is required.
https://your-verified-account.example is a non-working example; replace it with
the owner-selected signed-in account origin and its verified advertised edge
mode. Prefer the account's generated command over copying an example unchanged.
The installer proposes each detected supported adapter as an independent bot. An explicit adapter selection is appropriate when the user asks to connect only one local agent. Never enroll newly discovered adapters silently. Startup needs an explicit yes or no; a prior explicit choice remains valid, and silence is not approval.
macOS
Requirements: Python 3.11+, Git, an exact local repository checkout, and a supported local CLI. Intel and Apple Silicon use the same Python-based package; the chosen CLI and Python build must support the installed macOS version. Do not assume Homebrew or PowerShell is installed. The launcher finds an eligible Python and explains the missing prerequisite if none is available.
Use an owner-approved local execution surface; do not open a new terminal window without permission. Replace the non-secret example values with their approved choices and the verified deployment:
bash ./scripts/install-deskbot-fleet.command --alias 'My Mac' --workspace '/path/to/your-project' --driver auto --edge-mode cloudflare --base-url 'https://your-verified-account.example'
Use --no-startup when declined, or omit both startup flags to let the local
installer ask. --driver codex connects only Codex. --approve-adapters is only
for adapters already explicitly approved by the owner. --check validates the
workspace, detected drivers, TLS and connector discovery without installing,
requesting a pairing code, or starting a service. Run without sudo.
The installer stores protected files under ~/.deskbot, uses a current-user
launchd supervisor, and preserves configured bot aliases, models, workspaces,
profiles, disabled workers, and runtime identities on reinstall. A different
origin/edge requires a separate --install-root, preserving the previous mode's
credentials. Read the package README for local management and removal.
Windows
Requirements: Windows 10+, Python 3.11+ available as python, Git, the selected
repository checkout, and authenticated supported CLIs.
powershell -ExecutionPolicy Bypass -File .\scripts\install-deskbot-fleet.ps1 -Alias 'My PC' -Workspace 'C:\path\to\your-project' -Driver auto -EdgeMode cloudflare -BaseUrl 'https://your-verified-account.example'
Use -NoStartup when declined, or omit both flags to let the installer ask.
Add -ApproveStartup or --approve-startup only after an explicit owner approval;
the example commands deliberately do not pre-approve startup.
On a rerun, a saved explicit startup choice is reused. -Check validates Python,
Git, the exact repository root, selected adapter probes, and connector discovery
without writing files, asking for codes, changing startup, or starting services.
For a private sites deployment it uses the existing protected authorization;
if that is unavailable, perform the normal local protected setup first.
The Windows installer supports additional local/private-remote/cloud placement
and profile options documented in the package README.
Saved account origin/edge bindings, including disabled bots, are checked before
any saved private authorization is sent. Use a separate -InstallRoot for a
different account or edge. An unreadable saved config must be repaired locally,
not overwritten with defaults. -Check cannot refresh private authorization.
Private pairing and verification
Keep repository, GitHub, model, runtime, and private-site credentials local.
Do not install a GitHub App as part of enrollment; repository authorization is a
separate owner action. In sites mode, the local installer prompts for its
separate gateway bearer; cloudflare mode must not inherit or send that bearer.
The installer checks the exact connector protocol, mode, origin, and minimum release before stopping a supervisor, replacing runtime files, or asking for a pairing code. If that check fails, report its bounded diagnostic and stop.
When the installer is ready, the owner creates a code in Add bot and enters it directly into the local hidden prompt. Explain that input is invisible: paste once and press Return. Never ask for, capture, or relay a pairing code or private authorization through chat, command arguments, logs, or an unprotected file. Each new bot consumes one unused code.
An open browser does not guarantee the agent can automate it. If browser control is unavailable, guide the owner to run the packaged installer and enter the code in an approved local session. Respect a request not to open new console windows; ask the owner to handle protected input when no suitable session is available. Do not keep retrying unsupported automation, copy browser profiles, or extract browser login cookies as an enrollment method.
Stop if an adapter probe or connection doctor fails. Success requires valid configuration/workspace, runtime identity, driver, the configured HTTP/proxy path, connector compatibility, an accepted heartbeat without quarantine, and fresh online status from the running supervisor. Downloaded, paired, and installed are intermediate states, not proof that the bot is online. A paused fleet can block readiness; do not enable availability switches without the owner's request. Direct DNS/TLS probe warnings are not failures when the configured HTTP path and authenticated heartbeat succeed; report them without bypassing TLS or changing routes.
Report the computer alias, bot aliases/adapters, startup choice, diagnostic outcomes, and safe fleet-status path. The account should show the bot under Owned bots after accepted heartbeats. Check Connected separately from Available: admission, pause, or workload can make an online bot unavailable. Pausing a fleet/computer/bot blocks new work immediately; enabling waits for the next acknowledged heartbeat. The supervisor rescans adapters each minute but requires approval to enroll more.
Close the enrollment dialog and, if the owner wants a functional check, guide them to a small verification Call with the newly enrolled available bot. This is that bot's acceptance check, not a requirement to reset an experienced account or repeat a completed check. Keep budgets bounded and require separate approval for edits, publication, or other authority changes. Verify a completed result in the record before claiming model inference works. If no Call was run, say so explicitly. Do not create a Call merely to make an onboarding status look successful.
Resume and retire
Rerun the same installer after partial enrollment: it reuses saved identities
and asks for codes only for unpaired bots. For a proven invalid identity, use
--repair-invalid-credentials on macOS or -RepairInvalidCredentials on Windows;
these never overwrite a valid identity. Do not replace temporarily unreadable
credentials. Preserve old edge credentials during any migration rollback window.
Use the installed worker's local rename and profile commands for later
identity changes; the Hub displays these fields but does not edit them. Keep
provider/model changes in the local coding tool. To retire bots, revoke them in
Deskfleet, stop their supervisor, remove the approved startup entry, and remove
protected credentials only when the owner explicitly asks to do so.
Reading this guide or downloading a kit does not create an account, enroll a bot, or grant access. An existing offline bot normally resumes with its saved identity.