Skip to content

Accounts and access

  1. Your access: a passkey, or a password with the code of an authenticator app, or both.
  2. One token per host, made when the host joins. Joining again replaces it.
  3. Secrets in the vault: engine logins, forge tokens.

Anything else Kedalio needs (a run’s own token for the connector, a short-lived token for a client) is derived from these, short-lived, and never yours to manage.

The installer prints a link that makes the server’s first account, which is also its administrator. The link works once, for seven days. On its page you choose how you sign in:

  • a passkey, kept by your device or your password manager;
  • a password of at least 12 characters, with the six-digit code of an authenticator app: the page shows a QR code and the key;
  • or both, which is the safe choice: each is the spare of the other.

The time zone of your browser is saved with the account.

At your first sign-in you are shown the vault’s recovery code, once. Write it down and keep it apart from the server: it restores the vault on a new server, or when the key file is lost.

Every account has its own database. The administrator can invite others (POST /api/accounts, which answers an invitation link); the app has no page for invitations yet.

/sign-in takes a passkey, or the password and the code. After five wrong attempts from one address, that address waits fifteen minutes. A session lasts thirty days from its last use, ninety days at most.

A serious request of an agent asks for your passkey again before it is allowed (Squads and assignments).

In the app, System → Your access has:

  • Passkeys: add one with a name you will recognise («Bitwarden», «iPhone»), or remove one. The last way in cannot be removed: add a password or another passkey first.
  • Password and code: set or change them. You confirm it is you first, with a passkey or your current password and code; then scan the new key, choose the password, and enter the code.
  • Signed in: the open sessions, and Sign out for each. A terminal you signed in from Orion is listed as «Terminal on »; it can do what the app does except change who can sign in (passkeys, password, sessions, connected apps, invitations, adding a computer, importing or restoring from Agents Multi), which is refused. Revoking the computer ends its terminal session too.
  • Connected apps: Claude, ChatGPT and the other clients you connected through the connector, and Disconnect for each.

The time zone («Assignments and the morning report follow this clock») is in System → Preferences.

While you have only one way in, the page says so: with a passkey alone, losing it locks you out. There is no other way back in yet.

Secrets are encrypted on the server (AES-256-GCM), with a key per account wrapped by the instance’s key. They are written, never read back: a list shows names only. Every change is in the audit log, by name.

A secret reaches a run only when that run needs it: the engine login under the variable the engine reads, the forge token for git. On the host it stays in memory; Codex’s login file is written to a folder in memory and gone with the run. Whatever a tool returns to a client is masked when it looks like a secret.

In the app, System → Keys and tokens holds the forge tokens (add a forge, or write the same name again to replace its token) and lists the other secrets by name, each with Delete; a secret in use is not deleted, and the page says by what. Engine logins are added in System → Accounts and costs (Engines and costs). A key or a token for an MCP server is one more secret in the vault, named where the server is defined (Tools and integrations); it reaches a run only when that server is switched on for it.

The app installs as a web app on the phone. In System → Preferences → Notifications on this device, turn them on and Send a test. On iPhone, add Kedalio to the Home Screen first: Safari shows notifications only for an installed web app.

Notifications come at four levels: info (an answer, a firing), ask (a request, a brief), serious (a serious request), and report (the morning report). Quiet hours and the global pause (both in Preferences) hold the first two; serious ones still arrive, without a sound during quiet hours; the report arrives at its hour, held only by the pause (Unattended runs).

Not built yet: recovering an account without its own ways in, a page for invitations, and unlocking the vault with your passkey.