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

# anaconda channel upload

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>;

## Usage

```bash theme={null}
anaconda channel upload <FILES>... --channel <CHANNEL> [OPTIONS]
```

## Description

Uploads packages to one or more channels. Files can be specified as paths or glob patterns.

You can specify channels in two ways:

* **Simple name with `--namespace`**: `--channel my-channel --namespace my-org`
* **Combined format**: `--channel my-org/my-channel`

You can upload to multiple channels by specifying `--channel` multiple times.

When the target resolves to an anaconda.org owner (rather than an anaconda.com repository channel), the upload uses the anaconda.org upload path, and you can apply labels with `--label`.

## Arguments

<GTable cols="20% 80%">
  <GHead>
    <GRow>
      <GTH>Argument</GTH>
      <GTH>Description</GTH>
    </GRow>
  </GHead>

  <GBody>
    <GRow>
      <GCell>`<FILES>`</GCell>
      <GCell>Files to upload (supports glob patterns)</GCell>
    </GRow>
  </GBody>
</GTable>

## Options

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

  <GBody>
    <GRow>
      <GCell>`-c, --channel <CHANNEL>`</GCell>
      <GCell>Required. Target channel(s) in `namespace/channel` or `channel` format. Can be specified multiple times.</GCell>
    </GRow>

    <GRow>
      <GCell>`-n, --namespace <TEXT>`</GCell>
      <GCell>Namespace for the channel (alternative to `namespace/channel` format)</GCell>
    </GRow>

    <GRow>
      <GCell>`-l, --label <LABEL>`</GCell>
      <GCell>anaconda.org label to apply (only when the target resolves to anaconda.org). Can be specified multiple times.</GCell>
    </GRow>

    <GRow>
      <GCell>`-t, --package-type <TYPE>`</GCell>
      <GCell>Package type. Defaults to auto-detect based on file extension.</GCell>
    </GRow>

    <GRow>
      <GCell>`-h, --help`</GCell>
      <GCell>Show help for this command</GCell>
    </GRow>
  </GBody>
</GTable>

## Examples

**Upload a package to a channel**

```bash theme={null}
anaconda channel upload my-package-1.0.0.tar.bz2 --channel my-org/my-channel
```

**Upload multiple packages using a glob pattern**

```bash theme={null}
anaconda channel upload *.conda --channel my-channel --namespace my-org
```

**Upload to multiple channels**

```bash theme={null}
anaconda channel upload my-package.conda --channel my-org/channel-1 --channel my-org/channel-2
```

**Upload with a specific package type**

```bash theme={null}
anaconda channel upload my-package.tar.gz --channel my-org/my-channel --package-type conda
```
