Clients

Scrapwire ships in three forms, all built on the same unchanged service core. Two are end-user chat clients (a terminal client and a native macOS app), and the third is a bridge that lets Scrapwire act as a messaging channel for an OpenClaw AI-agent gateway.

TUI (scrapwire)

The terminal client is a full-featured Scrapwire chat app with a three-panel layout, a Chats sidebar, a Messages center, and a Compose input, and every action is reachable through a command palette (Ctrl-/ or F1). It supports the complete feature set, including direct messages, group chat with roles and member management, publications, invitations, inline images, and file transfer. It is the only client that exposes Rhai scripting, with a separate Script Menu opened by F2 for script-provided commands.

Native macOS GUI (scrapwire-mac)

The macOS client is a native SwiftUI app (macOS 14.0+, arm64) that acts as a second frontend over the same scrapwire-service core through the scrapwire-ffi UniFFI bindings. It has feature parity with the TUI except for Rhai scripting, which is intentionally not exposed in the GUI. It provides direct messages, group chat with role badges and member management, publications, invitations, inline images, file transfer with live status, contact annotations, native notifications, and menu-bar commands and keyboard shortcuts, and its on-disk state format is byte-compatible with the TUI so a state directory is portable between them.

OpenClaw channel (scrapwire-channel + scrapwire-openclaw)

The OpenClaw channel is a bridge, not a standalone chat app: it lets Scrapwire serve as a messaging channel for an OpenClaw AI-agent gateway. The scrapwire-channel daemon embeds the Scrapwire service (the bot's own Veilid node) and exposes a loopback-only, bearer-token HTTP control plane (JSON-RPC plus Server-Sent Events) over which an agent authenticates with Authorization: Bearer <token>. The companion scrapwire-openclaw plugin is a connect-only client that speaks that control-plane contract and never embeds Veilid, so the OpenClaw agent can send and receive Scrapwire messages without any direct IP networking.