# External coders

**An external coder is a coding CLI you already use, run by hlix in your project's Coding Workspace instead of on your laptop.** Claude Code, Codex, Cursor Agent, OpenCode, Goose, Qwen Code and Pi run this way. Everything around the coder — the sandbox, verification, review evidence, the audit trail — is identical to [the hlix coder](/coders/native-hlix/). Only the program that writes the change differs.

If your team's standards, prompts and habits are built around one of these coders, pin it and keep them.

## Prerequisites

- A project in your Workspace with a [Coding Workspace](/concepts/coding-workspace/).
- A [provider key](/coders/models-and-keys/) for your Workspace's coder model. The coder itself holds none: its model calls go through hlix on the task's own key. Cursor Agent is the exception and uses a Cursor key.
- A coder pinned for the task, the project or the Workspace — see [How a harness is chosen](/guides/connect-agents/#how-a-harness-is-chosen). Without one, tasks run on `hlix`.

## How a task runs

The coder runs inside the task's own sandbox, next to the code it edits.

| Step | What happens |
| --- | --- |
| Configure | The task's configuration is written into the sandbox as a file — never on a command line |
| Check out | The task's branch is checked out in a sandbox started from the project's saved environment |
| Code | The coder CLI works on the brief in that checkout |
| Commit | The work is committed, whatever the outcome |
| Verify | Verification runs in the same checkout, with one repair turn if it fails |
| Push | The task branch is pushed, a failing check included, as evidence for review |

**The configuration never reaches a command line:** A task's configuration carries repository credentials and project secrets, so it is written as a file the task owns rather than passed as an argument. Arguments are visible to other processes and kept in shell history; that file is not.

## Each task is isolated

Every task has its own coder configuration, and memory does not carry over between runs. Two tasks running at the same time in one project cannot read each other's coder state, and an earlier task cannot influence a later one.

Each task has its own checkout, branched off the cycle's base, in its own sandbox started from the project's saved environment. See [The Coding Workspace](/concepts/coding-workspace/).

Work is kept whatever the outcome. A coder that was cancelled or ran out of time still leaves a committed branch you can inspect.

## Available coders

| Coder | Available | Model |
| --- | --- | --- |
| Claude Code | Yes | Your Workspace's coder model |
| Codex | Yes | Your Workspace's coder model |
| Cursor Agent | Yes | Fixed by the CLI |
| OpenCode | Yes | Your Workspace's coder model |
| Goose | Yes | Your Workspace's coder model |
| Qwen Code | Yes | Your Workspace's coder model |
| Pi | Yes | Your Workspace's coder model |
| OpenAI Agents SDK | Not yet | — |
| Aider | Not yet | — |

A coder that is not yet available is **refused, never substituted**. A preference naming one is rejected when you try to save it, and a task that would run on one fails before it starts, naming the setting that chose it. Running a coder you did not pick would change who wrote your code with nothing in the output saying so.

## Where credentials come from

No Workspace provider key enters the sandbox.

- **Claude Code**, **Codex**, **OpenCode**, **Goose**, **Qwen Code** and **Pi** — like the hlix coder — call models through hlix on a short-lived key created for the task and revoked when it ends. hlix calls the task's model with your Workspace's [key](/coders/models-and-keys/) and meters every call to the task. Any model runs in any of these coders.
- **Cursor Agent** signs in with a Cursor key, which is not one of your Workspace provider keys.

A missing key shows up as an authentication failure inside the task. hlix does not substitute another key.

## The same verification

External coders answer to [verification](/coders/verification/) exactly as the hlix coder does: hlix commits what the coder left, verifies that commit, and gives one repair turn on a failure. Work that still fails is pushed and goes to review, which sees the result on that exact commit.

## Common questions

**Can I run a different coder per project?** Yes. A project setting takes precedence over the Workspace setting — see [How a harness is chosen](/guides/connect-agents/#how-a-harness-is-chosen).

**Does an external coder get less context than Hlix Code?** No. It gets the same brief, the same checkout, the same project skills and the same review feedback on a revision.

**Can I watch it work?** Yes. Its progress streams live, as it does for the hlix coder.

**How long can a task run?** 30 minutes by default, covering the coder and verification together.

## If an external coder task does not start or finish

- **``Cannot run this task: this project's harness preference names the harness "aider", which has no adapter in this deployment. Available harnesses: claude-code, codex, cursor-agent, opencode, goose, qwen-code, pi, hlix. Change or clear that setting and run the task again.``** Change the setting the message names.
- **The coder exits immediately with an authentication error.** The Workspace has no usable key for its coder model's provider, or, for Cursor Agent, no Cursor key. See [Models & provider keys](/coders/models-and-keys/).
- **A validation error saving a coder preference.** Only an available coder can be saved.
- **The task failed but its branch has commits.** Expected. Work is committed and pushed whatever the outcome, so you can inspect it and the next run continues from it.
- **The task ran out of time.** The coder and verification share one time limit. Split the work into smaller tasks.
- **`403` changing the Workspace-wide coder.** ``Changing the workspace harness is restricted to owners and admins`` — the setting applies to every project, so it requires an administrator.

## Where to go next

| If you want to… | Read |
| --- | --- |
| Pin a coder for a project or the Workspace | [Connect your agents](/guides/connect-agents/#pin-a-harness) |
| Understand the check every coder answers to | [Verification](/coders/verification/) |
| Supply the keys these coders use | [Models & provider keys](/coders/models-and-keys/) |
| See the environment they run in | [The Coding Workspace](/concepts/coding-workspace/) |

## Next steps

[Connect your agents](/guides/connect-agents/)
  [The hlix coder](/coders/native-hlix/)
  [Verification](/coders/verification/)
  [The Coding Workspace](/concepts/coding-workspace/)