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

# Optional LLM setup and Daytona volumes

## Skip LLM setup during install

Fabro installs no longer require LLM credentials up front. The web installer has an explicit "Skip LLM setup" action, and the CLI supports the same flow for non-interactive installs.

```bash theme={"languages":{"custom":["/languages/dot.json","/languages/fabro.json"]}}
fabro install --non-interactive --skip-llm --github-strategy token --github-username acme-dev
```

Skipping marks the LLM step complete without writing provider secrets. Later LLM-dependent workflows still fail with the normal provider-not-configured behavior until credentials are added.

## Daytona volume mounts

Fabro-managed Daytona sandboxes can now attach existing Daytona volumes from run configuration. This gives workflows a provider-owned place for persistent state such as credentials, caches, datasets, or other files that should survive ephemeral sandbox lifecycles.

```toml theme={"languages":{"custom":["/languages/dot.json","/languages/fabro.json"]}}
[[run.sandbox.daytona.volumes]]
volume_id = "vol_123"
mount_path = "/home/daytona/.cache"
```

Fabro does not create or manage the volume lifecycle. Create the volume in Daytona first, then reference its `volume_id` from workflow, project, or user run settings.

## More

<Accordion title="API">
  * `PUT /install/llm` now accepts an empty provider list to record an intentionally skipped LLM step
  * `/install/finish` now accepts completed installs with no LLM vault credentials
  * Sandbox runtime layout metadata now records provider workspace, repository root, primary repository path, and workspace symlink information
</Accordion>

<Accordion title="CLI">
  * Added non-interactive `fabro install --skip-llm`
  * Interactive `fabro install` now asks whether to configure LLM providers before provider selection
</Accordion>

<Accordion title="Workflows">
  * Docker and Daytona clone primary GitHub repositories into provider-owned repository roots and keep execution under the workspace symlink
  * Added `[[run.sandbox.daytona.volumes]]` passthrough for attaching pre-created Daytona volumes
</Accordion>

<Accordion title="Improvements">
  * Added Venice as a built-in catalog provider with OpenAI-compatible routing
  * Preflight now skips LLM client initialization for workflows with no LLM nodes
  * `/models` listing now paginates before cloning returned model rows
</Accordion>
