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

# Commands and configuration

export const GCell = ({children, className}) => <div className={`grid-table-cell ${className || ""}`} role="cell">
    {children}
  </div>;

export const GTH = ({children, className}) => <div className={`grid-table-th ${className || ""}`} role="columnheader">
    {children}
  </div>;

export const GRow = ({children}) => <div className="grid-table-row" role="row">{children}</div>;

export const GBody = ({children}) => <div className="grid-table-body" role="rowgroup">{children}</div>;

export const GHead = ({children}) => <div className="grid-table-head" role="rowgroup">{children}</div>;

export const GTable = ({children, className, cols}) => <div className={`grid-table not-prose overflow-hidden rounded-2xl ${className || ""}`} style={{
  "--grid-table-cols": cols
}} role="table">
    {children}
  </div>;

export const Comments = ({children}) => {
  return <div class="my-4 px-5 py-4 overflow-hidden rounded-2xl flex gap-3 border border-zinc-500/20 bg-zinc-50/50 dark:border-zinc-500/30 dark:bg-zinc-500/10" data-callout-type="comments">
      <div class="w-4">
        <svg width="14" height="14" viewBox="0 0 640 640" fill="currentColor" xmlns="http://www.w3.org/2000/svg" class="w-5 h-5" aria-label="Comments">
            <path d="M320 112C434.9 112 528 205.1 528 320C528 434.9 434.9 528 320 528C205.1 528 112 434.9 112 320C112 205.1 205.1 112 320 112zM320 576C461.4 576 576 461.4 576 320C576 178.6 461.4 64 320 64C178.6 64 64 178.6 64 320C64 461.4 178.6 576 320 576zM280 400C266.7 400 256 410.7 256 424C256 437.3 266.7 448 280 448L360 448C373.3 448 384 437.3 384 424C384 410.7 373.3 400 360 400L352 400L352 312C352 298.7 341.3 288 328 288L280 288C266.7 288 256 298.7 256 312C256 325.3 266.7 336 280 336L304 336L304 400L280 400zM320 256C337.7 256 352 241.7 352 224C352 206.3 337.7 192 320 192C302.3 192 288 206.3 288 224C288 241.7 302.3 256 320 256z" />
        </svg>
      </div>
      <div class="text-sm prose min-w-0 w-full">
        {children}
      </div>
    </div>;
};

Use ana to authenticate, configure package sources, and work with Anaconda services. Use conda or pixi to install packages and manage your project environments.

## Usage

To see the commands supported by your installed version, run:

```sh theme={null}
ana --version
ana --help
```

<GTable cols="30% 70%">
  <GHead>
    <GRow>
      <GTH>Option</GTH>
      <GTH>Purpose</GTH>
    </GRow>
  </GHead>

  <GBody>
    <GRow>
      <GCell>`--help`</GCell>
      <GCell>Show help for ana or a subcommand</GCell>
    </GRow>

    <GRow>
      <GCell>`--version`</GCell>
      <GCell>Show the ana version at the top level</GCell>
    </GRow>

    <GRow>
      <GCell>`--verbose`</GCell>
      <GCell>Increase logging detail; repeat up to five times for error, warning, info, debug, and trace logging</GCell>
    </GRow>
  </GBody>
</GTable>

For command-specific help, append `--help`, for example:

```sh theme={null}
ana tool download --help
```

## Command groups

The Anaconda CLI provides these commands:

<GTable cols="30% 70%">
  <GHead>
    <GRow>
      <GTH>Command</GTH>
      <GTH>Purpose</GTH>
    </GRow>
  </GHead>

  <GBody>
    <GRow>
      <GCell>[`ana login`](/docs/cli-reference/anaconda-cli/authentication), [`ana logout`](/docs/cli-reference/anaconda-cli/authentication), [`ana whoami`](/docs/cli-reference/anaconda-cli/authentication)</GCell>
      <GCell>Authenticate and inspect the current session</GCell>
    </GRow>

    <GRow>
      <GCell>[`ana auth`](/docs/cli-reference/anaconda-auth/commands)</GCell>
      <GCell>Log in, log out, or retrieve a saved API key</GCell>
    </GRow>

    <GRow>
      <GCell>[`ana tool`](/docs/cli-reference/anaconda-cli/tools)</GCell>
      <GCell>Install, list, update, and remove tools, or download installers</GCell>
    </GRow>

    <GRow>
      <GCell>[`ana feature`](/docs/cli-reference/anaconda-cli/features)</GCell>
      <GCell>Configure package sources</GCell>
    </GRow>

    <GRow>
      <GCell>[`ana self`](/docs/cli-reference/anaconda-cli/self-update)</GCell>
      <GCell>Update ana, list versions, submit feedback, or inspect the user-agent string</GCell>
    </GRow>

    <GRow>
      <GCell>[`ana mcp`](/docs/cli-reference/anaconda-cli/mcp)</GCell>
      <GCell>Connect AI clients to the Anaconda MCP service</GCell>
    </GRow>

    <GRow>
      <GCell>[`ana api fetch`](#make-api-requests)</GCell>
      <GCell>Make authenticated API requests</GCell>
    </GRow>

    <GRow>
      <GCell>`ana org`</GCell>
      <GCell>Work with Anaconda.org through the companion CLI. Run `ana org --help` to see available subcommands.</GCell>
    </GRow>

    <GRow>
      <GCell>[`ana platform`](/docs/cli-reference/anaconda-cli/features#outerbounds)</GCell>
      <GCell>Access the Outerbounds integration on macOS or Linux</GCell>
    </GRow>

    <GRow>
      <GCell>[`ana channel`](#channel-commands)</GCell>
      <GCell>Create and remove hosted channels and upload packages</GCell>
    </GRow>

    <GRow>
      <GCell>[`ana bootstrap`](/docs/cli-reference/anaconda-cli/getting-started#set-up-companion-tools)</GCell>
      <GCell>Install the companion CLI environment</GCell>
    </GRow>

    <GRow>
      <GCell>[`ana config`](#configure-ana)</GCell>
      <GCell>Display configuration loaded from environment variables</GCell>
    </GRow>
  </GBody>
</GTable>

If you installed ana with conda, use conda to update it and its companion packages. That installation does not include the platform or channel command groups.

## Make API requests

Use `ana api fetch` to call Anaconda APIs from your terminal. Log in with `ana login` first.

### Usage

```sh theme={null}
ana api fetch [OPTIONS] [URL]
```

### Arguments

<GTable cols="30% 70%">
  <GHead>
    <GRow>
      <GTH>Argument</GTH>
      <GTH>Description</GTH>
    </GRow>
  </GHead>

  <GBody>
    <GRow>
      <GCell>`URL`</GCell>
      <GCell>API path or full URL to request. Omit to show help. Use HTTPS for remote services.</GCell>
    </GRow>
  </GBody>
</GTable>

An API path uses `anaconda.com` by default, or the domain set in `ANA_DOMAIN`. Use the endpoint and request format documented by the API you're calling.

### Options

<GTable cols="30% 70%">
  <GHead>
    <GRow>
      <GTH>Option</GTH>
      <GTH>Description</GTH>
    </GRow>
  </GHead>

  <GBody>
    <GRow>
      <GCell>`--method`</GCell>
      <GCell>HTTP method: `GET` (default), `POST`, `PUT`, `PATCH`, or `DELETE`</GCell>
    </GRow>

    <GRow>
      <GCell>`--query-args`</GCell>
      <GCell>Comma-separated query parameters in `key=value` form</GCell>
    </GRow>

    <GRow>
      <GCell>`--data`</GCell>
      <GCell>Raw request body; cannot be combined with `--json`</GCell>
    </GRow>

    <GRow>
      <GCell>`--json`</GCell>
      <GCell>JSON request body; validates the JSON and sets the JSON content type</GCell>
    </GRow>

    <GRow>
      <GCell>`--help`</GCell>
      <GCell>Show command help</GCell>
    </GRow>
  </GBody>
</GTable>

The command prints the response and its HTTP status. If you use it in a script, check the status or response: an HTTP error such as `404` does not by itself make the command return a failure exit code.

### Examples

To inspect the authenticated session through the API, run:

```sh theme={null}
ana api fetch /api/auth/sessions/whoami
```

To send query parameters supported by an endpoint, run:

```sh theme={null}
ana api fetch --query-args "<KEY>=<VALUE>" <API_PATH>
```

<Comments>
  Replace \<KEY> with a query parameter supported by that endpoint.<br />
  Replace \<VALUE> with the parameter value.
  Replace \<API\_PATH> with the endpoint's path, starting with `/`.<br />
</Comments>

To write the response body to a file while leaving the HTTP status visible in the terminal, run:

```sh theme={null}
ana api fetch /api/auth/sessions/whoami > session.json
```

Session output can contain account information. Store it securely and remove it when it is no longer needed.

## Channel commands

Use channel commands to manage hosted channels and upload packages. Log in before using them. These commands are not available in conda-packaged builds.

<GTable cols="25% 25% 50%">
  <GHead>
    <GRow>
      <GTH>Command</GTH>
      <GTH>Arguments</GTH>
      <GTH>Options</GTH>
    </GRow>
  </GHead>

  <GBody>
    <GRow>
      <GCell>`ana channel create`</GCell>
      <GCell>Channel in `org/channel` form</GCell>
      <GCell>`--private` or `--public` (mutually exclusive), and `--namespace`</GCell>
    </GRow>

    <GRow>
      <GCell>`ana channel remove`</GCell>
      <GCell>Channel in `org/channel` form</GCell>
      <GCell>`--namespace`</GCell>
    </GRow>

    <GRow>
      <GCell>`ana channel upload`</GCell>
      <GCell>Package file paths</GCell>
      <GCell>`--channel` to select a channel in `org/channel` form</GCell>
    </GRow>
  </GBody>
</GTable>

These commands manage hosted channels and uploads. They do not configure conda's local channel search order; use [Features](/docs/cli-reference/anaconda-cli/features) for that task.

<Warning>
  Removing a channel changes remote data. Confirm the organization and channel before running `ana channel remove`.
</Warning>

## Configure ana

Use environment variables to change settings such as the Anaconda domain, keyring location, or update notifications.

To inspect the loaded configuration, run:

```sh theme={null}
ana config
```

The following variables control common settings:

<GTable cols="25% 25% 50%">
  <GHead>
    <GRow>
      <GTH>Variable</GTH>
      <GTH>Default</GTH>
      <GTH>Purpose</GTH>
    </GRow>
  </GHead>

  <GBody>
    <GRow>
      <GCell>`ANA_DOMAIN`</GCell>
      <GCell>`anaconda.com`</GCell>
      <GCell>Domain used for authentication and relative API paths</GCell>
    </GRow>

    <GRow>
      <GCell>`ANA_OPEN_BROWSER`</GCell>
      <GCell>`true`</GCell>
      <GCell>Open the browser during login and feedback workflows</GCell>
    </GRow>

    <GRow>
      <GCell>`ANA_KEYRING_PATH`</GCell>
      <GCell>`.anaconda/keyring` under your home directory</GCell>
      <GCell>Credential file location</GCell>
    </GRow>

    <GRow>
      <GCell>`ANA_ENABLE_TELEMETRY`</GCell>
      <GCell>`true`</GCell>
      <GCell>Enable usage telemetry</GCell>
    </GRow>

    <GRow>
      <GCell>`ANA_PRERELEASES`</GCell>
      <GCell>`false`</GCell>
      <GCell>Include prereleases in update checks</GCell>
    </GRow>

    <GRow>
      <GCell>`ANA_AUTO_UPDATE_TOOLS`</GCell>
      <GCell>Per-tool default</GCell>
      <GCell>Override which installed tools participate in automatic updates</GCell>
    </GRow>

    <GRow>
      <GCell>`ANA_UPDATE_CHECK`</GCell>
      <GCell>`true`</GCell>
      <GCell>Enable background update notifications</GCell>
    </GRow>

    <GRow>
      <GCell>`ANA_UPDATE_CHECK_INTERVAL_HOURS`</GCell>
      <GCell>`24`</GCell>
      <GCell>Interval between background update checks</GCell>
    </GRow>

    <GRow>
      <GCell>`ANA_UPDATE_NOTIFY_INTERVAL_HOURS`</GCell>
      <GCell>`24`</GCell>
      <GCell>Interval between update notifications</GCell>
    </GRow>
  </GBody>
</GTable>

Use `true` or `false` for settings that turn a feature on or off, and a number of hours for update intervals. Leave `ANA_AUTO_UPDATE_TOOLS` unset to use each tool's default update behavior.

For example, to disable usage telemetry in the current shell session:

<Tabs>
  <Tab title="Windows PowerShell">
    ```powershell theme={null}
    $env:ANA_ENABLE_TELEMETRY = "false"
    ```
  </Tab>

  <Tab title="macOS / Linux">
    ```sh theme={null}
    export ANA_ENABLE_TELEMETRY=false
    ```
  </Tab>
</Tabs>

Usage telemetry and error diagnostics are separate. Builds with Sentry diagnostics also accept `ANA_SENTRY_DISABLED=true` to disable error reporting. For login settings, see [Authentication](/docs/cli-reference/anaconda-cli/authentication); for update settings, see [Self update](/docs/cli-reference/anaconda-cli/self-update).
