Before you first walk away from the computer
Installing the Server, pairing the phone with a QR code, a direct connection versus the Relay, and the first task for the Agent. Step by step.
What you will need
- A computer with macOS, Windows or Ubuntu holding the project you want to work on.
- Node.js 20 or newer — the Agent runs in it.
- Anthropic API credentials in the variable
ANTHROPIC_API_KEY, or a Claude subscription the Agent signs in to itself. - A phone with the coden app and a camera, or the coden app in a window on your computer.
You do not need a server of your own. The Rendezvous and the Relay through which the phone and the computer find each other are run by us, and the Server knows them already.
The Client: your phone, or a window on your computer
The Client is the coden app — the one you use to give the Agent work and follow it. It is one app in two places:
- Phone (iPhone and Android)
- For when you are away from your computer. You give a task, approve a command, read the documentation and click through the app in progress in Preview. When the Agent finishes, you get a notification — even with the app closed.
- Window on your computer
- For when you are at your desk. The same tabs, just with more room: the file tree next to the document, open files in tabs and the Conversation alongside. When the Server runs on the same computer, the window reads the project straight from disk and you can edit source files in it too. And you can start the Server from it without a terminal.
Both can be connected at the same time: finish at your phone a Conversation you started at your desk, and the other way round. Each device is paired with the Server separately.
Get the phone app from the App Store or Google Play. The app for your computer is installed together with the Server.
1. Install the Server
Download the package for your system from the download page. Every system has an installer of its own and all of them do the same thing: they put the coden-server command in the PATH, so you can then run it from anywhere.
- macOS
- Double-click the .pkg and click through the wizard. The package is signed and notarized, so Gatekeeper does not ask.
- Windows
- Double-click the .msi and click through the wizard. After installing, open a new command-line window — the change to the PATH does not reach the old one.
- Ubuntu and Debian
- Double-clicking the .deb opens it in the system installer. From a terminal it is
sudo apt install ./coden_*.deb.
$ coden-server --version
When the command is not found, open a new terminal. The PATH does not reach the ones already running.
2. Start the Server over the project
The Server serves one directory. The one you hand it is exactly the one the Agent will work in and run commands in. Nothing about the project is stored anywhere outside it.
$ cd ~/projekty/muj-projekt
$ coden-server start
With no further flags the Server serves the directory you started it in. A different one can be handed over with --dir:
$ coden-server start --dir ~/projekty/jiny-projekt
The Server stays in the foreground and prints what is going on. Keep that window open — it is the only place where you will see that somebody connected.
More projects mean more Servers, each in its own window. In the app you then switch between them and each keeps its own Conversations, tests and history.
On your computer, without a terminal
The coden app also runs in a window on your computer, and from there you can start the Server yourself:
- Open Settings → Connection.
- Under Server on this computer, type the path to the project folder, for example ~/projekty/muj-projekt.
- Tap Start Server.
The window pairs with the Server straight away, and the Server keeps running even after you close the window. To connect your phone, use Connect a phone in the bar at the bottom of the window — it shows a QR code to scan.
3. Pair the phone
Until a phone is paired, the Server prints a QR code by itself right after starting. In the app tap Pair and point the camera at it. The code lasts ten minutes and works for one pairing only — once used it is worthless.
When it expires, or you need to pair another device, make a new one. In a second terminal window, while the Server is running:
$ cd ~/projekty/muj-projekt
$ coden-server pair
Both commands have to run from the same folder, and the Server has to be running first. coden-server pair is not a program of its own — it is a message to the running Server, which it finds by the folder you start it in. From another folder, or with no Server running, it reports that there is nobody to ask.
Do not show that code to anyone and do not photograph it. Besides the identity of your computer it carries access to the Service. Whoever has it gets further than you would like.
4. A direct connection, or over the Relay
After pairing the phone connects by itself and the app shows which way. You do not have to set the difference up — the better of the remaining options is chosen — but it is good to know what each state means:
- A direct connection
- Data flows from the phone to the computer and nowhere else. The fastest, no quota, nothing passes through our Service. It works when both devices are on the same network or when punching through NAT succeeds.
- Over the Relay
- Our server passes the data along. On mobile data and in company networks, where a direct connection is impossible, it is the only way to connect. The traffic is encrypted from the phone to the Server, so we do not see the content — we only forward it.
The app tries to switch to direct by itself as soon as it can — typically when you come home to wi-fi. The Relay can be turned off in Settings; but then you will not connect at all on a network that does not allow a direct connection.
Rendezvous is the part of the Service that introduces the two sides. Without it the phone would not know where to connect — the computer's address keeps changing, after all. Data cannot be carried over it, though.
5. Give it the first task
Start with something where you can tell whether the Agent did it well. For instance:
Go through the README and tell me what it is missing so that the project can be started from it on a clean computer.
Along the way you will see which files the Agent reads and what it runs. At the first command it asks for permission — that is normal and it is the default. When you want it to stop asking about a certain kind of action, grant a standing permission; it can be withdrawn at any time in Settings.
Claude Code works there, that is, the same Agent you know from the terminal. It can do the same and behaves the same; the only difference is that input and output go through the phone and that CLAUDE.md, skills and settings in the project apply exactly as they do at the computer.
6. Walk away from the computer
This is the part coden exists for. Give it a longer task, lock the phone and go. The Agent keeps working. When it finishes, a notification arrives; when you connect, the whole output you missed arrives with it.
For that to work the computer must not go to sleep — there is a guide of its own for that. And when you do not want to be pulled back to approving, have a look at allowing work without approvals.
When the phone does not connect
- The app says “the pairing code expired”
- Run
coden-server pairagain. The code is short-lived on purpose. - The phone is on mobile data and the connection does not come up
- Some mobile networks do not allow a direct connection. Check in the app that the Relay is allowed — without it you will not connect on such a network.
- The app reports a key mismatch
- The Server has a different identity from the one the phone remembers — typically because you deleted its state directory. Pair again. Continuing “anyway” is deliberately not offered.
Useful commands
$ coden-server status # running? who is connected? for how long?
$ coden-server clients # paired devices, last connection
$ coden-server stop # orderly shutdown
Stuck somewhere other than what is here? Write to support@coden-app.com.