Size: 1.1 KB Modified: 27/06/2026 2:57 AM
# KaiChat Mobile

Native Android client for KaiChat, written in C# with .NET MAUI. This is not a WebView wrapper.

## What It Talks To

The app reuses the existing KaiChat server:

- REST: `/api/conversations`, `/api/conversations/{id}`
- SignalR: `/chatHub`
- Hub methods: `JoinConversation`, `SendMessage`, `StopStreaming`
- Stream events: `StreamReplayStarted`, `StreamStart`, `ReceiveToken`, `ReceiveThinking`, `StreamComplete`

## First Run

Set the server URL to the machine running KaiChat, for example:

```text
http://100.x.y.z:5200
```

For Tailscale, use the server machine's Tailscale IP or MagicDNS name.

## Features In This First Native Pass

- Native Android UI
- Conversation drawer
- Streaming responses over SignalR
- Reattach to active streams after reconnect
- Local queued sends while disconnected
- Persistent outbox via Android preferences
- Stop streaming
- Server URL setting

## Build Tooling

This project needs the .NET MAUI Android workload:

```powershell
dotnet workload install maui-android
dotnet build .\KaiChat.Mobile.csproj
```

This machine did not have the Android workload/JDK installed when the project was scaffolded.
Offline