AgenticKode executes all task work on remote workspace servers via SSH. This keeps AI agent execution isolated from the main application and allows scaling across multiple machines.
AgenticKode (backend/worker)
│
├── SSH → Workspace Server A
│ ├── Worker user (non-root)
│ ├── Claude CLI agent
│ └── Cloned repositories
│
└── SSH → Workspace Server B
├── Worker user (non-root)
├── Ollama agent
└── Cloned repositories
All workspace operations go through the SSHService. The worker never uses local subprocess calls for task execution.
Navigate to Workspace Servers and click Add Server.
| Field | Description |
|---|---|
| Name | Display name for the server |
| Host | IP address or hostname |
| Port | SSH port (default: 22) |
| SSH Key | Select an existing key pair or generate one |
Manage SSH key pairs from Settings > SSH Keys:
The public key must be added to the server's ~/.ssh/authorized_keys for the user AgenticKode connects as (typically root for initial setup).
After adding a server:
AgenticKode creates a dedicated non-root user (agentickode-worker by default) on each workspace server:
The worker user needs SSH access to your git repositories. From the server's Git Access panel:
~/.ssh/ directoryAgenticKode automatically discovers which AI agents are available on each server.
The agent discovery service checks for:
claude binary in standard pathscodex in $HOME/.local/bin and standard pathsopencode in $HOME/.local/bin and standard pathsDiscovery results appear on the server's Agents tab.
When a run starts, the ensure_agent_ready() helper in the worker pipeline:
readlink -f to get the real 225MB ELF binarycheck_status()You can also manually trigger agent installation from the Agent Management panel on the server page.
From the server's management panel:
AgenticKode can discover repositories already cloned on a workspace server. The Projects tab on the server page shows:
You can add multiple workspace servers for:
When creating a run, select which workspace server to use. Workflow templates can also specify a preferred server.
ssh -p PORT user@hostauthorized_keysThree knobs let you tailor the workspace per project or per step:
ProjectConfig.local_pathAbsolute path to an existing local git checkout. When set, workflows
skip clone/fetch entirely and operate on that folder. The working tree
must be clean — uncommitted changes block the run before any
side-effect with a LocalPathError. Worktree isolation is auto-forced
so concurrent runs on the same project don't collide.
Useful when you're running AgenticKode against your dev machine and want the agent to work on the repo you already have checked out (matching UID/file ownership, etc.).
ProjectConfig.worker_user_overridePer-project OS user. Overrides the workspace server's worker_user.
Validated against a POSIX-safe pattern so it can flow safely into
runuser / chown invocations.
step.params.run_asPer-step worker user override. Wins over the project override for that specific step.
Precedence: step.params.run_as > ProjectConfig.worker_user_override >
WorkspaceServer.worker_user > backend process user.
Settings → Workspace → Default workspace root for new servers sets a
platform-wide default that new WorkspaceServer rows inherit when no
workspace_root is supplied at create time. Existing servers are not
modified.