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

> ## Agent Instructions
> Automate.ax automations are TypeScript programs.
> Use Bun for installation and command examples.
> Use Automate.ax for the product name and automate.ax for the package, CLI, and domain.
> Treat documented public APIs as current; do not invent transitional or deprecated names.

# List public channels

> List public Slack channels visible to the installed bot.

`listPublicChannels` returns one cursor-paginated page of public channels. Use it
to populate a channel picker or discover IDs for later actions.

## Example

```ts automations/list-slack-channels.automation.ts theme={null}
import { automation } from "automate.ax"
import { listPublicChannels } from "automate.ax/slack"

export default automation("List Slack channels", () => {
  listPublicChannels({ excludeArchived: true, limit: 100 })
})
```

## Inputs

| Input             | Type                                             | Required | Default         | Description                                 |
| ----------------- | ------------------------------------------------ | -------- | --------------- | ------------------------------------------- |
| `cursor`          | `string`                                         | No       | First page      | Opaque `nextCursor` from the previous page. |
| `limit`           | `number`                                         | No       | Slack default   | Requested page size from 1 to 200.          |
| `excludeArchived` | `boolean`                                        | No       | Slack default   | Omits archived channels when true.          |
| `account`         | `string \| IntegrationAccountReference<"slack">` | No       | Project default | Slack workspace binding.                    |

Every input also accepts a compatible `Signal`.

## Output

Returns `Signal<{ conversations: SlackConversation[]; responseMetadata: { nextCursor?: string } }>`.
Each conversation includes `id`, optional `name`, membership and privacy flags,
creation and creator metadata, optional topic and purpose, and optional member
count. Pass `responseMetadata.nextCursor` back as `cursor` to continue.

The bot can only see public channels exposed to its installation and scopes.
