One firm of AI specialists for every system you work in.

Instead of an AI assistant in every tool, each with its own setup, permissions and bill, Tinfirm runs your specialists from one self-hosted platform. Define a specialist once, and it takes work from the Tinfirm app, Jira, GitHub, GitLab, Slack and Teams, works across them with the accounts you allow, and brings every decision that needs a person to one inbox.

  • Self-hosted on Docker Compose or Kubernetes
  • Any model, through your own LiteLLM gateway
  • Your systems' keys never enter the agent's sandbox

Not released yet; early access is open to a few teams.

SHOP-241Pay with a gift card at checkout
Queued
Trigger · When an issue in SHOP is labelled agent:refine, Analyst prepares it for refinement.
Event received: agent:refine added to SHOP-241 in Jira
An example thread, played live. Answer the question to steer it.

One platform instead of an assistant in every tool.

AI is arriving in each of your tools on its own terms: its own setup, permissions, bill and log, and it sees only the tool it lives in. Tinfirm gives all of your systems the same specialists, under one set of rules.

Tinfirmyour deployment
Your specialists, each defined once
AnalystReviewerWriterFinance analyst
  1. EventIn Jira, agent:refine is added to SHOP-241
  2. WorkAnalyst reads the story, related issues and the checkout code on GitHub
  3. ResultAcceptance criteria posted on SHOP-241
Also usesGitHub
  • One inbox
  • One permission model
  • One budget per person
  • One audit log
Your MCP serversYour own tools
InJiraIn Jira, agent:refine is added to SHOP-241
Back toJiraAcceptance criteria posted on SHOP-241
Nine ways in, one set of rules. Pick one to see its example.

Works with Jira Cloud and Data Center, GitHub, GitLab, Slack, Microsoft Teams, schedules, a signed webhook for any other software, and your company's own remote MCP servers. People also start conversations in the Tinfirm app itself, from their own AI client over MCP, or in a direct message to the bot.

Every system and the rules over them

Manage AI once, not once per tool.

Your tools will get AI either way. The decision is whether you set it up, secure it, pay for it and audit it once, or again in every tool.

ComparedAn assistant in each toolWith Tinfirm
SetupConfigured again in every tool, with its own instructionsDefined once, used from every system and shared with the teams that need it
ReachWorks inside the tool it ships withOne job can use Jira, your repositories and your own MCP servers together
DecisionsQuestions wait in each tool's own screensEvery question and approval in one inbox, and where the work started
AccessPermissions set separately in every toolEach tool reads or writes, writes ask a person by default, and a person's settings only narrow
SpendA plan or seats per tool, billed by each vendorOne key and budget per person on your own gateway, with spend by person, specialist and trigger
AuditA separate log in every toolOne hash-chained log of every tool call, the account it used and who approved it
ModelsThe models its vendor offersAny model your LiteLLM gateway serves, on Claude Code, Codex, pi or OpenCode
Where it runsUsually in the vendor's cloudOn your own servers, and your systems' keys never enter the sandbox
Who a specialist acts for, and who pays

From an event to a known end state.

Your tracker keeps owning the work. Tinfirm adds the specialists, their runs, the decisions and the audit trail, and every run ends in a state you can see, with its cause.

Something happens where you already work

A label is added in Jira, a pull request opens on GitHub or GitLab, someone mentions the bot in a Slack or Teams channel, a schedule fires, another system calls the webhook, or a person starts a conversation with a specialist in the Tinfirm app, from their own AI client or in a direct message. Tinfirm watches with the account you chose, so it sees only what that account sees.

JiraGitHubGitLabSlackMicrosoft TeamsWebhookScheduleYour AI clientTinfirm app
SHOP-241Story
Pay with a gift card at checkout
Customers ask to use the gift cards we sell in our stores when they order online.
checkoutagent:refine
StatusBacklog
  1. 07:42Lena added the label agent:refine
  2. 07:42Tinfirm picked it up for Analyst
Follow one piece of work, step by step

Define your own specialists.

Give each one a name, a role, instructions, tools and access, and share it. Specialists do jobs. No agent manages agents. The four below are examples.

BABusiness analystFor product owners

Turns a rough story into a ready ticket: acceptance criteria, edge cases and the questions only the product owner can answer, posted on the issue.

When a story is created in PROD, Business analyst does write acceptance criteria and ask what's missing.

What comes back (example)
BABusiness analyst commented on PROD-88
Acceptance criteria
  • A customer can start a return within 30 days of delivery.
  • The return label is sent by email as soon as the return is accepted.
  • The refund goes to the original payment method.
Question for you: do marketplace sellers follow the same policy?
What a specialist is made of

The inbox, not a board.

Attention is the scarce resource. Your tracker stays where the work lives; Tinfirm shows you only what needs a human decision, and lets you make it where you already are: in the inbox, on the issue, or in the chat thread. Try the one on the right.

Questions
Answered by anyone who can write where the work is. The next turn gets every answer.
Approvals
Decided by you in your own conversations, by the trigger's team in shared ones. A member decides, never an agent.
Failures
Shown with their cause. Every turn ends in a known state; nothing fails silently.
How questions and approvals work
Inbox2 decisions need you
Open decisions
Access requestMonthly review · Finance analyst

Finance analyst asks to use the accounting MCP server in this conversation, to read last month's invoices.

QuestionPROD-88 · Business analyst

Does the new returns policy apply to marketplace sellers too?

Failed threads
Tester · Scenarios for SHOP-238Failed: the runner host went offline during the turn

Built for the company that runs it.

What decides whether agents get past a pilot: which models they use, what they can reach, who approves their work, and who pays for it.

Your choice of model

Any model, through your gateway

Specialists reach models through LiteLLM, bundled with Tinfirm or your own. Pick the provider, and change it without rebuilding a specialist.

Four agent runtimes

Claude Code, Codex, pi and OpenCode. A specialist lists the runtimes its instructions are tested on, and each person picks among them.

Subscriptions people already pay for

A member's own Claude or ChatGPT subscription can run their own work on their own runner host, outside the company's budgets.

Fits your systems

Your own systems as tools

Connect your company's remote MCP servers. An admin confirms whether each tool reads or writes; until then it counts as a write.

A skills library

Write a procedure once, with its scripts and templates. Specialists pin a version, so editing a skill changes no specialist until its editors move the pin.

Where people already are

Talk to a specialist in Tinfirm, from your own AI client over MCP, or in a direct message in Slack or Teams. Sign in with your own OIDC provider.

Under control

A budget per person

Every member and service identity has one key with a budget your admins set. A spent budget stops only its owner's work; nobody else's budget pays.

Kill switches

Pause a specialist or a trigger. Suspend a service identity, and everything that uses its accounts or budget stops.

No silent widening

When a shared specialist gains a tool, a system or a repository, your conversations keep the version you accepted until you accept the change.

Runtimes, models, skills and memory

Tinfirm runs where you run it.

It is not a cloud service. Your data, credentials, runners and subscriptions stay yours, and your systems' keys never enter the sandbox an agent works in.

Credentials stay in your deployment

Systems are reached through tools the server runs, git through the runner host's proxy, and models through its model proxy. Your systems' keys and the gateway's key never enter the sandbox.

Access follows the audience

When you talk to a specialist, it acts with your own accounts, so every system answers it as it would answer you. A trigger acts with the accounts its author chose.

Every action on the record

Every tool call is recorded with the account it used, whom it acted for and who approved it. Each entry carries the hash of the one before, and the app can only add and read.

Your runners, your sandboxes

Runner hosts run on your own machines or VMs, with Docker or Kata microVMs, and connect out to Tinfirm over WebSocket. Nothing calls in.

See how each step is protected

Hire your first specialist.

Tinfirm is in development and not released yet. We build it with Tinfirm itself, and we're looking for a few teams who will run it on their own infrastructure and tell us what's missing.

Request early access