Features

One loop, from request to resolved.

Relay is not a ticket system squeezed into Slack. It is the connective tissue between a client conversation and the engineering work it creates.

The useful difference
The task card is always current. The conversation stays human.
Intake

Channel-aware triage

Pair every client channel with the right team channel. Relay can watch all messages or only requests that mention it. New requests arrive as cards with claim and dismiss reactions already attached.

Ownership

Claim with one reaction

A raised hand assigns the request to the teammate who reacted and tells the client who has it. Removing the reaction before work starts releases it; later handoffs use an explicit assignment command.

Threads

Commands in context

!start, !pause, !done, !block, !ask, !reply, !note, and !assign run inside the task thread, beside the discussion they affect.

Boundary

Deliberate client updates

Normal engineering messages never leak across. Client communication is always explicit, and Relay resolves real display names before posting so Slack Connect users never see raw member IDs.

Effort

Hands-off work sessions

Relay tracks multiple sessions over a task's life, enforces one live clock per engineer, reaps abandoned sessions at the last heartbeat, and supports corrections with a reason.

Editor

CLI and coding-agent skill

The same operations are available over a small authenticated API and zero-dependency CLI. Engineers—and their coding agents—can inspect the full conversation and update Slack from the editor.

Ledger

Durable, inspectable history

Tasks, sessions, and an append-only event log live in SQLite. Redelivered Slack events are idempotent, and task cards are re-rendered after every transition so the top message remains the real state.

Reporting

Readable outside Slack

Export Summary, Tasks, Sessions, and Activity tabs to CSV or an optional styled Google Sheet. The sheet is intentionally one-way: it mirrors the ledger without becoming a second source of truth.

Control

Setup without server edits

Admins manage pairings, sheet sync, and permissions through /relay setup. Workspace owners cannot be locked out, and configuration changes can be announced in a control channel.

Thread commands
# move work
!start
!pause
!done fixed the timeout

# cross the client boundary
!ask which browser?
!reply deployed to staging

# keep internal context
!note Safari repro is flaky
!sessions

A small vocabulary

Nothing to learn that the team cannot remember.

Commands use plain verbs, successful actions acknowledge with a reaction, and the card itself carries the current state. Relay keeps the mechanism out of the way.

Try the real flow

Test it with two throwaway Slack channels.

Play both client and engineer yourself. You can see the entire loop before Relay ever touches a real client conversation.