The Boring product

One workspace.
For work your business owns.

Build and operate agents as a team. Define the process, grant exact actions, assign the decisions, and keep the work reviewable from the first trigger to the final result.

A clear brief. A shared way of working.

Choose what starts the work, connect the tools, and write the instructions. Your team can read and change the same agent.

The Onboard New Employee agent definition with its model, email and schedule triggers, and plain-language instructions.

The brief, triggers, and instructions live together in the agent’s definition.

Real product · Sample data
Capabilities

The controls behind
the work.

Explore the six parts of the platform. Open any capability for the details, limits, and controls behind it.

Build & connect

From your instructions to your entire stack.

Describe the work, connect the right tools, and give your team an agent they can shape together.

1,500+ tools. Your systems, connected.

Connect the apps your work already runs on, plus . Choose each agent can use.

An agent in your Slack thread.

Status: New

Start an enabled agent in a Slack DM or @mention. Get results in the thread and with the same agent when it finishes. Shared agents can add . Your linked Boring account determines what you can run.

Choose your model. Bring your own key.

Use Boring-managed with no setup: , or GPT, Gemini, and Grok with no key. Lower-cost open-weight models are rolling out. Or Anthropic, OpenAI, Google, OpenRouter, or .

Build by describing.

Turn plain-language instructions into . Review the draft and when it is ready.

Agents that call agents.

Delegate a task to another agent in the same workspace, wait for its result, and continue with that output. , depth limits, and keep delegation bounded.

Start wherever work arrives.

, , , , , , , , , and can all start the same agent.

A published OpenAPI contract.

Build Boring into your own systems. Manage agents, start runs, and retrieve results through a , with an generated from the same route schemas.

Bring your own API.

Import an or connect a token-authenticated , review the discovered actions, and attach the toolkit to the agents that need it.

Multiplayer, built in.

Edit instructions together with . A visible keeps drafts editable if the live room is unavailable.

Reusable agent templates.

Browse and adapt a starter agent to your team. Each starts as a for you to connect, review, test, and publish.

Public forms, structured inputs.

Build an intake form with text, email, dates, and choice fields. Share its and turn submissions into agent runs with the submitted context.

Find what to automate.

explores your recurring work, suggests directions, and turns your chosen idea into a .

Security

Useful access. Deliberate boundaries.

Control what an agent can reach, which actions it can take, and where its credentials live.

Credentials scoped to the run.

A handles authenticated requests. The engine receives tied to the run, workspace, and agent version.

Exact-action permissions.

Grant only the an agent needs. The runtime enforces the list: a withheld action is and cannot run. Connecting an app does not grant unrestricted access to it.

The right account, every time.

Connect several named accounts for the same app or custom integration, keep each private or shared, and . If a pinned account is removed or expires, instead of switching accounts.

Least privilege, suggested from real runs.

When an agent holds a broad app grant, the assistant suggests narrowing it to the exact actions its instructions and use. Each action is checked against the live catalog, and .

Access checked as work happens.

Tool access checks current connections and . blocks subsequent authorized requests.

Isolated JavaScript and Python.

Run calculations in a fresh, bounded sandbox. No network, credentials, packages, or host access; only are available. Python is .

Secrets stay out of results.

are redacted from returned content and errors, including secret echoes .

Encryption in transit and in the vault.

TLS protects data in transit. Credentials Boring stores directly use an .

No training on your data.

We never train foundation models on your content, and we never sell your data.

Human control

Judgment you assign. Approval on by default.

Send each sensitive step to the right person with the exact proposed action, a due date, and reminders. They approve it, change it, or stop it, and the runtime enforces the gate, not the prompt.

Approve, modify, or reject the exact call.

A gated action waits for its reviewer with the exact tool call and scrubbed arguments up front. Approve it or , and the run picks up where it paused; . Approve or reject from the mobile companion too.

Approval on by default.

New agents start with waiting for approval, so loosening that is a deliberate choice. When Boring can’t tell whether an action only reads, it .

An operations assistant on every page.

Press ⌘J or Ctrl+J anywhere in the web console. Ask , what is waiting on a person, or where the spend went. It reads run evidence before diagnosing, sees only agents you can access, and .

A reviewer, not a shared inbox.

, set , and choose what happens when an approval is still waiting after its due date: reject it and stop the run, or skip the action and continue.

Allow, Ask, or Never. Based on the details.

Status: New

Set for the amount, recipient, domain, or other fields of a proposed action. Apply them to connected apps and alike. Review an exception, block a matching action, or allow an eligible call within the boundaries you set.

Add a hold to the request.

Status: New

Tell a Slack agent “ask me before sending” or add a . Boring confirms the exact holds before work starts and enforces them . Unsupported or ambiguous holds stop the request with an explanation.

Roles and approval policies.

Control . Set each agent to pause before all calls, write actions only, or none. Manage individual Allow, Ask, and Never rules in the Tools tab, then .

Approve from Slack.

Review the exact proposed action and scrubbed arguments, then approve or reject with your . Answer supported input requests with , or adjust a supported call with , directly in Slack. Complex forms link to the console for review.

Improve the agent from the run.

Status: New

Open “Change this” on a run or task. Use its evidence to propose , , and apply it to the draft. Publishing remains a separate decision; the activity record links back to the source run.

Decide it from your phone.

The supports approvals, human-input requests, live runs, stop and retry, and workspace usage.

Human feedback, mid-run.

Status: New

When a required detail is missing or a target is ambiguous, the agent can without a prewritten pause point. Answer in Tasks or a , then continue with the human response in context.

Inspect the controls before a run.

See the agent’s permitted tools, limits, waits, retries, stops, and notification routes. The distinguishes enforced limits from model-judged behavior.

Durability

Built for the part where things go wrong.

Runs outlive the machines they start on. Saved progress, separate failure budgets, durable waits, and a limit on every axis keep a crash, an outage, or a confused agent from turning into repeated work or runaway execution.

Recover without starting over.

Structured runs save their plan, progress, and action outcomes. from the last completed step; when , Boring blocks automatic repetition instead of guessing.

Write the procedure. Boring enforces the order.

Numbered instructions run as an enforced plan: one step at a time, with until the agent reaches them. Each step must be marked complete, with , before the next begins.

Survives a lost worker.

Each model turn runs as its own durable workflow step and saves a when it finishes. If the machine running an agent disappears mid-run, another picks the run up from the last completed turn instead of starting over.

Ride out provider outages.

When a model provider throttles or fails, eligible runs wait within a , honor its cooldown, and don’t repeat completed work. In structured runs, outage recovery never spends the attempts a step gets for real mistakes. If the provider stays down, the run ends with its saved progress and a clear reason.

Waits measured in days.

Approvals and pause the run, survive restarts, and hold no capacity while they wait. An approval waits seven days by default, or a day past its due date, and is never treated as approved. When the answer arrives, the run continues where it stopped.

Every start lands once.

Each scheduled occurrence is claimed under a unique key, that carry a delivery ID are deduplicated, and is written only once. A retry upstream doesn’t start a second run, and a second click doesn’t decide twice.

An ordered log you can replay.

Reasoning, tool calls and results, approvals, agent calls, outputs, and errors are stored with a sequence number the database assigns in the same write as the event. Reconnect from and the rest replays in order.

Spend limits that follow retries.

Your plan’s constrain model spend. count toward the run ceiling before another request is admitted.

Budgets checked before each model call.

Set a per-run maximum, daily and billing-period workspace budgets, and . Each model request, including the assistant, drafting, checks, and calls on your own keys, before it is sent. Budgets cover Boring’s recorded model usage, not provider invoices.

A limit on every axis.

, , , , , , , and each have an enforced limit, so a confused agent can’t loop, flood a system, or spend without end.

Schedules that know when to stop.

A schedule pauses after until you re-enable it, giving your team time to fix the underlying problem.

Smarter tool inputs.

Full input schemas guide tool calls. and address invalid arguments while preserving unrelated valid fields. Reviewed, version-matched tool guidance helps avoid known mistakes; inputs are checked before execution.

Definition checks and quality review.

flag setup and instruction issues. After publication, can suggest fixes for ambiguity; your team reviews and applies the changes.

Test a draft before it goes live.

Try unpublished changes with a while scheduled work keeps using the published version. Draft runs use real tools; Confidence checks provide recorded replay.

Backtesting with Confidence checks.

Confidence checks against a draft with live tools blocked. Inspect changed tool calls, arguments, and approvals.

Auditability

A result you can trace back to the work.

See what ran, what didn’t, what it cost, and which evidence supports completion. Keep the decisions attached to the run.

Require evidence before “done.”

Add to structured steps. Require a or a for an exact target before the step can complete.

A live, reviewable audit trail.

Follow as they happen. Inspect retained request and from the run timeline.

Recorded action outcomes.

Keep proposed actions, confirmed results, and distinct. is not treated as proof of delivery.

Failure reasons you can act on.

are labeled as billing, rate limiting, or context size, with the provider’s ready to copy. is flagged as a safety stop, with guidance, instead of reading like an error.

See what didn’t run, and why.

explains why scheduled or email-triggered work didn’t start: a skipped schedule, a filtered email, a blocked run, or a schedule paused after repeated failures. Entries are kept for 30 days. It is an operations log, not a complete audit log.

Know where the spend goes.

Owners and admins see , and compare per-run costs.

Export run summaries as CSV or JSON.

Download summaries of an agent’s for reporting and review, with a note when older runs are left out. Retained tool-call payloads remain inspectable in the console.

Know who changed what.

Review the agent’s for recorded changes to permissions, tools, triggers, knowledge, and published definitions, with the actor and before-and-after context.

Version every change.

Every version stays a diff you can review and . and move between workspaces without secrets.

See which agents need attention.

Recent run outcomes surface . bring failures, blocked runs, and approval requests to your team.

Weekly email digests.

workspace owners and admins receive an email and in-app of runs, outputs, approvals, and spend, with week-over-week context.

Knowledge & outputs

Give it context. Get something useful back.

Ground the work in your sources, keep learning reviewable, and deliver files and reports your team can use.

Artifacts: public or login required.

Create . Keep artifacts private to authorized, signed-in workspace members, or to share publicly with end users. stay workspace-only.

Web knowledge that stays fresh.

Index individual web pages, RSS, text, and into . Re-sync supported web sources .

A browser, built in.

Load and inspect with , without configuring an external browsing tool.

Memory that learns from the work.

can turn experience and your feedback into for future runs. Every lesson links to its source. Set inferred learning to .

GitHub repositories and pull requests.

Read and edit files from repositories , then for review. Publishing changes is approval-gated; .

Real files, ready to download.

Collect the CSVs, JSON extracts, charts, and in one place on its run.

Remember useful context across runs.

, recent-run recaps, and lessons . Inspect, manage, or download the agent’s ; learning updates its context, not the underlying model.

03Supervised runtime

One path from trigger to proof.

However work arrives, Boring applies the same scope, human checkpoints, execution controls, and reviewable record.

Configured triggers · 6

Schedule
time
Webhook
URL
Inbound email
routing
Form
submitted
SaaS app event
event
Chrome extension
page

Other starts · 6

Slack
DM + @mention
Manual
console
Mobile app
iOS + Android
API
REST + OpenAPI
MCP
client
Agent start
handoff
BORINGSUPERVISED RUNTIME
01

Plan

context assembly

  • frozen definition + version
  • trigger input + forms
  • knowledge + memory
02

Govern

policy layer

  • exact action grants
  • run-scoped credentials
  • run + spend limits
  • approval on by default
  • Allow / Ask / Never + request holds
03

Execute

bounded runtime

  • scoped tool dispatch
  • sandboxed code execution
  • saved checkpoints + recovery
  • bounded retries + queues
04

Prove

evidence + operator record

  • live steps + tool calls
  • approvals + action receipts
  • authored completion checks
  • tokens, cost + outputs

Tools & outputs · scoped

Model choice
managed + BYOK
GitHub
repos + PRs
Connected apps
1,500+ catalog
Curated packs
guarded BYOK
OpenAPI 3.x
reviewed import
Remote MCP
token-authenticated
Public web
render + inspect
JavaScript + Python
network-isolated
Agent calls
bounded delegation
HTML artifacts
optional public link
Run files
workspace download
6 configured triggersassigned reviewerssafe recoveryrequired completion evidence

Access is scoped before an action. Recovery keeps recorded progress, and a numbered plan never repeats an uncertain write automatically. Authored completion requirements check saved evidence before a step can finish.

// common questions

The details, answered.

What is Boring AI?

Boring AI is the operating layer for AI work a business owns. A webhook, email, form, schedule, app event, or addressed Slack message starts an agent in a shared workspace; sensitive steps pause for an assigned teammate; and each run keeps the reasoning, tool calls, inputs, outputs, approvals, and cost together in one reviewable record.

Why pay for Boring if my AI plan already includes Claude or an agent?

If the work is personal, ad hoc, or yours to steer, use what your plan includes: Claude, and the personal agents now included in many AI plans, handle that well. Boring earns its place when the workflow belongs to the business. It starts from business events or an authorized Slack request, lives in a shared workspace where every change is a versioned diff, acts only through the exact actions granted to it, routes sensitive steps to an assigned reviewer, resumes eligible failed runs from the last completed step, and leaves one record per run that other people can inspect. You are paying for operating and governing the workflow, not access to another chatbot.

What is supervised automation?

Supervised automation runs on its own for routine steps and stops for an assigned person on the ones that matter, with the boundaries enforced by the runtime rather than written into a prompt. You describe the work in plain language instead of drawing a flowchart. The agent can call only the exact actions you granted, and new agents start with every connected action waiting for approval until you decide what to loosen. At each pause, the assigned reviewer can approve the step, modify its exact arguments, or reject it, and the decision stays attached to the run that needed it.

How is Boring different from OpenAI's dots, Muse from Meta, or Grok Bot?

Use them when the work is one person's. Each gives an individual an agent with a cloud computer to work on: you message it, it keeps working on schedules, and it checks with you before risky steps. Grok Bot's Team Bots, in public beta as of October 2026, let a team share one bot, though each routine still runs for the person who set it up. Boring is for work a team owns and answers for. A known event starts the agent: a webhook, a form, a schedule, an app event, an API call, or an addressed Slack message. It lives in a shared workspace with roles, and every change to its definition is a versioned diff you can roll back. Sensitive steps go to an assigned reviewer who can approve, modify, or reject them, with due dates and reminders. Eligible failed runs resume from the step that failed, and each run keeps one record the team can review, on the model and keys you choose.

How is Boring AI different from Zapier, n8n, or Make?

Those are flow builders: you draw a fixed graph of triggers and actions, and the graph is what runs. Boring has no graph — you describe the outcome and the agent plans the steps on each run, so a renamed field or an unforeseen edge case doesn't send someone back to re-wire nodes. The trade-off is real in both directions: for simple app-to-app plumbing a flow builder is cheaper and faster to set up, and Zapier's app catalog is far larger than our 1,500+ connected tools. Boring is for the workflows with judgment in them.

What actually happens at an approval gate?

New agents start with every connected action waiting for approval; owners can loosen that to writes only or auto-approve eligible actions they trust, such as reads, and an action Boring can't classify is treated as a write. When a step needs approval, the run pauses before it executes and the request waits in the shared Tasks inbox for its assigned reviewer; a tool approval leads with the exact proposed call and its secret-scrubbed arguments. That teammate — or a workspace owner or admin — can approve, modify, or reject it in the console, or approve or reject it from the native mobile companion. Linked reviewers can also approve, reject, or modify supported calls in Slack, with complex forms opening in the console. The agent's owner or an admin can reassign it; an approving note returns to the agent as context before the run continues. Gates can carry due dates and reminders, and runs that remain paused in the background follow the configured reject-or-skip outcome after the deadline and grace period. Every decision and handoff stays attached to the run.

Can I work with a Boring agent in Slack?

Yes. An owner enables Slack runs for an agent, and you link your Slack identity to your Boring account. Address the published agent by its exact name, such as @Boring Daily Triage: review this queue, in an invited channel or a DM. Results and optional progress notes return to the same thread. Once the run finishes, mention Boring again in the channel thread or reply in its DM thread to start a follow-up with the same agent. Follow-ups use bounded summaries of earlier runs, not unrestricted channel history. Use Respond for a pending question; a free-text reply does not complete its form.

What happens when an agent needs more information?

The agent can pause and ask a focused question when a required value is missing, a write target is ambiguous, or instructions conflict. It is instructed to check available tools and knowledge first; the model decides when to ask, and the runtime enforces the pause and validates your answer. No prewritten input gate is needed. Questions go to an authorized requester or the configured reviewer fallback, in Tasks and, for supported workspace-visible Slack runs, the originating thread. Each run allows up to two automatic input pauses before stopping with an explanation.

Can approval rules depend on the amount or recipient?

Yes. Allow, Ask, and Never rules can compare fields on a proposed action, such as an amount, recipient, or email domain. They work across connected apps and custom integrations, including curated packs, OpenAPI, and MCP. Rules are versioned with the agent and stay with a run through pauses and retries. Missing or incompatible values require review, and an Allow never grants an action the agent does not have. Supported Slack request holds, such as ask me before sending, add restrictions without loosening existing controls. Holds must map to the granted action's fields; ambiguous or unsupported conditions refuse the request. These are per-action checks, not aggregate spending limits.

Can I improve an agent based on a run?

Yes. Open Change this on a run or task to work from that run's evidence. The console assistant can propose instruction, tool-grant, or approval-rule changes. An authorized manager reviews the diff and warnings for rule changes that may loosen approvals, then explicitly applies it to the working draft. Publishing is a separate action, and the activity record links the change to its source run. In Slack, eligible managers can prepare an instruction addition and follow a link to review it in the console. Agents do not rewrite or publish themselves, and this is not automatic analysis across multiple runs.

Which tools can a Boring AI agent use?

1,500+ connected apps covering the common operations stack — chat, email, CRM, helpdesk, project tracking, finance, docs — plus guarded first-party packs for selected APIs, any HTTP API that ships an OpenAPI spec once an admin reviews the imported operations, and remote MCP servers that authenticate with a token. Agents can also load fully rendered public web pages, search knowledge you've added, and run short JavaScript or Python calculations in a sandbox with no network or credential access.

Which AI models does Boring use?

New agents run on Claude Sonnet 5.5 by default, through Boring-managed models with no API key to set up. Boring-managed models also include GPT, Gemini, and Grok with no key, and lower-cost open-weight models are rolling out on the same managed route. Teams that prefer their own provider accounts can bring an Anthropic, OpenAI, Google, OpenRouter, or compatible-endpoint key instead. Set a workspace default or pin a model per agent, and backtest the change with the agent's Confidence checks before you switch. If a saved key stops working, the run stops and names the provider rather than quietly moving your traffic to Boring-managed models.

What starts a run?

A schedule, an inbound webhook, an inbound email, a public form submission, an event in a connected SaaS app, a named Slack DM or @mention for an enabled agent, the Chrome extension on the page you're looking at, the workspace API, an MCP client such as Claude Desktop or Cursor, or another agent. Whatever starts it, the same agent definition, granted actions, and reviewers apply, and the run is recorded in the workspace rather than in one person's chat history. When a run fails you can retry it from the step that failed rather than from the top — provided it got at least one step done; the console tells you when only a full re-run is possible.

Do agents train on our company data?

No. Nothing is fine-tuned on your workspace and nothing is shared across agents or workspaces. Agents do learn in a narrower, visible sense: each run ends with a recap, items that repeat get de-escalated instead of re-flagged every day, and a thumbs-down becomes a standing lesson. Those lessons are memory entries you can read and download as JSON, each showing the run that taught it, and per-agent learning can be set to automatic, review-before-it-applies, or off.

Can we see what an agent did after the fact?

Yes. Each run has a trace you can open in the console: the agent's reasoning, every tool call with its inputs and outputs, every approval and who gave it, and the cost of the run. Those tool inputs and outputs are pruned after 90 days, along with artifacts and replay payloads; the run's outcome, output, and step list stay. Reports and dashboards an agent builds are saved as self-contained pages, and each agent has one stable link showing its latest one, retained 90 days. Any files the run wrote — a CSV, a JSON extract, a chart — are listed on the run and download from there; those stay inside the workspace rather than behind a public link. Run exports (CSV or JSON) and workspace CSV exports cover summaries rather than the full step-by-step payload record, and run exports hold the most recent 100 runs. There's no immutability or attestation story yet — so this is a trace your team can review, not a compliance-grade audit archive.

What does Boring AI cost?

We're in early access, so terms are set per design-partner engagement instead of published on a pricing page. There is no per-step meter. Ask us and we'll be specific about your workflow rather than pointing at a table we haven't earned yet.

Can you build it for us instead?

Yes — white glove is the other half of the product. Our team maps your operations, builds the agents on the Boring platform, and runs them with you. The agents live in your workspace, written in plain language your team can read, edit, version, and roll back, so the engagement can end without the automation ending.

Let’s put it to work

Start with one workflow.
Build from there.

Tell us about the process, the people who own it, and the systems it touches. We’ll help you plan the first rollout.

Prefer to talk it through?