CLI

codeout is one command. Run it with no arguments and it starts the daemon in the current directory; add flags to change where it listens or how it is reached. This is a conceptual reference, so flag names describe intent rather than promising an exact string.

The command

Everything goes through codeout. With no subcommand it runs the daemon; subcommands like devices manage state without starting a session. The working directory you run it from becomes the default working directory for sessions you open, which is why you usually run it from the project you care about.

Running the daemon

~/projects/app
$ codeout
codeout -> http://localhost:8400
pair a device: scan the QR, or type this code
  K7QM-3FBR-9TZX

The daemon prints its local address and a pairing secret, then holds the process open. Stop it with the usual interrupt, and its sessions stop with it.

Common flags

--public
stand up a tunnel via codeout.dev and print a public address to pair against. The daemon dials out, so no inbound port is opened. See Remote access.
--port <n>
listen on a port other than the default 8400.
--bind <addr>
choose the bind address. Defaults to loopback so nothing is exposed until you put a VPN or tunnel in front of it.
--version
print the installed version and exit.
--help
print usage and exit. Run it on a subcommand for that subcommand's flags.
Note

Binding to a public interface works, and the encryption holds if you do, but a VPN or an outbound tunnel is the friendlier default. A closed inbound port is one less thing to scan and one less thing to reason about.

Managing devices

The devices subcommand lists paired devices and revokes them. Each device has a name you can recognise and its own token, so you act on them one at a time.

terminal
$ codeout devices
phone-15      paired 2d ago    active
work-laptop   paired 6h ago    active
$ codeout devices revoke work-laptop
revoked. work-laptop can no longer connect.

Revoking is immediate and surgical. The named device drops off the allow-list and can no longer connect or decrypt new traffic; every other device is untouched.

Version and help

terminal
$ codeout --version
codeout 1.0.0
$ codeout --help
usage: codeout [--public] [--port n] [--bind addr]
       codeout devices [revoke <name>]

Environment

codeout runs your agents with the environment they already expect. Their API keys, model selection, and project config come from wherever those tools normally read them on the daemon host. codeout adds nothing to that environment and copies nothing out of it. If a flag and an environment setting disagree, the flag you typed on the command line wins for that run.