Codeman and Open WebUI Computer
Each machine in your fleet can offer Codeman, Open WebUI Computer, or
both. They do different jobs, and each shows up in the dashboard as its own
entry, so you can pick per machine. cloudagentfleet init asks which you want
and installs them.
At a glance#
| Codeman | Open WebUI Computer | |
|---|---|---|
| What it is | Agent sessions in terminals | A full workspace in the browser |
| You can | Start a session, watch its output live, type into it | Browse files, edit code, use a terminal, preview running apps, chat with coding agents |
| Where you use it | In the dashboard's session view | Inside the dashboard, signed in for you |
| Folder limits | The Hub only starts sessions in the folders you approved | None: anyone who can open it has the machine's full access |
| On Windows | Runs in WSL | Runs natively, so it sees your Windows folders |
| Made by | Ark0N and contributors, MIT | Open WebUI, Inc., its own license |
Which should I pick?#
- Mostly run agents and check on them? Codeman. It is light, and the dashboard keeps all your sessions in one list.
- Want to read and change the code, preview what an agent built, or talk to an agent in a chat? Open WebUI Computer.
- Both? Pick both. The machine then has two entries in the sidebar, and you use whichever fits the moment.
Codeman#
Codeman keeps coding agents running in persistent terminal sessions. In the dashboard you:
- Pick the machine and choose Start a session.
- Choose a workspace (one of the approved folders), an agent (Claude Code, Cursor, or a plain shell), and optionally a name.
- Watch the terminal live and type into it. Sessions keep running if you close the page, and are listed under the machine and in Recent.
The Hub only starts sessions inside the folders you approved when you set the machine up, so a stray path cannot be opened by mistake.
If you enrolled a Codeman directly over your tailnet (instead of through the Worker), Open Codeman UI shows Codeman's own interface in the dashboard. A Codeman reached through the Worker does not have its own page; use the dashboard's session view.
Open WebUI Computer#
Open WebUI Computer (often shortened to cptr) is a workspace you use in the browser: a file browser and editor, terminals, a Browser tab for previewing apps running on the machine, and a chat where Claude Code, Codex, Cursor, and other agents work on your files.
In the dashboard, choose the machine and Open Open WebUI Computer UI. It
opens inside the dashboard, and you are already signed in: the Worker created
an account for the Hub when cptr first started and keeps its password on that
machine; the Hub only passes along a session. If you set up cptr yourself, put
its account in ~/.cloudagentfleet/cptr-credentials.json on that machine, as
{"username": "...", "password": "..."}.
Good to know:
It is not limited to your approved folders. The Hub does not control what you do inside it, and a signed-in user has full shell access on that machine. The machine's page says so.
Agent chat needs the agent installed on that machine and signed in there (
claude,agent login).initcan install them; the logins stay yours.Models. Codex and Cursor models are read from the agents themselves (Cursor lists none until
agent login). Open WebUI Computer has an older built-in list of Claude models, so each time the Worker starts (or finds it running) it adds the current Claude Code models and sets a default. Models and a default you chose are kept. SetCLOUDAGENTFLEET_CPTR_SYNC_MODELS=falseto leave its lists alone.Your own and local models. Put them in
~/.cloudagentfleet/cptr-models.jsonon that machine:{ "claude_code": { "models": ["claude-..."], "default": "claude-..." }, "codex": { "models": ["my-codex-model"] }, "connections": [ { "name": "Ollama", "base_url": "http://127.0.0.1:11434/v1", "prefix_id": "ollama" } ] }An agent entry replaces the built-in list for Claude Code and adds ids to any other agent. A connection is any OpenAI-compatible server (Ollama, LM Studio, llama.cpp, vLLM;
"provider": "anthropic"for an Anthropic-compatible one) and gives Open WebUI Computer's plain chat those models as<prefix_id>/<model>. Leave outmodelsand it uses whatever the server has: the Worker asks again every few minutes, so a model you pull or remove shows up without a restart. Listmodelsonly to show a subset.api_keyis optional (servers like Ollama ignore it; a placeholder is sent because Open WebUI Computer cannot call a server with an empty key). Edits to the file are read when the Worker starts.On Windows, its automatic list of running ports does not work (it needs a tool newer Windows 11 builds no longer include). Open a running app in its Browser tab at
http://localhost:<port>instead.Its interface is shown unmodified. Its license does not allow changing or covering its branding, and company use falls under Open WebUI's terms.
How the Hub reaches them#
| Through the Worker (default) | Over your tailnet | |
|---|---|---|
| How | The Worker connects out to the Hub and carries the traffic | The Hub connects to a URL you publish with Tailscale Serve |
| Open ports on the machine | None | One, on your tailnet only |
| Set up by | cloudagentfleet init |
cloudagentfleet enroll tailscale-url … (CLI and enrollment) |
| Open WebUI Computer sign-in | Automatic | You sign in to it |
Most setups use the Worker. Use the tailnet option when a machine already publishes its own Codeman or Open WebUI Computer, or you do not want to run a Worker there.
Coding agents#
Claude Code CLI and Cursor Agent CLI are optional. Both backends launch them,
so install them on each machine that should use them (init offers to) and
sign in on that machine. Cloud Agent Fleet never sees your provider
credentials.
More#
- Getting started
- Security: what each backend can reach and how the Hub keeps them isolated
- Credits: licenses and who makes what
- For people building a new backend: the design notes