# 2. Publish a Kernel

AAAX can publish public SSSN channels over HTTP through SSSN transport.

## 1. Configure network settings

```toml
[aaax.network]
publish = true
host = "0.0.0.0"
port = 8100
```

## 2. Call `publish()`

```python
import asyncio

from aaax import AAAXConfig, bootstrap_kernel


async def main() -> None:
    config = AAAXConfig.from_file("aaax.toml")
    kernel = await bootstrap_kernel(config)
    await kernel.publish(host=config.network.host, port=config.network.port)


asyncio.run(main())
```

## 3. Understand what becomes public

AAAX only attaches HTTP transport to channels whose SSSN visibility is public. Internal governance channels remain kernel-local by design.

That means the safe publication pattern is:

1. keep governance and registry channels private
2. explicitly expose only application-facing channels
3. treat AAAX capabilities and SSSN transport security as complementary rather than interchangeable

## 4. Run from the CLI

The current CLI keeps launch and publish separate through a flag:

```bash
aaax launch aaax.toml --publish
```

This is enough for the first kernel slice. More operational commands can layer on later without changing the basic contract.
