Install

codeout is one global package. Install it once, and the codeout command runs the daemon from any project directory.

Install with bun

codeout is built and run with bun, so bun is also how you install it.

terminal
$ bun install -g codeoutcli

That is the whole installation. There is no separate server to provision, no database, and no config file you must write before the first run. The daemon picks sensible defaults and prints what it is doing.

Verify the install

Confirm the command is on your path and reports a version.

terminal
$ codeout --version
codeout 1.0.0

If your shell cannot find the command, your global bun bin directory is probably not on your PATH. Run bun pm bin -g to see where bun puts global binaries, then add that directory to your shell profile.

Requirements

runtime
bun 1.1 or newer, used both to install codeout and to run the daemon
os
macOS or Linux natively. Windows works under WSL2, where the daemon runs inside the Linux environment.
agents
whichever agents you plan to use must already be installed and on your path, for example claude or gemini. A plain shell needs nothing extra.
device
any phone, tablet, or laptop with a modern browser. A camera is handy for the QR scan but not required; you can pair with a typed code instead.
network
on the same LAN or tailnet, nothing more. To reach the daemon from the wider internet, see Remote access.

About your agents

Note

codeout never installs or bundles the agents. It launches the ones you already have, with your existing config and credentials, exactly as you run them by hand. Your API keys stay in your agent's own config on the daemon host and are never copied, proxied, or transmitted by codeout.

The practical upshot: if claude works in your terminal today, it works in a codeout session today, with the same model, the same project context, and the same login. codeout is the window, not the agent.

Updating

Reinstall to upgrade. Running sessions are tied to the daemon process, so finish or detach from them and stop the daemon first, otherwise the upgrade waits for the next restart to take effect.

terminal
$ bun install -g codeoutcli@latest

Pinned to a version on purpose? Swap @latest for the exact version you want. The next time you run codeout, the new build is what starts.

Uninstalling

Remove the global package and the command is gone. codeout keeps nothing outside its package and your small local config, so there is nothing else to clean up.

terminal
$ bun remove -g codeout