# Chat

> Outpost Chat is the direct conversation with Kin when you are away from the terminal. It streams answers, shows tool progress, and connects durable attention back to Activity.

Outpost Chat is the direct conversation with Kin when you are away from the
terminal. It streams answers, shows tool progress, and connects durable
attention back to Activity.

<!-- SOURCE: container/dashboard/chat_service.py, container/dashboard/chat_api.py, container/dashboard/templates/landing.py, container/dashboard/templates/landing_body.py, container/dashboard/templates/landing_css.py, container/dashboard/templates/landing_js.py -->

## Outcome

Start or continue an Outpost conversation, understand its live state, answer a
question or approval, and sign out of the authenticated browser session.

## Fast path

1. Open Outpost; Chat is the default destination.
2. Confirm the verified identity in the account chip. **Sign out** ends the
   authenticated session.
3. Type a message. On desktop, ++enter++ sends and ++shift+enter++ adds a
   newline; on a touch keyboard, use the arrow button to send.
4. Follow collapsed thinking and quiet tool status as the answer streams.
5. Use **Stop** to interrupt, or tap an approval/question choice when Kin needs
   you.
6. Choose **New chat** for a clean timeline; existing conversations remain in
   normal journal history.

[![Mobile Outpost Chat showing a request, collapsed thinking, workspace-search progress, Kin's answer, the verified example identity, and Sign out.](/docs-assets/kin/assets/screenshots/outpost_chat_mobile.png)](/docs-assets/kin/assets/screenshots/outpost_chat_mobile.png)

*At 390px, the composer and five primary destinations stay reachable while the
verified identity and Sign out remain inside the top bar.*

## Reading the conversation

The composer is one rounded message field with its send control inside. The
button stays dim until text exists and becomes **Stop** while Kin is answering.
Between sending and the first streamed content, a small working pulse holds the
place; it disappears the moment text, thinking, or tool progress arrives, and
while a question or approval is waiting on you. Thinking stays collapsed; tool
work uses a compact status line; prose and code format progressively.

The **needs you** strip is a summary of the same durable attention shown in
Activity, not a second inbox:

- a tool approval offers **Approve** once or **Deny**;
- a structured question renders its supplied choices and optional free text;
- a Rig login issue opens **Computer** rather than inventing an approval;
- a failed continuation offers **Retry continuation**.

The installed app badge counts open needs-you items, not unread chat messages.
When no messages exist, Chat's quiet truth line reports scheduled jobs, the
next run, and whether attention is empty. An unavailable source says so rather
than guessing.

## Phone and desktop

On a phone, Chat, Activity, Automations, Computer, and More stay in a
thumb-reachable bottom bar. The bar steps aside for the software keyboard so
the composer remains visible. On desktop, the same destinations live in the
labelled rail and Chat owns the remaining viewport.

The account chip appears in the desktop rail and phone top bar. Its email is
the identity verified by the sign-in gate; the dashboard does not infer or
invent it. **Sign out** navigates through the authentication gate and ends the
session.

## History and reconnect

History is server-side. A refresh opens the most recent active conversation,
replays missed stream frames, then reconciles the composer with the
authoritative in-flight state. An interrupted user-only turn therefore cannot
leave Stop stuck on.

A brand-new chat with no accepted message may safely acquire a fresh session
after a server restart. Once a message has been accepted, a missing journal is
treated as unavailable history and is never silently replaced; start a new
chat while the original is restored or investigated.

All model text is inserted through DOM text nodes. Links are restricted to
`http` and `https`.

## Alternative paths

#### Needs you


Choose **Review** in Chat to open the durable Activity item with its typed
controls.

#### Notification


A push or email opens the relevant item or run. Resolve it, then return to
Chat without creating a duplicate conversation.

#### Terminal


Use the local TUI when the task needs direct project work, richer
transcript browsing, or local session controls. Use Beam for a deliberate
local-to-Outpost handoff.

## Troubleshooting

- **Send is disabled:** enter non-whitespace text. On a touch keyboard the
  return key adds a newline; tap the arrow.
- **Stop remains visible after reconnect:** refresh once; if the authoritative
  turn is still running, Stop is correct.
- **The timeline will not recover:** a missing non-empty journal fails closed.
  Start a new chat and ask the operator to inspect the original.
- **Wrong account:** use **Sign out**, then authenticate as the intended user.
- **The connection indicator degrades:** submitted messages remain server
  authoritative; wait for reconnect before repeating a send.

## Reference

- [Outpost overview](/docs/kin/guide/outpost/)
- [Activity and run inspection](/docs/kin/guide/outpost/#run-inspection)
- [Notifications](/docs/kin/guide/messaging/)
- [Beam](/docs/kin/guide/beam/)
- [Outpost operations](/docs/kin/internals/outpost-operations/)
