> ## 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.

# Using the main-x channel

export const TroubleshootSolution = ({children}) => <>
    <hr className="my-3 w-full" />
    <details className="mt-3">
      <summary className="cursor-pointer font-semibold text-base mb-1">
        Solution
      </summary>
      <div className="mt-2 ml-4" data-component-part="step-content">
        {children}
      </div>
    </details>
  </>;

export const TroubleshootCause = ({children}) => <details className="mt-3 mb-2">
    <summary className="cursor-pointer font-semibold text-base mb-1">
      Cause
    </summary>
    <div className="mt-2 ml-4" data-component-part="step-content">
      {children}
    </div>
  </details>;

export const TroubleshootTitle = ({children}) => <>
    <p className="m-0 font-semibold text-xl leading-tight mb-2" role="heading" aria-level={3}>
      {children}
    </p>
    <hr className="my-3 w-full" />
  </>;

export const Troubleshoot = ({children}) => <div className="callout my-4 px-5 py-4 overflow-hidden rounded-2xl flex gap-3 border troubleshoot-admonition dark:troubleshoot-admonition" data-callout-type="troubleshoot">
    <div className="mt-0.5 w-4">
      <svg width="14" height="14" viewBox="0 0 640 640" fill="currentColor" className="w-4 h-4" aria-label="Troubleshoot">
        <path d="M541.4 162.6C549 155 561.7 156.9 565.5 166.9C572.3 184.6 576 203.9 576 224C576 312.4 504.4 384 416 384C398.5 384 381.6 381.2 365.8 376L178.9 562.9C150.8 591 105.2 591 77.1 562.9C49 534.8 49 489.2 77.1 461.1L264 274.2C258.8 258.4 256 241.6 256 224C256 135.6 327.6 64 416 64C436.1 64 455.4 67.7 473.1 74.5C483.1 78.3 484.9 91 477.4 98.6L388.7 187.3C385.7 190.3 384 194.4 384 198.6L384 240C384 248.8 391.2 256 400 256L441.4 256C445.6 256 449.7 254.3 452.7 251.3L541.4 162.6z" />
      </svg>
    </div>
    <div className="prose min-w-0 w-full">{children}</div>
  </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>;
};

`main-x` is a new, Anaconda-hosted authenticated <Tooltip tip="A location (URL or file path) in a repository where conda looks for packages.">channel</Tooltip> that provides thousands of additional conda packages built by Anaconda for users who have [a registered account](https://auth.anaconda.com/ui/registration/7dc50201-417b-43ce-a64d-2e41df2afb9e). It is designed to be used alongside Anaconda's `main` channel, not replace it. In other words, `main-x` "extends" `main`.

## Setting up `main-x`

<Note>
  If you are using Package Security Manager (On-prem), [follow the separate access instructions below](#accessing-main-x-for-package-security-manager-on-prem).
</Note>

### Before you begin

You need [conda](/docs/getting-started/installation), the [Anaconda CLI](/docs/cli-reference/anaconda-cli/getting-started#install), and an [Anaconda account](https://auth.anaconda.com/ui/registration/7dc50201-417b-43ce-a64d-2e41df2afb9e).

Open Anaconda Prompt (Terminal on macOS/Linux), then install `anaconda-auth`:

```sh theme={null}
conda install --name base anaconda-auth
```

This lets conda sign in to `main-x` for you.

<Note>
  The examples below show the standard channel addresses. With some paid subscriptions, the addresses for `main`, `msys2`, and `r` start with `https://repo.anaconda.cloud/repo/` instead. That's expected, so don't change them.
</Note>

<Tabs>
  <Tab title="Set up using Anaconda CLI">
    ### Enable the `main-x` channel

    1. Log in to your Anaconda account:

       ```bash theme={null}
       ana login
       ```

    2. Enable the `main-x` channel:

       ```bash theme={null}
       ana feature enable main-x
       ```

       This adds `main-x` to the channels conda uses by default.

    ### Verify the channel is working

    1. Confirm that your default channels are configured:

       ```bash theme={null}
       conda config --show default_channels
       ```

       Your return should look similar to this:

       ```yaml theme={null}
       default_channels:
         - https://repo.anaconda.com/pkgs/main
         - https://repo.anaconda.cloud/repo/main-x
         - https://repo.anaconda.com/pkgs/msys2
         - https://repo.anaconda.com/pkgs/r
       ```

    2. Install a package from `main-x` to confirm everything is working:

           <Note>
             Browse packages on `main-x` at [https://anaconda.org/channels/main-x](https://anaconda.org/channels/main-x).
           </Note>

       ```bash theme={null}
       conda install <PACKAGE_NAME>
       ```

           <Comments>
             Replace \<PACKAGE\_NAME> with the name of the package you want to install.
           </Comments>

    For more information, see [Anaconda CLI features](/docs/cli-reference/anaconda-cli/features).
  </Tab>

  <Tab title="Set up using conda">
    ### Configuration

    1. Log in to your Anaconda account:

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

    2. Complete the sign-in process using the browser window that opens. Once signed in, close your browser tab and return to your terminal.

    3. [Open your `.condarc` file](/docs/getting-started/working-with-conda/channels#locating-your-condarc-file) in a text editor and add the following lines:

       ```yaml theme={null}
       channels:
         - defaults
       default_channels:
         - https://repo.anaconda.com/pkgs/main
         - https://repo.anaconda.cloud/repo/main-x
         - https://repo.anaconda.com/pkgs/msys2
         - https://repo.anaconda.com/pkgs/r
       ```

       If the file already has a `channels:` or `default_channels:` section, add the missing lines to that section instead of creating a second one. Leave your other settings as they are.

           <Warning>
             Include `main` and the other channels shown, not just `main-x`. If `default_channels` lists only `main-x`, conda can't find packages from `main`, and many installs will fail.
           </Warning>

    ### Verify the channel is working

    1. Save the file, then check your channel settings:

       ```sh theme={null}
       conda config --show channels default_channels
       ```

       You should see something like this:

       ```yaml theme={null}
       channels:
         - defaults
       default_channels:
         - https://repo.anaconda.com/pkgs/main
         - https://repo.anaconda.cloud/repo/main-x
         - https://repo.anaconda.com/pkgs/msys2
         - https://repo.anaconda.com/pkgs/r
       ```

    2. Install a package from `main-x` to confirm everything is working:

           <Note>
             Browse packages on `main-x` at [https://anaconda.org/channels/main-x](https://anaconda.org/channels/main-x).
           </Note>

       ```bash theme={null}
       conda install <PACKAGE_NAME>
       ```

           <Comments>
             Replace \<PACKAGE\_NAME> with the name of the package you want to install.
           </Comments>
  </Tab>
</Tabs>

## Accessing `main-x` for Package Security Manager (On-prem)

Ask your administrator to [mirror](/docs/psm-on-prem/6.8.0/admin/mirrors#conda-external-source-url) `https://repo.anaconda.cloud/repo/main-x` into your Package Security Manager instance to provide access to `main-x` for your organization.

Add the mirrored channel to the `default_channels:` section of your `.condarc` file, alongside your organization's other channels. Don't remove existing entries, such as your organization's mirror of `main`, as `main-x` packages often need packages from `main`. Use only channels from your Package Security Manager instance, not the public channel addresses shown elsewhere on this page. If your file has no `default_channels:` section, ask your administrator which channels to list.

The mirrored channel's address looks like this:

```text theme={null}
https://<FQDN>/api/repo/<CHANNEL_NAME>
```

<Comments>
  Replace \<FQDN> with the fully qualified domain name of your Package Security Manager instance.<br />
  Replace \<CHANNEL\_NAME> with the name your administrator gave the mirrored `main-x` channel.
</Comments>

<Note>
  If you have a channel alias set for your Package Security Manager instance, you can use just the channel name instead of the full URL in your `default_channels` list. For more information, see [Using conda with Package Security Manager](/docs/psm-on-prem/6.8.0/user/conda#conda-config-commands).
</Note>

## Known limitations

* `main-x` includes thousands of packages (pure Python only) that extend what's available in the `main` channel. `main-x` does not include every package in the PyPI or conda-forge catalog.
* Service accounts for accessing the `main-x` channel are not available. Customers needing non-interactive auth for pipelines can refer to our [API Keys and tokens](https://anaconda.github.io/anaconda-auth/#api-keys-and-tokens) page for guidance on how to use those options with `main-x`.
* Some packages exist in both the `main-x` and `main` channels. Users with `channel_priority: strict` might encounter a problem where conda will not install a preferred package from `main-x` if the same package exists in a higher-priority channel. Users with `channel_priority: flexible` (the default) might also be affected if the order of their channels doesn't reflect their preferred priority. See [Troubleshooting](#troubleshooting) if you experience this.

## Support

### Package requests

If you need a package that is not in `main-x`, create a post on Anaconda's [Feedback page](https://www.anaconda.com/feedback) on the **Packages** board. Include the following:

* The package name and version you need
* Your operating system and platform (for example, Windows 11, macOS Sonoma on Apple Silicon, Ubuntu 22.04)
* (Optional) A description of your use case

### Technical support

For issues, bugs, or questions about `main-x`, [submit a support request](https://support.anaconda.com/hc/en-us/requests/new?ticket_form_id=360000993773). Include the following:

* A description of the issue or question
* The command(s) you ran and the full error message (if applicable)
* Your operating system and platform
* Your conda version

<Accordion title="How do I find my conda version?">
  Open <Tooltip tip="A command-line application included with Windows installations of Anaconda Distribution and Miniconda. Find it by searching 'Anaconda Prompt' in the Windows Start menu.">Anaconda Prompt</Tooltip> (Terminal on macOS/Linux) and run the following:

  ```bash theme={null}
  conda --version
  ```
</Accordion>

Our support team will triage your request and send it to the appropriate team.

If the problem is with the Anaconda CLI itself, you can also report it by running:

```sh theme={null}
ana self feedback
```

This opens a page in your browser where you can report a bug or request a feature for the Anaconda CLI.

## Troubleshooting

<Troubleshoot>
  <TroubleshootTitle>
    ### `AnacondaAuthError` when running `conda install` with `main-x`
  </TroubleshootTitle>

  <TroubleshootCause>
    Versions of `anaconda-auth` older than 0.14.4 incorrectly required a business plan token to install packages from `main-x`.
  </TroubleshootCause>

  <TroubleshootSolution>
    1. Open <Tooltip tip="A command-line application included with Windows installations of Anaconda Distribution and Miniconda. Find it by searching 'Anaconda Prompt' in the Windows Start menu.">Anaconda Prompt</Tooltip> (Terminal on macOS/Linux).
    2. Update `anaconda-auth` to the latest version:

       ```sh theme={null}
       conda update --name base anaconda-auth
       ```
  </TroubleshootSolution>
</Troubleshoot>

<Troubleshoot>
  <TroubleshootTitle>
    ### Error while loading conda entry point: conda-env-log
  </TroubleshootTitle>

  <TroubleshootCause>
    Versions of `anaconda-env-log` older than 0.4.1 are incompatible with conda 26.3.0 or later. If you have an older version of the package installed, you will see `Error while loading conda entry point: conda-env-log` after every conda command.
  </TroubleshootCause>

  <TroubleshootSolution>
    1. Update `anaconda-env-log`:

       ```sh theme={null}
       conda install --name base "anaconda-env-log>=0.4.1"
       ```

    2. Update conda:

       ```sh theme={null}
       conda install --name base "conda>=26.3.0"
       ```

    If you previously pinned conda to version 26.1.1 to work around this issue, remove the pin before running the commands above. Open the `pinned` file in your conda installation's `conda-meta` folder and remove the `conda==26.1.1` line.

    <Note>
      You can replace `anaconda3` with `miniconda3` in any of these paths to find your `pinned` file.
    </Note>

    <Tabs>
      <Tab title="Windows">
        `C:\Users\<USERNAME>\anaconda3\conda-meta\pinned`
      </Tab>

      <Tab title="macOS/Linux">
        `~/anaconda3/conda-meta/pinned` or `/opt/anaconda3/conda-meta/pinned`
      </Tab>
    </Tabs>
  </TroubleshootSolution>
</Troubleshoot>

<Troubleshoot>
  <TroubleshootTitle>
    ### A package from `main-x` is not installing as expected
  </TroubleshootTitle>

  <TroubleshootCause>
    Some packages exist in both `main-x` and `main`. If `main-x` is added as a standalone entry in your `channels:` list, conda treats it as a separate channel that competes for priority with `main`.

    * With `channel_priority: strict`, conda will not pull from `main-x` if the same package name exists in a higher-priority channel.

    * With `channel_priority: flexible` (the default), the solver might still prefer `main` depending on your channel ordering.
  </TroubleshootCause>

  <TroubleshootSolution>
    `main-x` and `main` are designed to be used together as a unified set of Anaconda-curated packages (`main-x` *extends* `main`). If your goal is to prioritize Anaconda-curated packages, instead of listing `main-x` as a standalone channel, add it and `main` to `default_channels:` in your `.condarc` file. For instructions on locating your `.condarc` file, see [Configuring channels](/docs/getting-started/working-with-conda/channels#configuring-channels).

    ```yaml highlight={3-7} theme={null}
    channels:
      - defaults
    default_channels:
      - https://repo.anaconda.com/pkgs/main
      - https://repo.anaconda.cloud/repo/main-x
      - https://repo.anaconda.com/pkgs/msys2
      - https://repo.anaconda.com/pkgs/r
    ```

    <Note>
      With some paid subscriptions, the addresses for `main`, `msys2`, and `r` start with `https://repo.anaconda.cloud/repo/` instead. Keep those addresses; don't replace them with the ones shown here.
    </Note>

    This adds `main-x` to `defaults` so that it is treated as the same priority level as `main`, regardless of your `channel_priority` setting.<br /><br />

    Run `conda config --show channels` afterward to confirm that `main-x` no longer appears as a separate channel in your `channels:` list.
  </TroubleshootSolution>
</Troubleshoot>
