---
title: "Environment Variables & Storage"
sidebarTitle: "Environment"
description: "Configure process environment variables, custom API endpoints, network timeouts, and local credential storage locations used by the deeep CLI."
keywords: "deeep cli environment variables, custom endpoint config, keyring storage"
icon: "settings"
---

The CLI reads these variables from its process environment. Set them before running `deeep`.

| Variable | Default | Purpose |
| --- | --- | --- |
| `DEEEP_API_URL` | `https://api.deeepspace.com` | API base URL for GraphQL and token refresh. |
| `DEEEP_WEB_URL` | `https://app.deeepspace.com` | Web app base URL used for account signup guidance. |
| `DEEEP_CDN_URL` | `https://cloud.deeepspace.com` | Base URL used for CLI update downloads. |
| `DEEEP_TIMEOUT` | `180` | API read timeout in seconds; the connect timeout is 10 seconds. Use an integer. |
| `DEEEP_STORYBOOK_BUILD_TIMEOUT` | `600` | Storybook build timeout in seconds. Non-integer values fall back to the default. |
| `DEEEP_STORYBOOK_INSTALL_TIMEOUT` | `1800` | Dependency-install timeout in seconds during missing-command recovery. Non-integer values fall back to the default. |
| `DEEEP_MIXPANEL_TOKEN` | Empty | Optional Mixpanel token enabling sign-in telemetry. Empty disables the client. |

For example, allow 15 minutes for a Storybook build on macOS/Linux:

```bash
DEEEP_STORYBOOK_BUILD_TIMEOUT=900 deeep sync --storybook-hosting
```

In PowerShell:

```powershell
$env:DEEEP_STORYBOOK_BUILD_TIMEOUT = "900"
deeep sync --storybook-hosting
```

These timeouts do not configure static-file uploads. Storybook upload requests use a 10-second connection timeout and 120-second read timeout.

## Credentials and project files

Authentication stores the access token, refresh token, and email in the operating system's keyring through Python `keyring`, under the `deeep` service. `deeep logout` removes these entries. They are not stored in `deeep.json`. A working, accessible keyring backend is required, including in headless environments; the CLI has no token or noninteractive login flag.

`deeep.json` stores the project link and discovery settings. Configuration is read from the current working directory, so run project commands from the repository root where that file lives. Index paths are resolved relative to the Git root. Successful commands can rewrite `deeep.json`, including account commands; it is not exclusively written by `init`.

Commit `deeep.json` when the team should share the setup. The generated `.deeep.index.json` can be ignored by Git. Review [sync prerequisites](/guides/sync) for the source files that must be committed.

## Optional telemetry

With a nonempty `DEEEP_MIXPANEL_TOKEN`, the CLI uses the account email as the Mixpanel identifier, updates a CLI-user profile property, and reports a `Sign In` event containing the email, platform, and sign-in method. This telemetry is identifiable, not anonymous. It does not send source files or authentication tokens to Mixpanel.

To disable this client for a shell session:

```bash
export DEEEP_MIXPANEL_TOKEN=""
```

Component manifests and optional Storybook build uploads are separate from sign-in telemetry. See [Component index and sync data](/reference/component-index) and [Storybook hosting](/guides/storybook).
