# The hlix coder

**`hlix` is our own coder, Hlix Code, and the one a task runs on when it names no other.** It is the same Hlix Code you run in your terminal. For a task, it runs inside the task's own sandbox exactly like [the coders you bring](/coders/external-acp/), on the task's own branch.

It needs no coder credential of its own. Its model calls go through hlix on a short-lived key created for the task, to the model set for the `worker` role in your Workspace.

## Prerequisites

- A project in your Workspace. Its [Coding Workspace](/concepts/coding-workspace/) is prepared for you before the first task.
- A model for the `worker` role, or the default. See [Models & provider keys](/coders/models-and-keys/).
- Nothing else. A task that names no coder already runs on Hlix Code.

## What one task looks like

```text
sandbox from the saved environment → setup → Hlix Code's turn → commit → verify
                                                     ↑                         │
                                                     └────── one repair ───────┘
                                                                               ↓
                                                                      push the task branch
```

hlix starts a sandbox for the task from the project's saved environment, checks out the task's branch, and provides the task's brief, secrets and key as files — never on a command line. It runs the repository's setup, then starts Hlix Code in the checkout with the brief. When a task returns from review, the reviewer's comments are part of the brief, and Hlix Code continues from the work already on the branch.

## After the turn

| Step | What happens |
| --- | --- |
| Commit | hlix commits what the turn left, always excluding the environment file hlix writes and every protected file |
| Verify | Your [verification command](/coders/verification/) runs on that commit, with one repair turn if it fails |
| Push | The task branch is pushed, a failing check included, so review sees the evidence and the next round continues from it |

While Hlix Code works, its progress is saved to the task branch about once a minute. A task that is interrupted continues from that branch on its next run instead of starting over.

### Credentials stay off the command line

The task key and the repository credential reach the sandbox only as files. They are never passed as arguments or exported into a command's environment. The task key is limited to one project, expires with the task, and is revoked when the task ends.

## One time limit per run

A run has one time limit — **30 minutes** unless the task sets its own. The coder's turn, verification and the repair turn all share it. Your Workspace's spending cap limits the cost separately: every model call is metered to the task.

## What you can watch, and what you keep

- The coder's progress streams live while the task runs.
- Every turn's report is kept, including the repair turn's.
- The branch is the record: what the coder changed is in its commits, and review reads that exact commit.

See [The dashboard](/running/dashboard/) for where these appear.

## Common questions

**Do I have to choose it?** No. `hlix` is the system default, so a task with no coder set anywhere runs on it.

**Which model does it use?** The one set for the `worker` role in **Settings → AI models**. It needs no coder API key of its own.

**How is it different from an external coder?** It is our own coder, and it is the default. It runs exactly like the others — in the task's sandbox, with its models through hlix — so switching between it and an external coder changes who writes the code and nothing else.

## If a task on the hlix coder fails

- **The setup command failed.** The repository's setup failed before the coder started. Fix the command on the repository and run the task again.
- **The task keeps returning from review.** Read the review comments and the verification output on the task; each round continues on the same branch.
- **A provider `401` in the task's output.** The Workspace has no usable key for its `worker` model's provider. Check **Settings → AI models**.

## Where to go next

| If you want to… | Read |
| --- | --- |
| Run another coder instead | [External coders](/coders/external-acp/) |
| Change which coder a project uses | [Connect your agents](/guides/connect-agents/#how-a-harness-is-chosen) |
| Set the `worker` model | [Models & provider keys](/coders/models-and-keys/) |
| Understand the sandbox and what carries over between tasks | [The Coding Workspace](/concepts/coding-workspace/) |

## Next steps

[Verification](/coders/verification/)
  [External coders](/coders/external-acp/)
  [Models & provider keys](/coders/models-and-keys/)
  [The Coding Workspace](/concepts/coding-workspace/)