Internal Tool

Chirp

Chat that talks to your agents.

Explore Features

Screenshots

See It in Action

Features

Team Chat Built for the Age of Agents

Every feature Slack has, plus something Slack never will: a first-class bridge to the Claude Code sessions you spawn every day.

ReplacesSlack

Claude Code Bridge

Bidirectional Agent Threads

  • Every Task Becomes a Thread

    When a Claude Code session starts, the session_init hook creates a thread in your #agents channel. Every PreToolUse, PostToolUse, and Stop event streams into that thread.

  • Reply to Your Agent

    Reply in the thread from anywhere — phone, web, or desktop — and your message lands in the session's inbox. The next hook poll injects it as a system reminder into the running agent's next turn.

  • Start Tasks From Your Phone

    Hit /task <description> in the #agents channel from any device. A tiny daemon on your Mac (chirp-agent-listener) picks up the queued task within seconds and spawns a real claude process in the right repo — with your filesystem, credentials, and tools fully intact. Then you can go back to steering it from the couch.

  • Sub-Agent Transparency

    Nested sub-agents append to the parent thread with their name as a prefix. You see who's doing what across the full agent tree.

  • Confirmation on Sensitive Projects

    Mark a project requires_confirmation: true in your ~/.chirp/projects.json and the daemon posts a “react 👍 to run” prompt in the thread before it spawns. Safe by default on repos that shouldn't auto-execute from a phone.

Chirpy

In-App AI Assistant

  • Summarize & Catch Up

    “@Chirpy summarize the last hour in #incidents” returns a tight brief. Ask “what did I miss?” after a long meeting and get a narrative catch-up.

  • Act Across the Fleet

    Chirpy has MCP access to every tool you have access to. “Create a Docket card for this,” “log 30 minutes to Chirp,” “schedule a review with Elara Tuesday.” Destructive ops require a 👍 confirmation.

  • Action Extract

    Ask Chirpy for action items from any thread and get back a numbered checklist with owners and deadlines when they can be inferred.

  • Meeting Prep

    “@Chirpy prep me for my 3pm with Sloane” pulls Cadence event details, Tribe contact history, and relevant Codex pages into a briefing card.

Core Chat

Everything Slack Does

  • Channels & DMs

    Public, private, shared, and announcement channels. 1:1 DMs and group DMs up to 9 participants. Multiple workspaces per user with a left-rail switcher.

  • Threads with Resolve

    Any message starts a thread. Threads can be marked resolved for triage. Participants get notifications; resolution status surfaces in the channel view.

  • Mentions & Notifications

    @user, @here, @channel, and custom keyword alerts. Per-channel notification levels, DND scheduling, and delivery via web push, email digest, Courier, or SMS.

  • Reactions & Custom Emoji

    Unicode emoji picker with skin-tone and recent-used. Upload custom emoji per workspace. Emoji-only messages render extra large.

  • Files & Rich Content

    Drag-drop, paste, or record. Image/video/audio previews, Shiki-highlighted code blocks, PDF thumbnails, voice clips, and fleet-aware link unfurling for Docket cards, Meridian invoices, and more.

  • Search That Remembers

    Cmd+K opens command palette search. Slack-style filters (in:, from:, has:image, has:link) plus pg_vector-powered semantic search that finds the thread you vaguely remember.

  • Presence & Typing

    Online, away, DND, custom status with emoji and expiry. Real-time typing indicators per channel. Read receipts keyed to last-read message.

  • Huddles

    Low-friction voice and video rooms per channel or DM. Screen share, live transcription via Whisper, optional admin-gated recording.

Integrations

The Nervous System of the Fleet

  • Every Fleet Tool, Both Directions

    Docket, Fulcrum, Meridian, Herald, Beacon, Tribe, Cadence, Courier, Narrative, Pulse, Vigil, Codex, Slate, Trellis, Auth, Purchase — all connect. Slash commands, link unfurling, and rich inbound notifications.

  • Inbound + Outbound Webhooks

    Slack-compatible inbound payloads. Outbound webhooks with HMAC signatures, exponential retries, and a dead-letter queue you can replay from the admin UI.

  • Embeddable Chat Surface

    Fleet tools like Slate embed Chirp threads inline via guest-session tokens. Tribe contacts get scoped chat access without a Chirp account. postMessage contract for theme sync, unread counts, and composer pre-fill.

  • Slash Commands

    Built-ins like /remind and /status, plus fleet-provided: /docket, /time, /invoice, /task, /incident. Register your own via webhook or MCP.

  • Multi-Audience Access

    Renkara staff, AccelaStudy students needing support, and invited guests share one platform with strict scope boundaries. Magic-link auth for guests, OIDC via auth.renkara.com for staff.

  • 69 MCP Tools

    Every API operation callable from Claude Code. Workspaces, channels, messages, threads, reactions, files, search, agent sessions, guest sessions, webhooks, bots, slash commands.

  • Chronicle Observability

    Logs, metrics, and traces emitted natively via OpenTelemetry. Pre-built dashboards for messaging latency, agent sessions, webhook queues, and integration health.

  • Vigil + Bug Reporter

    Vigil monitors registered at deploy time; SEV1/SEV2 incidents route to #alerts. Bug reports file Docket cards via Cmd+Shift+B with redacted state snapshots.

Accessibility

Built for Everyone

  • WCAG 2.1 AA Compliance

    4.5:1 contrast for body text, 3:1 for large text and UI components, in both light and dark themes.

  • Keyboard Navigation

    Every interaction reachable via keyboard. Logical tab order, visible focus indicators, Escape-to-dismiss for modals.

  • Screen Reader Support

    VoiceOver, NVDA, and JAWS tested. Semantic HTML, ARIA labels, live regions for dynamic updates.

  • Reduced Motion

    Respects prefers-reduced-motion. Usable at 200% zoom. Touch targets meet 44x44 minimum.

How It Works

From Hook to Reply

  1. Step 1: Session Starts

    Claude Code boots. The session_init hook calls Chirp, provisions a thread in #agents, and returns a session token.

  2. Step 2: Events Stream

    Every tool call posts a compact update. The thread becomes a live transcript of what the agent is doing.

  3. Step 3: You Reply

    “Also make it idempotent.” Your message queues to the session inbox. No terminal needed.

  4. Step 4: Agent Sees It

    Next hook poll surfaces the reply as a <chirp-inbox> system reminder. The agent responds accordingly.

Technical Specifications

Under the Hood

  • Backend

    • FastAPI (Python 3.12+)
    • PostgreSQL 15+ with pg_vector
    • Valkey 8
    • NATS JetStream
    • SQLAlchemy 2.0 async
    • WebSocket + SSE
  • Frontend

    • React 19
    • Vite 6
    • TypeScript
    • @avian/design-system
    • react-virtuoso message list
    • Light and dark theme
  • Agent Bridge

    • CLI mode via Claude Code hooks
    • Managed mode via Agent SDK
    • Scoped per-session tokens
    • Inbox-injection system reminders
    • Sub-agent transparency
    • Idle timeout + auto-refresh
  • Observability

    • Chronicle logs (structlog)
    • Prometheus metrics
    • OpenTelemetry traces
    • Vigil monitoring + alert routing
    • Bug reporter + Docket cards
    • Session-level agent dashboards

Development

100% Built by Claude

Every tool in the Renkara fleet was built by Claude (Anthropic) working alongside a single human supervisor. Every line of code, every test, every deployment: AI-authored with human direction. The leverage factor across the fleet runs in the 20x–50x range, with individual sessions regularly exceeding 100x.

See the daily leverage records for per-task numbers across the full build history.