Centidor Documentation

Connected Hosts and Agent Sessions

Securely bind a local Project to a Claude Code, Codex, or Kimi Code Agent Session.

Centidor organizes Agent Gateway resources into four layers:

  • Agent Definition: Reusable Claude Code, Codex, or Kimi Code configuration.
  • Agent Session: A long-lived Session bound to a Definition, Project, and execution environment.
  • Run: One Chat turn or independent task sent within a Session.
  • Connected Host / Container: The environment that actually executes the Agent CLI.

Register a Local Host

Create a Connected Host in the Console, copy the one-time connection command, and run it on the target machine. After centidor-hostd connects, it proactively reports the operating system, CPU, memory, and installed Coding Agent Driver versions and capabilities.

Allow Access to a Local Project

The local absolute path remains only in the Host runtime configuration and is never uploaded to Agent Gateway:

centidor project add /path/to/project --name "My Project"
centidor project list

The Host runtime reports only a random binding ID and display name. Select that binding when creating an Agent Session. Agent Gateway cannot use a RunSpec to select any other local path.

Remove the authorization with:

centidor project remove <binding-id>

Select the Model Source

An Agent Definition supports two model sources:

  • Machine default: Available only for a Connected Host. The Host runtime does not pass arbitrary model arguments or override authentication environment variables; the Driver uses the machine's existing configuration.
  • Centidor AI Gateway: Select a public model available to the current Project. When dispatching a Run, Agent Gateway resolves a controlled credential binding and injects credentials only into the Agent CLI subprocess. Credentials never enter the browser, Workspace, Agent configuration, or logs.

Production requires the same AGENT_MODEL_BASE_URL and AGENT_MODEL_CREDENTIALS Secrets on Agent Gateway Server and Sandbox Bridge. Model Gateway Keys should be revocable and follow least privilege.

Bind Skills

An Agent Definition can select up to 32 compatible immutable Skill revisions. A new Session pins those revisions in its Session snapshot. Later changes to the Definition do not affect existing Sessions. Before a Run starts, the Host runtime validates and materializes the pinned Skill bundles.

A Cloudflare Container does not receive complete Skill files through the Run API. Imported immutable artifacts are stored in private R2, and the Sandbox mounts the current Session's pinned revision prefix as read-only. A Connected Host still validates and materializes the pinned bundle locally. Neither target reads from a third-party Skill Hub at runtime.

stdio Messages and Controls

Normal messages appended during an active Run first enter a bounded FIFO in the Host runtime. Each message starts the next turn in order after the current turn completes; it is not written as a mid-turn steering message. Interruptions and approvals use a separate high-priority control channel and do not wait behind normal messages. Text such as /stop remains ordinary Agent input. The Console converts the stop action into a structured, lease-fenced run.cancel control message.

Use centidor setup --input-queue-depth 5 to set the local input queue depth for each active Run. The supported range is 1–32. Existing configurations without this field default to 5. A full queue explicitly terminates the Run instead of silently dropping messages.

Create a Session and Dispatch a Task

Open an Agent page, select an Agent Definition, and choose Create Session. Then select the Connected Host and Project. The execution target cannot be changed after the Session is created. You can continue the conversation in Chat or dispatch a complete instruction as a Run for the Agent to execute.

On this page