@aireserve in a channel and it answers in a thread — the gateway picks
the best model for the request (or you name one), and each answer footnotes
which model served it. No API keys in Slack, no per-seat AI subscriptions.
In the shared channel with the AI Reserve team the usage is on us; in your
own workspace it meters to your organization’s wallet like any API call.
What you get
- It knows your account. In the shared channel with the AI Reserve team, ask it about your organization and it looks the answer up for you: wallet balance, spend this month and the models behind it, which API keys exist (names only, never the secret), which models you can use and what they cost, and any recent errors on your traffic. It only ever sees your own organization’s data.
- It has read the docs. How-to questions (“how do I connect Claude Code?”, “how do I rotate a key?”) come back with the answer and a link to the exact documentation page.
- Every model, one mention. The same model catalog as the API. No
model named? The gateway’s auto-router picks the right one for
the request. Name one — an exact id like
claude-opus-5or plain prose like “use deepseek” — and that model serves it. - Answers in threads, with receipts. Replies land in a thread on your
message, and every answer ends with
served by <model>so there’s never a question of what ran. (Error notes skip the footer — nothing ran.) - It keeps up with the conversation. Mention it inside a thread and it reads the recent discussion before answering — and once it has replied in a thread, you can keep asking follow-ups there without tagging it again.
- On us in the shared channel. In the Slack Connect channel you share with the AI Reserve team, the assistant is provided at no charge: nothing meters to your organization’s wallet, and each answer there says so in its footer. In a workspace you install the app into, mentions meter to your wallet at normal model rates, attributed to the Slack user who asked.
- Your model catalog still applies. The bot only serves models your org has enabled — naming one it hasn’t gets an honest note with real options, never a quietly substituted model. Busy channels are rate-limited so one thread can’t monopolize it.
Two ways to connect
Install in your workspace
An org admin installs the AI Reserve app into your Slack workspace from
the portal. Once linked, invite
@aireserve to any channel — public or
private — and everyone in it can use it.Shared channel with us
Already have a Slack Connect channel with the AI Reserve team? Mention
@aireserve right there — we link the channel to your org during
onboarding, nothing to install.Installing in your own workspace
- An AI Reserve org admin starts the install from the portal — the install link is minted for your organization, so the workspace binds to your org and nobody else’s.
- Approve the app in Slack (a Slack workspace admin may need to allow it).
- Invite the bot to the channels where you want it:
/invite @aireserve. - Mention it. That’s the whole setup — keys and model access ride the link to your org, and usage meters to your org’s wallet at normal model rates.
The app only answers in workspaces linked to an AI Reserve organization.
If it’s installed but not linked, it replies with a short note instead of
serving — the link is what decides whose model catalog applies.
Uninstalling the app severs the link and revokes its workspace credentials
immediately.
Mentioning the bot
The mention can sit anywhere in the message — leading, trailing, or mid-sentence — and the rest of the message is the question:Picking a model
Two honesty rules back all of this:
- The footer never lies. Every answer ends with
served by <model>, naming the model that actually ran — whichever path chose it, including the auto-router’s pick. - No silent substitutes. A model ask that can’t be served is answered honestly instead of quietly serving a different model that role-plays the one you asked for: a leading ask that names a model family we carry at a version we can’t serve (“use grok-9 …”), or an exact id that isn’t in your org’s catalog, gets real options to pick from. A mid-prose reference we can’t recognize as a model at all is treated as ordinary text and the question auto-routes — the footer still names what actually ran.
Threads and follow-ups
Mention it in a thread and it reads the thread. The recent conversation rides along as context, and the answer lands in the same thread — no forked side-threads. Mention it top-level and the reply starts a thread under your message. Keep talking — no re-tagging needed. Once the bot has replied in a thread, plain follow-up messages there (“is this an easy fix?”, “what about the second option?”) get answered without another@aireserve. It is
deliberately conservative about when it speaks up uninvited:
- It only follows threads where it has already replied — never conversations it was not part of.
- It stays silent when your message tags any person by name — tagging a teammate makes it their conversation, and tagging the bot is just a normal mention.
- Only plain, human-written messages qualify — never bots, message edits, or system messages.
- Whenever it can’t be sure a follow-up is meant for it, it stays quiet —
and it never posts busy/error chatter into a thread over a message that
didn’t tag it (in a briefly rate-limited channel, a follow-up is simply
dropped). A fresh
@aireservealways works.
Follow-ups and the 👀 reaction use newer Slack permissions. If they don’t
appear and the app is installed in your own workspace, an AI Reserve
org admin can reinstall from the portal (your org’s admin page → Add to
Slack) — one click, nothing else changes. In a shared channel with
the AI Reserve team, just tell us and we’ll refresh it on our side.
Formatting and replies
Answers render as native Slack formatting — bold, code blocks, bullets, and links the way Slack draws them, not raw Markdown syntax. Replies are kept chat-length and conversational rather than report-length, with enough headroom for reasoning models to think before they write. When a mention runs into trouble, the bot says so in plain language instead of going quiet (unprompted follow-ups prefer silence — see above):- Model not available — a model your org hasn’t enabled gets an honest note with real options to pick from (or tag without a model id and let the auto-router choose).
- Provider trouble — when a model’s provider is having an outage, the bot says that and suggests retrying or dropping the model id.
- Busy or slow — rate-limited channels and timed-out generations get a short “try again” note.
- Nothing came back — if a model burns its whole budget thinking or a
provider safety filter blocks the output, the bot says exactly that
(still with the
served byfooter — the model did run).