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

# Profiles

> Manage multiple CLI profiles for different workspaces, branches, and environments

export const BrowserFrame = props => {
  const {url = "xano.run", maxWidth = 820, className = "", lightSrc, darkSrc, alt = "", children} = props || ({});
  const style = typeof maxWidth === "number" ? {
    maxWidth: `${maxWidth}px`,
    margin: "16px 0"
  } : {
    maxWidth,
    margin: "16px 0"
  };
  const hasSwapImages = Boolean(lightSrc && darkSrc);
  return <div className={`browser-frame ${className}`.trim()} style={style}>
      <div className="browser-frame__top">
        <div className="browser-frame__controls" aria-hidden="true">
          <span className="browser-frame__dot browser-frame__dot--red" />
          <span className="browser-frame__dot browser-frame__dot--yellow" />
          <span className="browser-frame__dot browser-frame__dot--green" />
        </div>
        <div className="browser-frame__address">{url}</div>
      </div>

      <div className="browser-frame__body">
        {hasSwapImages ? <>
            <img className="browser-frame__img--light" src={lightSrc} alt={alt} />
            <img className="browser-frame__img--dark" src={darkSrc} alt={alt} />
          </> : children}
      </div>
    </div>;
};

Profiles let you store multiple configurations and quickly switch between them. Each profile saves an access token, instance, workspace, and branch — so you can target different environments without re-authenticating.

## Profile Wizard

The profile wizard provides a step-by-step, interactive setup using an access token instead of browser-based login. This is useful for CI/CD environments, self-hosted instances, or when you prefer token-based auth.

<BrowserFrame url="Terminal">
  ```bash theme={null}
  xano profile wizard
  ```
</BrowserFrame>

<Steps>
  <Step title="Enter your access token">
    You'll be prompted to enter your Xano access token (input is hidden for security).

    You can generate an access token from your Xano account settings under **API Access**.
  </Step>

  <Step title="Select your instance">
    The CLI fetches all instances associated with your account. Choose the one you want to work with.

    ```
    ? Select an instance:
    ❯ My Production Instance (us-east-1)
      My Staging Instance (eu-west-1)
    ```
  </Step>

  <Step title="Name your profile">
    Give this profile a name. This lets you maintain multiple profiles for different environments.

    ```
    ? Profile name: (default)
    ```
  </Step>

  <Step title="Select a workspace">
    Choose a workspace from your instance, or skip to configure later.

    ```
    ? Select a workspace (or skip to use default):
    ❯ (Skip workspace)
      My App Backend (123)
      Marketing Site API (456)
    ```
  </Step>

  <Step title="Select a branch">
    If you selected a workspace and it has more than one branch, you'll be asked to choose a branch. Skip to use the live branch.

    ```
    ? Select a branch:
    ❯ (Skip and use live branch)
      v1
      v2-development
    ```
  </Step>
</Steps>

The profile is saved and set as your default. You can create additional profiles to quickly switch between workspaces, branches, or instances.

### Wizard for Other Environments

For self-hosted or beta environments, pass the `-o` flag:

<BrowserFrame url="Terminal">
  ```bash theme={null}
  xano profile wizard -o https://my-xano.my-domain.com
  ```
</BrowserFrame>

You can also pre-set the profile name:

<BrowserFrame url="Terminal">
  ```bash theme={null}
  xano profile wizard -n production -o https://my-xano.my-domain.com
  ```
</BrowserFrame>

If your instance uses a self-signed TLS certificate, add `--insecure` (`-k`):

<BrowserFrame url="Terminal">
  ```bash theme={null}
  xano profile wizard -o https://my-xano.my-domain.com --insecure
  ```
</BrowserFrame>

***

## List Profiles

<BrowserFrame url="Terminal">
  ```bash theme={null}
  xano profile list
  ```
</BrowserFrame>

Add `-d` for full details including origin URLs, workspace IDs, and masked tokens:

<BrowserFrame url="Terminal">
  ```bash theme={null}
  xano profile list -d
  ```
</BrowserFrame>

***

## Create a Profile Manually

For scripting or CI/CD, create a profile directly without the interactive wizard:

<BrowserFrame url="Terminal">
  ```bash theme={null}
  xano profile create my-profile \
    -t YOUR_ACCESS_TOKEN \
    -i https://your-instance.xano.io \
    -w WORKSPACE_ID \
    -b BRANCH_LABEL \
    --default
  ```
</BrowserFrame>

| Flag             | Description                                               |
| ---------------- | --------------------------------------------------------- |
| `-t`             | Access token (required)                                   |
| `-i`             | Instance origin URL (required)                            |
| `-a`             | Account origin URL (for self-hosted)                      |
| `-w`             | Workspace ID                                              |
| `-b`             | Branch label                                              |
| `-k, --insecure` | Skip TLS certificate verification (for self-signed certs) |
| `--default`      | Set as the default profile                                |

***

## Edit a Profile

Update any field on an existing profile:

<BrowserFrame url="Terminal">
  ```bash theme={null}
  xano profile edit my-profile -w NEW_WORKSPACE_ID
  ```
</BrowserFrame>

To clear a field, use the corresponding `--remove-*` flag:

<BrowserFrame url="Terminal">
  ```bash theme={null}
  xano profile edit my-profile --remove-branch
  xano profile edit my-profile --remove-workspace
  ```
</BrowserFrame>

You can also enable or disable insecure mode (self-signed certificate support) on an existing profile:

<BrowserFrame url="Terminal">
  ```bash theme={null}
  xano profile edit my-profile --insecure
  xano profile edit my-profile --remove-insecure
  ```
</BrowserFrame>

When a profile has insecure mode enabled, all commands using that profile automatically skip TLS certificate verification.

***

## Get Default Profile

Print the name of the current default profile:

<BrowserFrame url="Terminal">
  ```bash theme={null}
  xano profile get
  ```
</BrowserFrame>

***

## Switch Default Profile

<BrowserFrame url="Terminal">
  ```bash theme={null}
  xano profile set my-profile
  ```
</BrowserFrame>

***

## Verify Profile

Check that your profile is configured correctly:

<BrowserFrame url="Terminal">
  ```bash theme={null}
  xano profile me
  ```
</BrowserFrame>

This calls the Xano API and returns a summary of your current setup — CLI version, account details, instance, workspace, and branch. Use `-o json` for the full JSON response.

***

## Print Access Token

Output the access token for the default profile (useful for piping to other commands):

<BrowserFrame url="Terminal">
  ```bash theme={null}
  xano profile token
  ```
</BrowserFrame>

***

## Print Workspace ID

Output the workspace ID for the default profile:

<BrowserFrame url="Terminal">
  ```bash theme={null}
  xano profile workspace
  ```
</BrowserFrame>

***

## Change Workspace Interactively

Switch the workspace on a profile by selecting from a list of available workspaces:

<BrowserFrame url="Terminal">
  ```bash theme={null}
  xano profile workspace set
  ```
</BrowserFrame>

To target a specific profile:

<BrowserFrame url="Terminal">
  ```bash theme={null}
  xano profile workspace set -p production
  ```
</BrowserFrame>

***

## Delete a Profile

<BrowserFrame url="Terminal">
  ```bash theme={null}
  xano profile delete my-profile
  ```
</BrowserFrame>

Add `-f` to skip the confirmation prompt.

***

## Using a Profile for a Single Command

Override the default profile for any command with `-p`:

<BrowserFrame url="Terminal">
  ```bash theme={null}
  xano workspace list -p staging
  ```
</BrowserFrame>

You can also set the `XANO_PROFILE` environment variable:

<BrowserFrame url="Terminal">
  ```bash theme={null}
  export XANO_PROFILE=staging
  xano workspace list
  ```
</BrowserFrame>
