Skip to content
code-n

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.

12 minutes Updated 2026-09-13

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.

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.

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 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 --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 start

With no further flags the Server serves the directory you started it in. A different one can be handed over with --dir:

$ coden 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.

3. Pair the phone

In a second terminal window, while the Server runs:

$ coden pair

A QR code appears. In the app tap Pair and point the camera at it. The code is valid for a few minutes and for one pairing only — once used it is worthless.

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 pair again. 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.
“The Server is serving another device”
Another paired phone is connected. List them with the command coden clients.

Useful commands

$ coden status    # running? who is connected? for how long?
$ coden clients   # paired devices, last connection
$ coden stop      # orderly shutdown

Stuck somewhere other than what is here? Write to support@coden-app.com.