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

# Interfaces

> Work with Crew from the desktop app, web dashboard, CLI, Slack, Discord, Telegram, Teams, Webex, WeCom, WeChat, WhatsApp, iMessage, and Feishu. Same Gateway, same memory.

Crew is one Gateway with many ways to reach it. Work from the desktop app, web dashboard, or CLI, then continue the same conversation through Slack, Discord, Telegram, Teams, Webex, WeCom, WeChat (Weixin), WhatsApp, iMessage, or Feishu (Lark). Every session shares the same memory, skills, lessons, and cron jobs.

```mermaid
graph TD
    subgraph Surfaces
        direction LR
        Desktop[Desktop app]
        Web[Web]
        Slack[Slack]
        Telegram[Telegram]
        WeCom[WeCom]
        CLI[CLI]
    end

    subgraph Gateway
        direction LR
        Access[access] ~~~ Sessions[sessions] ~~~ Memory[memory] ~~~ Schedules[schedules] ~~~ Approvals[approvals] ~~~ Apps[apps]
    end

    subgraph Agent["Agent sessions"]
        direction LR
        ACP[ACP runtime] ~~~ KiroCLI[kiro-cli] ~~~ MCP[MCP tools] ~~~ Models[models]
    end

    Desktop --> Gateway
    Web --> Gateway
    Slack --> Gateway
    Telegram --> Gateway
    WeCom --> Gateway
    CLI --> Gateway

    Gateway --> Agent
```

The diagram shows a representative set of surfaces; see the table below for the full list.

## When to use what

| Interface | Best for | Notes |
|---|---|---|
| **Desktop app** | Simplest local experience. Bundled Gateway, multi-tab connections to local or remote Gateways. | macOS, Windows, and Linux |
| **Web dashboard** | Parallel conversations, files, approvals, memory, schedules, apps, settings, and system status | Requires a browser and network to the host |
| **Slack** | Continue work from DMs and threads with streaming replies, approvals, and session links | [Setup guide →](https://kiro.dev/docs/crew/interfaces/slack.md) |
| **Telegram** | Reach your agent from private DMs on phone or laptop | [Setup guide →](https://kiro.dev/docs/crew/interfaces/telegram.md) |
| **Discord** | DMs with streaming replies and approvals delivered as message buttons | [Setup guide →](https://kiro.dev/docs/crew/interfaces/discord.md) |
| **Teams** | Reach your agent from Microsoft Teams chats | [Setup guide →](https://kiro.dev/docs/crew/interfaces/teams.md) |
| **Webex** | Work from Webex direct messages | [Setup guide →](https://kiro.dev/docs/crew/interfaces/webex.md) |
| **WeCom** | Outbound-connected WeCom AI bot | [Setup guide →](https://kiro.dev/docs/crew/interfaces/wecom.md) |
| **WeChat (Weixin)** | Reach your agent from WeChat | [Setup guide →](https://kiro.dev/docs/crew/interfaces/wechat.md) |
| **WhatsApp** | Reach your agent from WhatsApp by linking a personal account | Link by QR code; approve tools by typing a number |
| **iMessage** | Reach your agent from Messages on macOS | Routed through your own Messages.app via a local bridge; macOS only, deny-by-default with an explicit handle allowlist |
| **Feishu (Lark)** | Reach your agent from Feishu (Lark) | Allowlist of authorized users |
| **CLI** | Quick one-shots, scripting, headless environments, security commands | [CLI reference →](https://kiro.dev/docs/crew/interfaces/cli-reference.md) |

All surfaces connect to the same Gateway. A dashboard tab and a Slack thread are **independent sessions** with independent context — but they share memory across the board. Messaging channels connect outbound from the Gateway, so you don't need to expose the dashboard port publicly.

Per-session controls apply the same way across channels: `/yolo` and per-session Trust take effect on Teams, Webex, WeCom, WeChat, and iMessage, alongside the channels that already honored them.

---

## Browser Dashboard

The dashboard is a React SPA served from the gateway at `http://localhost:5476`. It's the primary interface — most features (artifact library, memory graph, MCP panel, app store, task runner UI) live only here.

### Getting in

```bash
kirocrew gateway         # starts the server
# open http://localhost:5476 in your browser
```

For remote access, mint a token and follow the printed link:

```bash
kirocrew token --ttl 2h
```

Every request requires a valid token — cookie or minted link. Three deliberate exceptions serve no secrets: liveness probes, SPA static assets, and loopback-only bootstrap endpoints. See [Security](https://kiro.dev/docs/crew/security.md) for the auth model.

---

## Cross-surface sessions

Two features connect the surfaces:

### Dashboard ↔ Slack sync

Every dashboard chat tab has a **💬** button. Click it to link the current session to a Slack thread:

- A new thread appears in your chosen channel with a summary of recent messages
- The button turns solid green when linked
- Slack messages → dashboard session in real time
- Dashboard messages and responses → mirrored to the Slack thread

Useful for handing off a conversation you started on your laptop to Slack so you can continue on mobile.

### Resume sessions

Both surfaces expose a `sessions` command that lists recent sessions with **▶️ Resume** buttons. Resume from any surface — the session picks up where it left off.

---

## Ports and network

| Port | What it is | Configurable |
|---|---|---|
| `5476` | Dashboard + API | `KIROCREW_PORT` env var, or `--port <n>` |

The dashboard binds loopback only by default (`localhost:5476`). For LAN or remote access:

- Set `dashboard.url` to the DNS name where the dashboard will be reached from
- Configure a reverse proxy with TLS for anything beyond localhost
- Or use an SSH tunnel for remote hosts (see [Running 24/7](https://kiro.dev/docs/crew/running-24-7.md))
