New · every job now runs in a room behind an Iron Proxy door — read how it works →

Meet your AI team.
It runs on your infrastructure.

Botman agents are teammates you can hand real work to. They connect to your tools, work inside them like you do, and come back with finished work — from a machine you own, behind a door you control, with the models you already pay for.

your machine · iron proxy door · any model · self-learning · works 24/7
[00] Works with/ Your stack
GitHub
Slack
Discord
Telegram
Microsoft Teams
Notion
Google Docs
Office 365
Linear
X (Twitter)
PostHog
Vercel
Cloudflare
AWS
Google Cloud
+ yours, on request
[01] Demo/ See it run
Botman — product demo · 1:21
[02] Teammates/ Message them

Message agents like teammates.

Give work to an agent the way you’d message a colleague — in the dashboard, in Slack, or in Discord. It takes the project from start to finish, keeps context on how your team works, and comes back only when it needs your approval.

Share the thread and your teammates join it. Everyone’s messages land in one conversation, attributed by name, and the agent answers with the whole thread in view.

  • One thread, many humans — the link is the invite
  • Approvals, corrections and go-aheads happen in the same thread
  • The same agent, the same memory, in the dashboard, Slack and Discord
Launch brief — fees previewASMBShare
A
Aarav 14:02
draft the launch brief for fees preview — target next Tuesday
S
Sumer 14:02
include the EU rollout caveat, we’re not launching there yet
Maya joined via link
B
Botman 14:03
Drafted with Sumer’s EU caveat in the scope section. Pulled the merged PR list and the support themes from last week for context.
artifact · markdownLaunch brief — fees previewv2
M
Maya 14:05
marketing wants a 3-line changelog for the app — can you add it?
Botman is updating the brief · notepad: EU excluded, Tuesday target, changelog requested
[03] Your team/ Many agents at once
Botman — agents · 6 active
Coderbuiltin · v4
Implements the spec, opens the PR
model claude-sonnet-5
guardrails 60 min · 2 repos
githubgitshelldocker
Testerbuiltin · v2
Writes and runs the test plan
model claude-sonnet-5
guardrails 45 min
githubgitshellbrowser
Designerbuiltin · v3
Design spec, states, prototypes
model claude-opus-5
guardrails 40 min
githubnotionbrowser
Researchercustom · v6
Competitive and user research briefs
model claude-opus-5
guardrails 30 min · 200k tok
googlenotionbrowser
Supportcustom · v9
Triages tickets, drafts replies
model claude-sonnet-5
guardrails 15 min · read-only
slackdiscordlinear
+ New agent

Work with many agents at once.

Create an agent, give it a job, and add another when the work grows — one on the product, one on tickets, one on research. Agents work in parallel, hand work to each other inside workflows, and keep going 24/7.

Each agent is a definition you own: a role, standing instructions, a model, the tools it may use, and guardrails. Start from the built-in roster or write your own — every edit is versioned.

  • Built-in roster — coder, designer, tester, product and architecture analysts
  • Model, tools and guardrails set per agent
  • Create one from the dashboard or by asking in chat

Works where you work

Connect GitHub, Slack, Linear, Notion, Google Workspace, Vercel and PostHog once, with OAuth. Grant each agent only what it needs; brokered calls keep the long-lived token out of its hands.

Say it once. It becomes a routine.

“Every Monday at 8, summarize last week’s tickets.” That sentence is a routine — once, hourly, daily or weekly, delivered to the dashboard, Slack or Discord — and it survives the machine being replaced.

Connect the agents

Chain agents into a workflow: each step names an agent, takes the previous step’s output, and ends at a gate. Parallel branches run in parallel. You watch the run instead of routing the work.

It comes back when it matters

Sensitive steps — merging, deploying, touching infra — pause for a human. Approve from the dashboard or from chat; the run picks up exactly where it stopped.

[04] Self-learning/ Gets smarter, shows its work

Agents that get smarter — and show their work.

Every agent writes down what it learns as it works: how your team names things, who approves what, which edge case bit last time. That memory is shared across your agents and injected into every session — show one agent a job today, and a different agent knows it tomorrow.

When an agent solves something worth repeating, it saves the procedure as a skill — versioned, readable, editable in Settings. And when it sees a better way to run a workflow or a sharper brief for an agent, it files a proposal with its rationale and evidence. You review; nothing about your agents or workflows changes without a human saying yes.

  • Team memory plus a profile per person, curated by the agents — capped, so they consolidate instead of hoarding
  • Skills: reusable procedures the agents wrote, visible and editable
  • Improvement proposals with evidence — apply in one click, versioned, future runs only
Botman — settings · what Botman learned
Memory · team 14 entries · 3.1k / 4k
§ Fees are quoted in bps, never percent — every surface
§ Preprod deploys go out through #releases; Aarav signs offadded by Coder · run #142
Memory · Sumer
§ Wants PR descriptions as bullet lists, edge cases first
Skill saved
cut-a-release v3tag → changelog from merged PRs → notify #launches · saved by Coder, loaded on demand
Improvement proposal pending review
Add a reviewer pass before the PR opens
evidence: 6 of the last 8 runs waited 20h+ at review · feature-development v14 → v15
ApplyRejectfuture runs only
[05] Security/ A computer of their own

A computer of their own — one you own.

Hosted agent products give each bot a computer in someone else’s cloud. Botman agents run on a machine you own: code, credentials, and model calls never leave it. Every job runs in a room — its own container — whose only way out is an Iron Proxy door that opens to the hosts that unit was defined to reach and injects credentials at the boundary. Every allowed and blocked action is written to an audit trail you can export.

Your infrastructure

The runner installs on a VM or box you own and connects outbound to the control plane. No inbound ports. Your code, credentials, and model calls stay on that machine.

A room per unit of work

Every conversation, workflow run, and routine run gets its own room: a container from a pinned job image with capabilities dropped, no-new-privileges, pids/memory/CPU limits, a non-root user. Jobs run inside it; the runner’s home and other rooms are never mounted.

Credential isolation

Model keys and cloud credentials are configured in your terminal, on the runner — never pasted into a dashboard, never stored by Botman. Sessions hold inert placeholder tokens; the real secret is swapped in at the door, outside the room.

Iron proxy door

A room’s only way out is its own Iron Proxy sidecar — digest-pinned, open-source — raised for each job with that job’s policy and removed after it. Default-deny: unlisted hosts, raw TCP, DNS bypass, IPv6, and cloud metadata endpoints all fail. An idle room has no way out.

Least-privilege grants

Each agent declares the connectors and runner tools it may use. GitHub tokens are minted per job, short-lived, and scoped to that job’s repositories.

Action-class policy

Every tool call is classified: read context, write task, write connector, write code, deploy infra, read secret, admin config. Restricted mode blocks the write classes until an admin enables them.

Human gates

Workflow steps can require sign-off before the next one starts. Approve, retry, skip, or cancel from the dashboard or from chat.

Audit trail

Every allowed and blocked action is recorded as a metadata-only security event — actor, surface, action class, target, decision, reason. Proxy audit logs are ingested alongside. Export it all as JSON.

SOC 2 · in progressSecurity posture document and changelog available on request.How rooms work →
[06] Workflows/ Multi-agent, on your runner

Multi-agent workflows, self-hosted.

A workflow is an ordered set of steps. Each step names an agent, takes its inputs from the task or from earlier steps, runs on the model you chose for it, and ends at a gate — automatic, human approval, or passing checks.

Runs snapshot the workflow, then execute step by step inside one room on your machine, so later steps read earlier steps’ files directly. Watch each agent work in real time, open the artifacts and PRs it produces, and approve, retry, skip or cancel any step.

  • Start from the feature-development template, or describe a workflow in chat
  • A model and a gate per step; parallel branches run in parallel
  • Every run keeps its logs, usage and artifacts
Botman — workflow run #12 · feature-development
Product spec Architecture Code 2 Tests
Reading hooks/use-pnl-history.ts
$ pnpm test pnl-cards
Editing components/pnl/share-card.tsx
Opening PR against preprod…
[07] Models/ Any model, your keys
Botman — settings · models
Claudesubscription login on agents-1 · cloud.sh claudeconnected
OpenAIAPI key · ~/.botman/env on agents-1connected
OpenRouterAPI key · not configuredadd on runner
Model per agent
Coderclaude-sonnet-5
Researcherclaude-opus-5
Model per workflow step
feature-development → Architectureclaude-opus-5
feature-development → Codeclaude-sonnet-5
keys never entered in this dashboard — configured in the terminal on your runner

Any model. Your keys.

You’re not locked to one lab’s model. Sign in with your Claude subscription or API key, or bring OpenAI and OpenRouter keys — configured on your runner, in the terminal, never pasted into a dashboard and never stored by Botman.

Pick a model per agent and per workflow step: a heavier model for architecture, a faster one for tests. Model calls go from your runner straight to your provider.

  • Claude, OpenAI, OpenRouter
  • A model per agent, per workflow step, and an orchestrator model per runner
  • Use what you already pay for — no second bill for the agents’ tokens
[08] Jobs/ Give each agent one

Give each agent a job.

Agents are generic; the job you give them is not. A few we see every week — each one running on the customer’s own runner.

[09] Setup/ One command

One command. Your machine. No inbound ports.

Install the runner on any Linux VM or box you own with a curl one-liner. It connects out to the control plane, installs its own toolchain, and keeps itself updated. The control plane holds definitions and state; your machine does the work.

No Kubernetes, no YAML, nothing to expose. A second machine is the same command again.

  • One self-updating daemon, outbound only — nothing listens
  • Installs Docker if it’s missing, plus git, Node, GitHub CLI, Claude Code, gcloud and aws
  • Heartbeats every 30 s — liveness and capabilities live in the dashboard
ssh agents-1 — your VM
curl -fsSL https://cp.botman.work/install | sh -s -- --token brt_…
verifying runner.py sha256 · ok
registered as agents-1 · outbound only, no ports opened
installing toolchain → docker · git · node 22 · gh · claude code · gcloud · aws
pulling job image · iron proxy sidecar (digest-pinned)
cloud.sh claude
claude signed in on this machine · key kept in ~/.botman/env (0600)
posture: rooms behind an iron proxy door · enforced egress
heartbeat 30s · 6 agents online · waiting for jobs
agents-1v0.17 · debian 12 · europe-west4gitshelldockerbrowser
[10] FAQ/ Straight answers
How is Botman different from hosted agent products?

The agents have a computer of their own — a machine you provide. Code, credentials and model calls never leave it; every job runs in a room behind an Iron Proxy door; and you choose the model. Hosted products run your work on their computer, with their model.

Where do the agents run?

On any Linux VM or box you own. One command installs the runner. It connects outbound to the control plane; nothing listens for inbound traffic. Add a second machine with the same command.

Which models can I use?

Claude through your subscription or API key, plus OpenAI and OpenRouter keys — configured on your runner, in the terminal. Pick a model per agent and per workflow step.

What does “self-learning” actually change?

Memory and skills the agents write for themselves are used immediately, and you can read and edit both in Settings. Changes to agents and workflows are proposals: the agent files its rationale and evidence, you apply or reject, and applied changes are versioned and affect future runs only.

Do the agents share one computer?

They share one runner, but each conversation, workflow run and routine run gets its own room — its own container, files and door. Rooms never see each other, and the runner’s home is never mounted into one.

Where do I talk to the agents?

In the dashboard, in Slack, or in Discord — the same agent, the same memory. Share a dashboard thread by link and teammates join it.

Meet your first agent.

An AI teammate you can trust with real work — on your own infrastructure. A 20-minute walkthrough: install a runner, create an agent, hand it a job, share the thread.