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

# Profiles

> Define which shell, environment, and starting directory each new local terminal tab should use.

A **profile** is a reusable configuration for a local shell. When you open a new tab, Rumus uses your default profile unless you pick a different one from the chevron menu next to the **+** button. Profiles are configured at **Settings → Profiles**.

## Built-in vs custom profiles

The Profiles page is split in two:

* **Built-in profiles** — auto-detected from your system. On macOS / Linux that means the shells listed in `/etc/shells` (bash, zsh, fish, sh, …). On Windows it covers PowerShell, cmd, Git Bash, and every installed **WSL distribution** (each WSL distro shows up as its own profile).
* **Custom profiles** — anything you've added by hand.

Built-in profiles update themselves when your system changes (e.g. installing a new WSL distro). Hit **Refresh built-in profiles** if you don't see one you expect.

## What a profile contains

| Field                          | What it does                                                                                            |
| ------------------------------ | ------------------------------------------------------------------------------------------------------- |
| **Icon** & **Name**            | How the profile shows up in the chevron menu and on tabs                                                |
| **Command line**               | The shell binary to launch (`/bin/zsh`, `pwsh`, `wsl.exe`, …)                                           |
| **Arguments**                  | Extra args passed to the shell                                                                          |
| **Environment variables**      | Key/value pairs added to the spawned shell's environment                                                |
| **Working directory**          | The starting directory for new tabs that use this profile                                               |
| **Filesystem base** (WSL only) | Anchors the profile to a specific WSL distro's filesystem                                               |
| **Shell integration**          | Toggle to inject [shell-integration markers](/docs/terminal/shell-integration) — on by default for built-ins |

## Set the default profile

The default profile is what new tabs use when you click the bare **+** button (without picking from the dropdown).

* In **Settings → Profiles**, find the profile you want.
* Click **Set as default** (or use the small "default" toggle on the profile row).

You can change the default any time. New tabs honor the new default immediately; existing tabs are unaffected.

## Add a custom profile

<Steps>
  <Step title="Open the profile editor">
    Go to **Settings → Profiles** and click **Add profile** (or **New custom profile**).
  </Step>

  <Step title="Fill in the basics">
    Give the profile a name and pick an icon. Set the **command line** to the shell binary you want — full path is recommended. Add any **arguments** the shell needs.
  </Step>

  <Step title="Optional: env, cwd, integration">
    * Add environment variables in the **Environment** section.
    * Set a **Working directory** if you want every tab using this profile to start somewhere specific.
    * Toggle **Shell integration** on if your shell supports the prompt hooks Rumus injects.
  </Step>

  <Step title="Save">
    Save the profile. It now appears in the chevron menu next to **+**, and you can mark it as default if you want new tabs to use it.
  </Step>
</Steps>

## Per-profile environment

Environment variables set on a profile are merged on top of your inherited environment. Useful when:

* A specific tool (e.g. a development shell) wants a custom `PATH` or `NODE_ENV`.
* You want to mark certain tabs as "danger" with an environment variable that your prompt reads.
* You're running a containerized shell that needs flags passed in via env.

Variables are local to the spawned shell and its children — they don't leak back into the rest of the OS.

## WSL specifics (Windows)

Each installed WSL distribution becomes its own built-in profile. They:

* Auto-update when you install or remove a WSL distro (after a refresh).
* Use the WSL filesystem as the default working directory.
* Honor your default WSL user.
* Work with shell integration when running bash, zsh, or fish inside the distro.

If you have multiple WSL distros and want one to be your default profile for **+**, just **Set as default** on it.

## Profiles aren't synced

Profiles are **device-specific**. They're not part of cloud sync, since the available shells (and their paths) differ between machines. If you want the same profile on a second machine, recreate it there.

This is intentional — pushing a profile that points at `/Users/alice/.local/zsh` from your Mac onto a Windows laptop wouldn't make sense.

## Next steps

<CardGroup cols={2}>
  <Card title="Shell integration" icon="terminal" href="/docs/terminal/shell-integration">
    What the per-profile shell-integration toggle actually does.
  </Card>

  <Card title="Tabs" icon="window-maximize" href="/docs/terminal/tabs">
    Use the chevron next to + to open a tab with any profile.
  </Card>
</CardGroup>
