Always-on triage for Slack, Gmail, GitHub and Calendar

Hears everything.
Interrupts you almost never.

ainterface reads every message, email, review request and calendar event that comes in, scores each one with an open-weight model, and stays quiet about nearly all of them. When something can't wait, you get a push, and one tap opens a voice conversation about it.

One deployment per person. Your data stays in your own instance.

Incoming 0 events · 0 interruptions

    Example feed. Names are made up.

    Every event gets one of four answers.

    Each event goes to Qwen3 30B, an open-weight model running on Cloudflare Workers AI, along with the rest of its thread from the past day. The model picks a level and writes a one-line summary.

    silent

    Logged, never delivered

    CI chatter, newsletters, the lunch thread. It's stored with its score, and nothing is sent.

    digest

    Batched for later

    Held until five have piled up or two hours have passed, then sent as one notification. The triage rules hold automated senders to this level.

    push

    A notification, now

    Tap it and a voice session opens about that event, so you can just ask “what do they need from me?”

    urgent

    Right now, no waiting

    An incident assigned to you, or a meeting in five minutes you haven't acknowledged. It goes out immediately and skips every cooldown.

    “False positives — interrupting the user for things that don't matter — are worse than false negatives.”

    First rule of the triage prompt, v1

    2:47pm, a Tuesday.

    Your CEO sends a Slack DM. Here is everything that happens before you look at your phone.

    A phone face up on a desk with one orange notification dot
    1. Slack delivers the webhook. The connector checks the signature and answers inside Slack's three-second limit, then queues the event: DM from @dana: “can we talk in 10?”

    2. Triage picks it up and loads the rest of the thread from the past 24 hours. There's nothing: it's a new conversation.

    3. Qwen3 scores it urgent direct_request, deliver now.

    4. The orchestrator sends a push straight away. Urgent events skip the same-thread and 30-second cooldowns that would hold back anything less.

    5. You tap the notification and a voice session opens about Dana's message. You ask what it's about before you reply.

    How it reaches you.

    Push

    Through Expo to APNs and FCM. Each one carries the one-line summary and opens a voice session about that event.

    Voice

    Deepgram transcribes, Claude Sonnet answers, Cartesia speaks, with a one-second budget for the first word. For email, it can draft a reply, read it back to you, and send it only after you say yes.

    Phone next

    Calls over Twilio, answered by the same voice agent, with a text if you don't pick up. It's built but not yet switched on for live events.

    Rules it can't talk itself out of.

    The model never sends anything itself. It returns a score, and the orchestrator decides what happens next, with these limits written in code.

    5 min
    between notifications about the same thread. Only an urgent event gets through sooner.
    30 s
    minimum gap between pushes, across every source.
    5 or 2 h
    A digest goes out once five events pile up or two hours pass, whichever comes first.
    Bots
    GitHub bot activity is dropped before triage ever sees it.

    One person per deployment.

    ainterface isn't a shared service with your inbox in a big database. Each instance belongs to one person, with its own database and its own credentials.

    A single lit cabin alone on a dark hill at night
    • Your keys, your database. OAuth tokens are encrypted at rest in your own database.
    • Every decision is on the record. Each score is stored next to its event with the model's reasoning and the prompt version that produced it.
    • Prompts are versioned. A deployed triage prompt is never edited in place. A change ships as a new version.
    • Sources today: Slack, Gmail and GitHub by webhook, and Google Calendar checked every minute. Adding a source means writing one connector. Triage and delivery stay the same.

    Want fewer, better interruptions?

    Leave your email for early access. We'll write when there's a build for you.