Skip to content

Skills

Every email, rendered as the thing it's about.

A skill reads an incoming message and renders the real thing behind it — the live order, the login code, the account — with the controls to act on it, right in the thread. It can do that because it runs on your data, on your account: wire one to your store and the email stops being a dead receipt and becomes the order itself. 12 ship in the box. The one that knows your business is the one you write.

Wired to your store

"Where's order #1001?" — and there it is.

A customer emails about an order number. The shopify-order skill matches it, calls your store, and renders the live order right in the thread — total, payment, fulfillment — pulled the moment you open the mail. Next to it: a refund button wired to your own Stripe. You answer, or you refund, without leaving the inbox or copy-pasting an order number into another tab.

shopify-order · opt-in

Order #1001
84.00
paidunfulfilled
2 items

No rented inbox can do this, and the reason is the whole pitch: the order renders live because the skill runs on a stack you own, holding keys you lent it. The email knows your business because it's reading your business.

Read · render · act

A smart folder sorts mail. A skill works it.

Skills come in two strengths, and you reach for the lightest one that fits. A rule runs in microseconds and is pure pattern — pull the login code to the top, surface a one-click unsubscribe, turn a tracking number into a track-package button. No model, no latency, no guesswork. An LLM skill reads the message and reasons about it — then proposes an action.

It drafts the reply

complaint-triage · LLM

An angry "this is unacceptable" lands. The skill flags the thread important, scales the severity, and writes a proposed apology that names the specific issue — waiting in the composer for your send. Nothing leaves without you.

Proposed reply

Hi — I'm sorry about the repeatedly late orders; that's not the experience we want you to have. I've flagged this for priority handling and will follow up personally with a fix and timeline today.

Draft only — nothing sends without you.

It looks it up live

shopify-order · opt-in

A customer emails about an order number. The skill calls your store, matches the order, and shows its live status right in the thread — total, payment, fulfillment — so you answer without leaving the inbox.

Order #1001
84.00
paidunfulfilled
2 items

Both are reversible by design: rendering, drafting, and looking-up flow freely; anything that sends or changes the outside world waits for a human. That single line — reversible or not — is what lets a skill run safely on every inbound email, as a tool the agent calls, on a schedule, or over a webhook.

Yours by default

The best skill is the one you write.

Here is the whole definition, and it's small: a skill is a function (or an LLM prompt) plus an optional card. It declares which mail it runs on, which hosts it may call, and whether its effect can be undone — then it reads the message, renders a card, and acts. Write it, drop it in the app/skills/ folder, ship it to your Worker.

That's how you teach the inbox your business: match an email to a CRM record, parse your vendor's invoice format, route by SLA, fire a webhook to your warehouse, render a refund button wired to your Stripe. The built-ins are a starting line. Everything past it is a small function you own — and because it's checked-in code, every power your inbox has is reviewable in a PR.

Your own logic

Anything specific to how your business runs — algorithmic or LLM, per message or per thread, with a custom card if you want one.

Shopify ordersopt-in

Match an email to its Shopify order and show live status, total, and fulfillment.