BeyDock is a Mac app that runs coding agents side by side. This guide covers the setup you will touch first. None of it takes long, and each part works independently, so do only what you need. BeyDock is in early access, so a screen may look a little different from what is described here.
1. Add your accounts
Open Settings › Accounts. At the bottom, "Add account" has a provider switch (Claude, Codex, Antigravity, OpenCode), a name field and an "Add and Sign In" button. Pick a name that tells you which subscription it is, like "Work Max" or "Personal Plus".
What happens next depends on the provider:
- Claude: Terminal opens. Type
/login, sign in with that subscription in your browser, then close the window. Each account runs Claude Code with its own configuration. - Codex: the first account uses your existing Codex CLI sign-in in
~/.codex. A second one opens Terminal so you can sign in with ChatGPT. - Antigravity: the first account uses your
agysign-in. Extra ones get their own folder and a Google sign-in. - OpenCode: the first account uses the providers you already signed in to. Extra accounts get their own folder, and you sign in to a provider such as OpenCode Zen, Anthropic or OpenAI.
You can have as many accounts per provider as you like, for example two Claude subscriptions on one Mac.
2. Pick the account, model and effort per session
When you start a session, you choose which account it runs on. The model and effort pickers sit in the message box. The effort picker disappears when the chosen model has no effort levels, and an unsupported effort is reset when you change the model. BeyDock remembers your last choices per provider.
One rule to know: a started session stays on its provider. You can move it to another account of the same provider mid-session, which works for Claude and Codex. You cannot move a Claude transcript to Codex. When you want another provider to do part of the job, the session can hand it off as a child session. That is what Delegation does.
Each provider also has its own permission modes, with their own names. Claude offers Ask for approval, Accept edits, Plan mode, Auto and Bypass permissions. Codex has Auto, Ask for approval, Read only and Full access. Antigravity cannot ask during a turn, so its mode decides what it may do before it starts.
3. Read your usage limits
Claude, Codex and Antigravity accounts report plan limits. BeyDock shows them as windows, such as the five-hour session window and the weekly window, each with a percentage used and a reset time. The Usage limits item in the menu bar shows a gauge for how much is left, and its panel lists your accounts, so you can check without opening the main window. OpenCode runs on provider keys, so it has no plan limit to show.
Use these numbers to decide where to start a session. When one account is at 90% of its five-hour window and another is nearly empty, start on the other one.
4. Connect an SSH host
Open Settings › Devices. The "Add SSH host" section takes a name from your ~/.ssh/config or a user@host. BeyDock uses your SSH config and keys. It cannot answer password prompts, so key-based login is required.
The first time you connect, BeyDock uploads its sidecar to ~/.beydock/sidecar/<version> on the host and installs its dependencies with npm install, so the host needs Node.js and npm, plus the command-line tools of the providers you want to use there. Sessions on that host run there, so files, git and provider sign-ins are the host's. Your account list is the same for every host: sign an account in on the host from its row in Settings › Accounts, with "Sign In on" and the host's name.
If your connection drops, the agent keeps working on the host and BeyDock reconnects and catches up. Our build log on remote sessions covers how.
5. Isolate work in worktrees
If two agents work in the same repository, give each a git worktree. In the branch menu, or in the location bar of a new session, choose "New Worktree…". The worktree is created when you send your first message, so a draft you abandon leaves nothing behind.
By default, worktrees live under ~/.beydock/worktrees/<repo>-<hash>/sessions/<name>, with their own branch, and share history and remote with the main repo. Some details that help:
- By default a new worktree starts from the repository's default branch. You can choose the current branch instead.
- Files that git ignores but you need, like
.env, are copied by listing them in.worktreeincludein the main working copy. - An optional setup command runs once the worktree exists, before the agent gets your first message.
- When you archive or delete the session, a clean worktree is removed quietly. If there are uncommitted changes or unpushed commits, BeyDock lists them and keeps the worktree by default. Nothing is deleted in the background.
You can also merge a worktree back into your main branch from the app. The merge is a local --no-ff merge, and on a conflict it is aborted so the target stays clean.
Where to go next
Once accounts and a host are set up, try Delegation, so one session hands part of a job to another provider, and Workflows, so jobs start themselves.