> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.islo.dev/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.islo.dev/_mcp/server.

# Factory model

> How factories scope Lines, Agents, Machines, and runs.

Factories are the organizing unit of Islo. A Factory is a workspace for repeatable engineering work: it contains Lines, reusable Agents, and Machines. Lines use Agents in the same Factory; each Agent has instructions and an assigned Machine configuration. A Line run belongs to the Line's Factory and records stage results and events.

Integrations connect your team's tools to this work. A Line can receive an integration event, and its Agents can use connected services through [Gateways](/cli/gateways) with access policies and credential injection. Connections have team or personal scope as described in [Authentication](/cli/authentication).

[Sandboxes](/concepts/sandbox-lifecycle) are runtime infrastructure used to execute Machine environments. Start with the Factory and its workflow when configuring work; use the advanced references when you need to manage runtime details.

> **Tip**
>
> You can create and operate factory resources in the [Islo dashboard](https://app.islo.dev) or with the CLI. The CLI matches the public API; Fern examples use the CLI because those commands are easy to validate in tests.

## Enter a factory

### In the dashboard

1. Sign in at [app.islo.dev](https://app.islo.dev).
2. Open the [factories list](https://app.islo.dev/factories) to see every factory in your tenant. The sidebar's **factory** area opens the tenant's default factory, independent of any local CLI project selection.
3. Use that factory's **Overview**, **Machines**, **Agents**, **Lines**, and **Runs** pages to manage work. The dashboard Lines page is `https://app.islo.dev/factories/{factory_key}/lines` for a selected factory or [the default factory's Lines page](https://app.islo.dev/factory/lines).

Connect integrations (GitHub, Slack, and others) from **Manage → Integrations** in the [dashboard](https://app.islo.dev/integrations) before a Line needs them. To @ Islo in those tools, see [Delegations](/operate/delegations). For Manager and Delegator roles, see [Manager and Delegator](/concepts/manager).

### With the CLI

```bash
islo factory list
islo factory create my-work
islo factory set my-work --project
islo factory current
```

`set --project` saves a project selection in the nearest `islo.yaml`. Use `--factory <key-or-uuid>` on a factory or Knowledge command for a one-command override. If you do not select a factory, the CLI resolves the default factory. The [CLI reference](/cli/overview) follows that path.

## API scopes

The API exposes default-factory paths such as `GET /factory/lines` and `GET /factory/line-runs/{run_id}`. Scoped paths use a factory identifier, such as `GET /factories/{factory_id}/lines` and `GET /factories/{factory_id}/line-runs/{run_id}`. Other scoped collections include `/factories/{factory}/agents` and `/factories/{factory}/machines`. Choose the scope you mean; do not assume that a default path selects the factory shown in another client.

The [API reference](/api-reference) lists request and response schemas. Create or select a factory before you [prepare a Machine](/concepts/machines) or [deploy a Line](/concepts/lines).