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

# Environment Variables

> Manage environment variables in Paradime across four scopes — Workspace, Bolt, Code IDE, and Agent — to configure secrets and runtime settings.

export const Arcade = ({src, title}) => <div style={{
  position: 'relative',
  paddingBottom: 'calc(56.2225% + 41px)',
  height: 0,
  width: '100%'
}}>
    <iframe src={src} title={title} frameBorder="0" loading="lazy" allow="clipboard-write" allowFullScreen style={{
  position: 'absolute',
  top: 0,
  left: 0,
  width: '100%',
  height: '100%',
  colorScheme: 'light'
}} />
  </div>;

## Environment Variables

Paradime organises environment variables into **four scopes**, each surfaced as a tab under **Workspace Settings → Environment Variables**:

| Tab           | Who manages it       | Where it applies                                  |
| ------------- | -------------------- | ------------------------------------------------- |
| **Workspace** | Admins               | Overlays into Bolt schedules **and** the Code IDE |
| **Bolt**      | Admins               | All Bolt schedules in the workspace               |
| **Code IDE**  | Each user, their own | The user's own Code IDE session                   |
| **Agent**     | Admins               | Agent sessions (isolated scope)                   |

### Workspace

**Admin-managed** variables inherited by every user and every Bolt schedule in the workspace. Use this tab for values shared across the whole workspace — a region, a default profile path, non-secret connection metadata — instead of duplicating the same variable in the Bolt and Code IDE tabs.

* Variables here are **overlaid** into both Bolt schedule runs and the Code IDE. More specific scopes win on name collisions (see Precedence Hierarchy).
* Agent is a **separate scope** — the Workspace overlay does not apply.
* After a Workspace variable is added, updated, renamed or removed, Paradime automatically redeploys your Bolt schedules so running schedules pick up the change.

### Bolt

Workspace-wide variables available to **every Bolt schedule**. They are layered on top of Workspace variables, and a per-schedule override (UI or YAML) can override them in turn.

* Scoped to Bolt schedules (production jobs) only. **Not** visible in the Code IDE.
* Per-schedule overrides take precedence — set them in the [schedule's UI override column](/products/bolt/creating-schedules/schedules-environment-variables), or in [YAML using `env_overrides`.](/products/bolt/creating-schedules/schedules-as-code/configuration-reference#environment-variable-overrides) See the full ordering in Precedence Hierarchy.

### Code IDE

**Per-user** variables for the Code IDE when running dbt™, Python, and CLI commands. Each user manages their own set, visible only inside their own Code IDE session.

* Scoped to the Code IDE development environment only. They do not affect Bolt schedules or the Agent.
* Layered on top of Workspace variables — on name collision, the user's Code IDE value **wins** for that user's session.

***

### Agent

Workspace-scoped variables used by the Agent when it executes dbt™, Python, and CLI commands during agent sessions.

* **Isolated scope:** Workspace variables are **not** overlaid here, and Bolt / Code IDE variables are not visible to the agent. Set everything the agent needs directly in this tab.

***

## Adding Variables

The flow is the same for all four scopes:

1. From any page in the Paradime application, click **Workspace Settings**.
2. Navigate to **Workspaces → Environment Variables**.
3. Open the relevant tab: **Workspace**, **Bolt**, **Code IDE**, or **Agent**.
4. Click **Add New**.
5. Enter the **Key** name and **Value**, then click the Save icon (💾).

<Arcade src="https://demo.arcade.software/B8tFFITPOZL8JVMYGpF4?embed&embed_mobile=tab&embed_desktop=inline&show_copy_link=true" title="Environment Variables" />

**Validation rules**

* Key must match `^[a-zA-Z_][a-zA-Z0-9_]*$` (letters, digits and underscores; cannot start with a digit).
* Value cannot contain whitespace.

## Precedence Hierarchy

When the same variable name is set in more than one scope, the **most specific** scope wins. The diagram shows how each runtime context resolves its effective environment:

Higher in the stack = higher precedence. The bottom layer is overlaid first; each layer above can override matching keys from the layers below it.

<Frame>
  <img src="https://mintcdn.com/paradime-docs/KJcB9NhKTmxLMoZP/images/image-115.png?fit=max&auto=format&n=KJcB9NhKTmxLMoZP&q=85&s=54714cdeecf49ab3edc618ce11426379" alt="" width="1584" height="580" data-path="images/image-115.png" />
</Frame>

<Info>
  The **Agent** scope is **not** part of this stack. It is an isolated scope — Workspace variables are not overlaid onto it, and Bolt / Code IDE variables are not visible to the agent. The agent sees only the variables set in the **Agent** tab.
</Info>

**Merge rules in plain English**

* **Bolt schedule runs** — Workspace is overlaid first, then Bolt keys override matching Workspace keys, then **Schedule-level overrides** (set per schedule in the UI, or in YAML via `env_overrides`) override everything else.
* **Code IDE** — Workspace is overlaid first, then the user's Code IDE variables override matching Workspace keys. Bolt variables and Schedule-level overrides do **not** apply in the IDE.
* **Agent** — uses only the Agent variables. The Workspace overlay does **not** apply, and Bolt / Code IDE variables are not visible to the agent.

<Info>
  Use **Workspace** for values genuinely shared across users and Bolt runs (e.g. a default region, a shared profile path). Put production-only values in **Bolt**, developer-specific values in **Code IDE**, and credentials the Agent needs in **Agent**.
</Info>


## Related topics

- [Agent Environment Variables](/products/settings/environment-variables/dinoai-background-agent-environment-variables.md)
- [Environments](/products/settings/connections/index.md)
- [Bolt Environment Variables](/products/settings/environment-variables/bolt-schedule-env-variables.md)
- [Environment Variables in Commands](/products/bolt/creating-schedules/environment-variables-in-commands.md)
- [Environment Variable Overrides](/products/bolt/creating-schedules/schedules-environment-variables.md)
