> ## Documentation Index
> Fetch the complete documentation index at: https://docs.atako.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Engines

> The runtime behind an agent: a general-purpose agent or a coding agent.

Every agent runs on an **engine** — the runtime that drives its reasoning, its tools, and the channels it can use. You pick it when you create the agent, in the field labeled **Harness**. Two engines are offered to every company:

| Engine | Kind of agent | Channels | Integrations |
| - | - | - | - |
| **Hermes** (default) | General-purpose agent | Chat, email, webhooks, cron, inter-agent | Every connector your company has connected |
| **opencode** | Coding agent | Chat, inter-agent (receive and reply only) | GitHub repositories only |

<Warning>
  The engine is **final**: it decides what the agent can do and can't be changed after creation. To switch, create a new agent.
</Warning>

What each engine allows is enforced by the platform, not only hidden in the interface: a channel or integration outside an engine's profile is refused.

## Hermes — general-purpose agent

Hermes is the default engine. A Hermes agent gets the full product: every [channel](/channels/overview), [integrations](/integrations/overview) with granular permissions, and scheduled tasks. Pick it for anything that isn't primarily writing code in a repository.

## opencode — coding agent

An opencode agent works on your code, in GitHub repositories you choose. Each piece of work runs in its own session and ends in a draft pull request.

### Requirements

* **At least one repository**, in `owner/repo` form. The agent only works in the repositories on its list; each session picks one. You can edit the list at any time from the agent's settings, but it can never be empty.
* **An active GitHub connection for your company.** A coding agent can't be created without one. See [Integrations overview](/integrations/overview).

### How it reaches GitHub

The agent never holds a GitHub credential of its own. When it needs to access one of its repositories, it asks Atako for your company's GitHub access token **for that repository only**. Atako checks that the repository is on the agent's list, hands the token over the agent's authenticated channel, and the agent passes it straight to git — it's **never stored on the agent's side**, nor written to logs. Each request, granted or denied, is recorded in the integration audit trail with the repository name, never the token itself.

GitHub is a repository perimeter for this engine, not a set of integration actions: an opencode agent doesn't get connector tools, and no other integration can be granted to it.

### Channels

| Channel | Available |
| - | - |
| [Chat](/guides/chat) | Yes |
| [Inter-agent](/channels/inter-agent) | Receive and reply only — it can't list other agents or start a new exchange |
| [Email](/channels/email), [Webhooks](/channels/webhooks), [Cron](/channels/cron) | No |

## Related

<CardGroup cols={2}>
  <Card title="Agents" icon="robot" href="/concepts/agents">
    What an agent is made of and how it behaves over time.
  </Card>

  <Card title="Channels overview" icon="tower-broadcast" href="/channels/overview">
    Every way to reach an agent.
  </Card>

  <Card title="Atako inference" icon="microchip" href="/concepts/atako-inference">
    Choosing the model behind an agent.
  </Card>

  <Card title="Glossary" icon="book" href="/concepts/glossary">
    Quick definitions of the terms used here.
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.