Deskfleet Guides Back to setup

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 · macOS
  1. Copy 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.

  2. 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.

  3. 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

Download recipeMD

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.