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

# Publishing

Publishing uploads a versioned agent bundle to Charm Store.

## Authenticate

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
charm auth login
```

## Validate

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
charm validate .
```

## Dry Run

Preview without publishing:

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
charm push . --dry-run
```

## Publish

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
charm push .
```

## What Gets Bundled

Charm bundles the project source, manifest, and dependency files needed to run your agent.

Use `.charmignore` to exclude:

* `.env`,
* virtual environments,
* large local datasets,
* build output,
* cache directories,
* private files.

## Versioning

Each published version should use a unique `persona.version` in `charm.yaml`.

## After Publishing

* Open the Store listing.
* Run a smoke test.
* Confirm required OAuth or API keys are available.
* Check logs if the run fails.
