For the complete documentation index optimized for AI agents, see llms.txt.This page documents the configuration files the Helix CLI reads and writes:
helix.toml— per-project configuration in your project root.~/.helix/config— user-global state, currently the selected workspace.~/.helix/credentials— Helix Cloud credentials written byhelix auth login.
helix.toml
helix init creates helix.toml in your project root. Everything the CLI knows about your project lives here.
[local.*] or [enterprise.*] instance is required. The CLI rejects an empty helix.toml.
[project]
| Key | Type | Required | Default | Description |
|---|---|---|---|---|
name | String | Yes | — | Project name. Used in the container name pattern helix-<project>-<instance>. |
id | String | No | — | Linked Helix Cloud project ID. Set by helix project switch. |
workspace_id | String | No | — | Linked Helix Cloud workspace ID. Set by helix project switch. |
container_runtime | docker | podman | No | docker | Runtime used to manage local containers. |
[local.<instance>]
One block per local instance. The instance name is the table key (e.g. [local.dev]).
| Key | Type | Default | Description |
|---|---|---|---|
port | Number | 6969 | Host port published to container port 8080. |
image | String | ghcr.io/helixdb/enterprise-dev | Container image used by helix start. |
tag | String | latest | Image tag. |
storage | memory | disk | memory | Local storage mode. disk uses a CLI-managed MinIO container and persistent volume. |
helix start <instance> --disk as a one-off disk-mode run without changing helix.toml.
[enterprise.<instance>]
One block per Helix Cloud instance. Most fields here are populated automatically by helix sync.
| Key | Type | Required | Default | Description |
|---|---|---|---|---|
cluster_id | String | Yes | — | Helix Cloud cluster ID. List clusters with helix cluster list. |
workspace_id | String | No | — | Workspace the cluster belongs to. |
project_id | String | No | — | Linked project ID. |
gateway_url | URL | No (required at query time) | — | Runtime gateway base URL. Populated by helix sync when available. |
query_auth_header | String | No | Authorization | HTTP header name used for query auth. |
query_auth_env | String | No | HELIX_API_KEY | Environment variable read by helix query for the auth header value. |
availability_mode | String | No | — | Cluster availability mode, returned by helix sync. |
gateway_node_type | String | No | — | Gateway node type, returned by helix sync. |
db_node_type | String | No | — | DB node type, returned by helix sync. |
gateway_url is missing, helix query <instance> fails with:
~/.helix/config
User-global configuration written by helix workspace switch.
~/.helix/credentials
Written by helix auth login. Plain key=value format:
helix auth logout. Never commit this file.
Environment variables
| Variable | Used by | Description |
|---|---|---|
HELIX_API_KEY (default) | helix query | Per-cluster Helix Cloud API key sent in the configured auth header. The variable name is configurable per-instance via query_auth_env. |
Troubleshooting
- Port conflict on
helix start— change the port in[local.<instance>] port, or passhelix start <instance> --port <port>to override for a single run. Missing instances—helix.tomlhas no[local.*]or[enterprise.*]blocks. Add one withhelix add.Authentication required— runhelix auth loginfor Helix Cloud commands.gateway_url is still missingafterhelix sync— the cloud-side configuration has not been published yet. Re-runhelix synclater, or setgateway_urlmanually under[enterprise.<instance>].
Next Steps
Local workflow
The local init/run/query loop
Troubleshooting
Solve common CLI issues