Skip to content

Your Bot.
Your rules.
Your frock.

A Bot should fit the person who uses it — its tools, its behaviour, even the interface around the conversation.

FrockBot is a persistent agent in the cloud, with native apps on your devices and plugins that let you dress your Bot however you want.

This page describes the architecture being built, from what ships today through to the target design. The cloud agent loop, six plugin hooks and a small set of core capabilities are available now; the wider platform of device integrations, slots and native clients described here is planned work. Each section and the capability reference label what is available and what is in the plan.

Start with the plugin architecture

Loading the system map…

Native where you arePersistent when you leaveExtensible by designOpen source, MIT licensed ↗

At home on your device,
connected to the cloud.

The conversation belongs to the Bot. The experience belongs on your device.

Conversations live in the cloud, so switching devices means picking up where you left off. FrockBot’s installed apps are built with Flutter and render their interface locally. Native integrations connect that interface to the device’s audio, windows and operating system, and the browser client reaches the same cloud state. Today that means web and macOS in early access; the broader device reach described here is the target.

FrockBot
PixelConversationMemoryRoutines
Keep working. I’m heading out.

I’ll keep the work here. You can check in from your phone.

Turn recorded in the cloud
Message Pixel
Pixel Connected

Here’s where we got to.

Work continuesThe same conversation,
on another screen.
Message Pixel
Illustrative interfaces. Local interaction, shared cloud state.

Web and macOS are available in early access. Android is in development; iPhone and the other device surfaces in the capability reference are planned. A platform appearing in the architecture describes the intended design; availability labels identify which clients are released.

The long-term aim is to use what makes each platform useful: a desktop’s files and windows, a phone’s sensors, a watch’s quick interactions. Those capabilities need explicit support in the client and permission from the person using it.

Close the laptop.
The Bot stays.

A Bot is a persistent identity, with its own conversation, notes, instructions and routines.

A conversation should survive a closed tab, a device switch, and a process restart on the server. Each Bot is backed by a Cloudflare Durable Object that holds its state. Each User has a Durable Object too, coordinating account state and installed plugins. Your devices submit commands and render the results; the cloud holds the authoritative state and runs the agent loop.

A Turn is one run of a Bot, started by a message, a schedule or a webhook. It can involve several model requests and tool calls before it finishes or needs your input. Jev reviews the Turn before the first model call, and each complete proposal before text or tools leave.

  1. 01Store input

    Durably admit the message or event.

  2. 02Acknowledge

    Tell the client its input is accepted.

  3. 03Assess the Turn

    Jev judges the work before the first model call.

  4. 04Prepare a request

    Prompt, tool-exposure and request hooks run.

  5. 05Model step

    The model responds or asks for a tool.

  6. 06Review the proposal

    Jev decides which text and calls may proceed.

  7. 07 · repeatTool step

    Pre- and post-execute hooks wrap the allowed tools.

  8. 08Settle

    Notify stopping, save the result and update clients.

Model, review and tool steps can repeat, with progress recorded between them.

A process can stop. The Turn can resume. Durable scheduling and the recorded state bring work back after eviction.

Accepted input survives a disconnect. The Turn resumes from recorded progress.

Input is recorded before the service acknowledges it, so an accepted message survives a dropped connection. Enough of the Turn is also recorded for the system to resume after Cloudflare evicts a process. “Always on” describes availability and durable work, not a CPU that spins continuously.

A little deeper: effects and recovery

Operations that spend money or write to another service need a recorded intent and an idempotency key. Retrying with that key protects against repeating the same operation where the receiving service supports it. Exactly-once execution depends on the external system’s own deduplication guarantees.

The Bot talks.
Jev decides.

A fast conversational model stays the Bot’s voice, with a supervisor on the work behind it.

The hosted product does not pick a reasoning level as it goes. The Bot speaks at one fixed setting. Jev reviews each Turn — whether the work is on track, which calls that change something are allowed, and when a specialist should take a slower pass.

Jev is not a plugin. It is built into the hosted service and cannot be switched off. Another deployment can supply a different supervisor without changing the agent loop.

Start of TurnAssess the work

One Jev request after the Turn is admitted, before the conversational model speaks.

Each proposalReview before release

One Jev request after a complete response, before text is shown or a tool runs.

Two judgments. The Bot keeps authorship; Jev supplies the decision.

What enforces first

The first behaviour that will enforce is approval of mutating tool calls. A call that changes something outside the conversation is allowed only when review finds your authorisation and a clear match to what you asked for. A rejected call comes back as an ordinary tool result, with a reason the model can see. A read does not need a judgment.

The Bot asks for missing permission in ordinary conversation — text or voice — rather than through a new approval card.

The adapter is in production. The loop is not wired yet. Shipping Jev does not start supervising Turns. Bots still reply. Enforcement begins when review sits between a proposal and a tool.

A little deeper: specialists, policy and later work

Policies are durable. Per-Bot rules outrank account-wide ones; both outrank overridable platform defaults. Locked platform policy always wins. The Bot may propose a policy change through a tool, and that change is reviewed like any other mutation.

Later, Jev can route slower specialist work — planning, research, coding, criticism — and require a Mentor when repeated bad proposals pile up. The fast model keeps authorship after that advice. If supervision is unavailable, the target design stops agent execution rather than running unsupervised; conversation history and settings can still be read.

Plugins may later receive a metered judgment binding for their own questions. That binding cannot approve the plugin’s own effects or bypass Turn supervision.

Change what it does
and how it does it.

Plugins can add tools, change the agent’s behaviour, connect services and supply interfaces.

dsh / DeepSeek Harness and Pi showed that the harness itself should be something you can shape. FrockBot applies that principle in a persistent cloud service, with a deliberate boundary between the Bot, its extensions and your devices.

Plugin code runs in a Cloudflare Dynamic Worker—a separate execution environment created on demand, distinct from the Bot’s Durable Object. A User’s installed plugins share one worker. You install a plugin for your account, then choose which Bots run it.

User Durable ObjectYour accountAccount authority · installed plugins
Bot Durable ObjectYour BotConversation · Turn · authority
Connected clientsWeb · native appsSubmit commands · render cloud state
A client or trigger starts a Turn; the Bot calls the plugin worker
Separate Dynamic Worker · one per UserInstalled plugins
ToolsHooksCardsServices
Plugin calls back through a scoped loopback
Host checks the Bot and admitted operation authorityStorage · memory · models · network · ComputerAgent-loop work stays scoped to its Turn. Credentials are attached here for an allowed network request.
Mediated effects leave through the host
External servicesApproved network destinationsThe plugin never receives the credential.
Connected devices · plannedAuthorised device actionsPermission and an available client are required.
Plugins reach capabilities through the host (the Bot’s Durable Object). A User’s plugins share a realm and its combined authority.

What a plugin can reach

A descriptor declares what the plugin contributes and what access it needs. The Bot calls the plugin worker, and plugins call back through host-provided stubs. The host checks every callback against the serving Bot and the authority admitted for that operation. Agent-loop work is also scoped to its Turn.

Network access is limited to approved hosts, or open network access if you approve it. Because the plugins share a worker, network authority must be understood as shared across that worker’s enabled plugins. Credentials are attached by the host at the network boundary.

Minimal descriptor · current contractJSON
{
  "id": "research-tools",
  "displayName": "Research tools",
  "version": "1",
  "contractVersion": 7,
  "tools": [],
  "hooks": ["agent/tool-exposure"],
  "grants": ["storage", "http"],
  "network": { "hosts": ["api.example.com"] },
  "contextKeys": ["user", "bot", "session"]
}

A declared host is a request for access. The User still approves each requested permission. This minimal descriptor declares no tools or cards.

The six agent-loop hooks

The host exposes specific moments for plugins to participate. For hooks that return a patch, the next plugin sees the previous plugin’s result, in plugin order. A Turn may repeat model and tool steps.

  1. system-prompt/assembleShape the instructions assembled for the model.
  2. agent/tool-exposureChoose which admitted tools the model sees.
  3. agent/requestTransform the permitted fields of a model request.
  4. tools/pre-executeInspect or veto a tool call before execution.
  5. tools/post-executeTransform the result returned to the agent.
  6. agent/turn-stoppingReceive the notification that the Turn is stopping.

Today, the stopping hook is read-only: plugins observe that the Turn is settling. Request hooks may patch permitted fields but leave the admitted provider, model and credential binding unchanged.

A seventh hook, theme/assemble, shapes the Bot’s look outside a Turn.

Hook excerpt · JavaScriptTool exposure
export const hooks = {
  "agent/tool-exposure": ({ tools }) =>
    tools.filter((tool) =>
      tool.name !== "email_send"
    ),
};

This hook removes a tool from the model’s view. Tool visibility controls what the model sees; the host enforces authority independently.

Your Bot can write a plugin, too.

You can ask for a new capability and have the Bot write the plugin. The resulting artifact is immutable and identified by its content. The requested access must be approved before activation, within the Bot’s existing authority.

  1. RequestAsk the Bot for a capability.
  2. AuthorThe Bot proposes code.
  3. Check & buildValidate the artifact.
  4. Approve permissionsYou approve what it can reach.
  5. ActivateMount a new generation.
  6. Next TurnThe Bot uses the generation.
  7. Record & revertKeep versions; restore one later.

Versions can be replaced or a previous set of artifacts restored. External effects such as a sent email persist after a code revert. Plugins may also bundle Skills or offer typed services to other plugins; a missing dependency disables the dependent plugin.

What happens when a plugin fails?

The plugin worker has a hard CPU budget. Ordinary plugin failures can be skipped or quarantined so the Turn can continue. The budget belongs to the worker, and a worker-wide failure can affect several plugins. Failures in required, locked plugins can stop the operation. Isolation limits what a failure can affect.

Give it a place.
Let it take shape.

Plugins should be able to shape more than the text of a reply.

A card in the conversation, a panel beside the chat, a settings section or a whole page could give a capability its own useful interface, backed by the plugin’s stored data. A slot says where something appears; a renderer says how it is drawn. Four placements are available today: conversation cards, settings sections, the conversation panel and a door on the Bot’s page. The rest are part of the target design.

The conversation panel is a tabbed page beside the chat: the right-hand column on a wide window, its own page on a phone. Each plugin can add tabs to it. The Bot can bring one to the front with panel_focus while it works, and a door on the Bot’s page opens the panel whenever you want it. The open tab is kept in the cloud, so your devices show the same one.

Plugin in the cloudState + interface description + actions
A2UI (structured interface description)

Describe components

Research notes3 sources savedOpen notes ↗

The client draws components from its compiled catalogue, using Flutter widgets.

Conversation cards today
HTML

Provide a web interface

<html> Custom layout & interaction

A contained web surface presents richer layouts inside a supported slot.

Planned plugin slot path
User action → host validation → plugin or a new Turn
Placement and rendering are separate choices. Both paths belong inside the host’s permissions and action routing.

A2UI is a structured description of an interface. The plugin names components, supplies values and declares actions; the host renders components it already knows, drawn from its own compiled catalogue.

HTML is the intended option for a custom web interface. A contained surface gives the plugin more control over layout. Privileged logic still runs in the worker, and device access still passes through the host.

A2UI card message · current formatJSON
{
  "version": "v1.0",
  "createSurface": {
    "surfaceId": "research-note",
    "catalogId": "https://frockbot.com/a2ui/catalogs/frock/v1.json",
    "components": [{
      "id": "root",
      "component": "Text",
      "text": "Three sources saved."
    }]
  }
}

A small description becomes a locally rendered card. Read the component schemas ↗

Cards use A2UI; settings sections and conversation panels use a smaller host-rendered view format, and the Bot page’s doors are rows the host draws. General A2UI/HTML slots, full pages and the broader placements in the capability reference describe the target platform.

The host retains ownership of the conversation, audit, undo and trusted approval controls. A plugin draws its own interface within those boundaries. Approval identities and the surfaces that let you see and undo a Bot’s work belong to the host. A new native component or operating-system integration still needs to be shipped in the client.

An event on your phone,
an action on your desktop.

A Bot’s work often spans more than one device or service.

The target platform connects those capabilities: a phone event could start a Turn that uses a desktop, and a webhook can already update a conversation card. The plugin combines the pieces; the host decides what is available and allowed. Of the 150 capabilities in the reference below, 12 are available today.

Phone eventAndroid location event
Cloud admissionDurably admit the event
Plugin conditionsCheck the routine’s rules
Authorised actionOpen a desktop workspace
ReceiptRecord the outcome
Proposed offline path: wait for the authorised desktop until a deadline, then record an expiry instead of claiming the action ran. This wait-and-expiry handling is design direction, not shipped behaviour today.
Planned device integration. Requires permission, a connected desktop and support for each capability; device events are subject to operating-system background limits.
01 Show something useful

Slot

A place for a plugin’s interface.

Cards, panels, widgets
02 Start it your way

Entry

A person starts work or opens a surface.

Shortcuts, share sheets
03 React when something happens

Trigger

An event starts work in the background.

Webhooks, device events
04 Shape what happens next

Handler

The host asks for a decision or transformation, or sends a lifecycle notification.

Agent hooks, filtering, stopping notices
05 Get something done

Action

A tool reaches a device or service.

Files, network, hardware

These five types are the vocabulary for the wider platform. The reference separates the surfaces available today from proposed integrations. Planned capabilities are a design direction, subject to platform APIs, permissions and distribution rules.

Explore the full intended range. Available today means the capability is implemented; it does not mean every client has been publicly released. In the plan is a proposed FrockBot integration. No equivalent means this map has no corresponding surface on that platform.

Device features depend on a connected client, permissions, hardware, operating-system APIs and background limits. Web support varies by browser. Planned rows describe the direction, not a promise of identical behaviour everywhere. Shared cloud features work independently of which client you use.

150 capabilities across 5 surface types.

Slots 43A place in the interface a plugin contributes to. The host renders its supported description or contained HTML surface.

In the conversation

Conversation card

A rich card inside the conversation.

Available today
Web, Android, macOS
In the plan
iPhone, Windows, Linux, Apple Watch, Wear OS
No equivalent
Browser extension
Conversation panel

A tabbed page beside the chat.

Available today
Web, Android, macOS
In the plan
iPhone, Windows, Linux
No equivalent
Apple Watch, Wear OS, Browser extension

Beside the conversation on a wide window, its own page on a phone. The Bot can bring a tab to the front with panel_focus.

Message action

An action attached to a message.

In the plan
Web, Android, iPhone, macOS, Windows, Linux
No equivalent
Apple Watch, Wear OS, Browser extension
Message decoration

A badge or label on a message.

In the plan
Web, Android, iPhone, macOS, Windows, Linux
No equivalent
Apple Watch, Wear OS, Browser extension
Turn status strip

Status while the Bot works.

In the plan
Web, Android, iPhone, macOS, Windows, Linux
No equivalent
Apple Watch, Wear OS, Browser extension
Conversation empty state

An introduction before the first message.

In the plan
Web, Android, iPhone, macOS, Windows, Linux
No equivalent
Apple Watch, Wear OS, Browser extension
Suggested prompts

Useful starting points for a conversation.

In the plan
Web, Android, iPhone, macOS, Windows, Linux
No equivalent
Apple Watch, Wear OS, Browser extension
Approval prompt

A plugin-specific presentation of a host-owned decision.

In the plan
Web, Android, iPhone, macOS, Windows, Linux
No equivalent
Apple Watch, Wear OS, Browser extension

Around the composer

Composer strip

A panel above or below the input.

In the plan
Web, Android, iPhone, macOS, Windows, Linux
No equivalent
Apple Watch, Wear OS, Browser extension
Composer toolbar button

A tool beside the composer.

In the plan
Web, Android, iPhone, macOS, Windows, Linux
No equivalent
Apple Watch, Wear OS, Browser extension
Attachment type

An option in the attachment picker.

In the plan
Web, Android, iPhone, macOS, Windows, Linux
No equivalent
Apple Watch, Wear OS, Browser extension
Voice overlay panel

A panel during a voice call.

In the plan
Web, Android, iPhone, macOS, Windows, Linux
No equivalent
Apple Watch, Wear OS, Browser extension

Navigation and pages

Header action

An action in the app header.

In the plan
Web, Android, iPhone, macOS, Windows, Linux
No equivalent
Apple Watch, Wear OS, Browser extension
Sidebar tab

A destination in the sidebar.

In the plan
Web, Android, iPhone, macOS, Windows, Linux
No equivalent
Apple Watch, Wear OS, Browser extension
Sidebar section

A block in the Bot list.

In the plan
Web, Android, iPhone, macOS, Windows, Linux
No equivalent
Apple Watch, Wear OS, Browser extension
Bot list badge

A small status beside a Bot.

In the plan
Web, Android, iPhone, macOS, Windows, Linux
No equivalent
Apple Watch, Wear OS, Browser extension
Bot profile section

Information on a Bot profile.

In the plan
Web, Android, iPhone, macOS, Windows, Linux
No equivalent
Apple Watch, Wear OS, Browser extension
Bot page panel

A panel on a Bot page.

In the plan
Web, Android, iPhone, macOS, Windows, Linux
No equivalent
Apple Watch, Wear OS, Browser extension
Bot page door

A row on the Bot’s page that opens its panel.

Available today
Web, Android, macOS
In the plan
iPhone, Windows, Linux
No equivalent
Apple Watch, Wear OS, Browser extension

A plugin that declares a panel but no door still gets one, drawn by the host.

Full page

A plugin surface with its own route.

In the plan
Web, Android, iPhone, macOS, Windows, Linux
No equivalent
Apple Watch, Wear OS, Browser extension
Work view panel

A panel alongside the work.

In the plan
Web, Android, iPhone, macOS, Windows, Linux
No equivalent
Apple Watch, Wear OS, Browser extension
Settings section

Controls inside the Bot’s settings.

Available today
Web, Android, macOS
In the plan
iPhone, Windows, Linux
No equivalent
Apple Watch, Wear OS, Browser extension
Settings page

A dedicated settings destination.

In the plan
Web, Android, iPhone, macOS, Windows, Linux
No equivalent
Apple Watch, Wear OS, Browser extension
Onboarding step

A step when getting started.

In the plan
Web, Android, iPhone, macOS, Windows, Linux
No equivalent
Apple Watch, Wear OS, Browser extension
Theme tokens

Colours and type within the host’s supported theme controls.

In the plan
Web, Android, iPhone, macOS, Windows, Linux
No equivalent
Apple Watch, Wear OS, Browser extension

On the device

Home-screen widget

A glanceable surface outside the app.

In the plan
Android, iPhone, macOS, Windows
No equivalent
Web, Linux, Apple Watch, Wear OS, Browser extension
Lock-screen widget

A compact surface on the lock screen.

In the plan
iPhone
No equivalent
Web, Android, macOS, Windows, Linux, Apple Watch, Wear OS, Browser extension
Live activity

Ongoing status on the lock screen or a wearable.

In the plan
Android, iPhone, Apple Watch, Wear OS
No equivalent
Web, macOS, Windows, Linux, Browser extension
Complication or tile

A wearable surface you can glance at.

In the plan
Apple Watch, Wear OS
No equivalent
Web, Android, iPhone, macOS, Windows, Linux, Browser extension
Smart Stack widget

A widget in the watch’s Smart Stack.

In the plan
Apple Watch
No equivalent
Web, Android, iPhone, macOS, Windows, Linux, Wear OS, Browser extension
Quick-settings tile

A control in the device’s quick controls.

In the plan
Android, iPhone
No equivalent
Web, macOS, Windows, Linux, Apple Watch, Wear OS, Browser extension
Notification content

The app draws the notification body.

In the plan
Android, iPhone, macOS, Windows, Apple Watch, Wear OS
No equivalent
Web, Linux, Browser extension
Menu bar / system tray item

A persistent desktop status or action.

In the plan
macOS, Windows, Linux
No equivalent
Web, Android, iPhone, Apple Watch, Wear OS, Browser extension
Dock and taskbar badge

A small badge on the app icon.

In the plan
macOS, Windows, Linux
No equivalent
Web, Android, iPhone, Apple Watch, Wear OS, Browser extension
File provider

The store as a folder in Files, Finder or Explorer.

In the plan
Android, iPhone, macOS, Windows
No equivalent
Web, Linux, Apple Watch, Wear OS, Browser extension
File preview

Quick Look and preview handlers.

In the plan
iPhone, macOS, Linux
No equivalent
Web, Android, Windows, Apple Watch, Wear OS, Browser extension
Keyboard

A keyboard surface on the device.

In the plan
Android, iPhone
No equivalent
Web, macOS, Windows, Linux, Apple Watch, Wear OS, Browser extension
Live wallpaper

A changing home-screen background.

In the plan
Android
No equivalent
Web, iPhone, macOS, Windows, Linux, Apple Watch, Wear OS, Browser extension
Screensaver

A desktop screensaver.

In the plan
macOS, Windows, Linux
No equivalent
Web, Android, iPhone, Apple Watch, Wear OS, Browser extension

In the browser

Side panel

A panel beside the current page.

In the plan
Browser extension
No equivalent
Web, Android, iPhone, macOS, Windows, Linux, Apple Watch, Wear OS
Toolbar popup

A compact surface opened from the browser toolbar.

In the plan
Browser extension
No equivalent
Web, Android, iPhone, macOS, Windows, Linux, Apple Watch, Wear OS
New tab page

A custom start page.

In the plan
Browser extension
No equivalent
Web, Android, iPhone, macOS, Windows, Linux, Apple Watch, Wear OS
Page overlay

An interface over the current page.

In the plan
Browser extension
No equivalent
Web, Android, iPhone, macOS, Windows, Linux, Apple Watch, Wear OS
Entries 18A person starts a Turn or opens a surface, from the app, device or another app.

From the app

Open a particular Bot or surface.

In the plan
Web, Android, iPhone, macOS, Windows, Linux
No equivalent
Apple Watch, Wear OS, Browser extension
Command palette item

Start an action from the app’s command menu.

In the plan
Web, Android, iPhone, macOS, Windows, Linux
No equivalent
Apple Watch, Wear OS, Browser extension
In-app keyboard shortcut

Start an action with the keyboard.

In the plan
Web, Android, iPhone, macOS, Windows, Linux
No equivalent
Apple Watch, Wear OS, Browser extension

From the device

Notification tap and actions

Continue from a notification.

In the plan
Web, Android, iPhone, macOS, Windows, Linux, Apple Watch, Wear OS
No equivalent
Browser extension
Widget interaction

A button inside a widget.

In the plan
Android, iPhone, macOS, Windows, Apple Watch, Wear OS
No equivalent
Web, Linux, Browser extension
App shortcuts and voice assistant

Start work through a system shortcut or assistant.

In the plan
Android, iPhone, macOS, Apple Watch, Wear OS
No equivalent
Web, Windows, Linux, Browser extension
Device assistant

Open the Bot with the device’s assistant gesture.

In the plan
Android
No equivalent
Web, iPhone, macOS, Windows, Linux, Apple Watch, Wear OS, Browser extension
Quick-settings tile tap

Start work from a quick control.

In the plan
Android, iPhone
No equivalent
Web, macOS, Windows, Linux, Apple Watch, Wear OS, Browser extension
Complication tap

Open or act from a watch face.

In the plan
Apple Watch, Wear OS
No equivalent
Web, Android, iPhone, macOS, Windows, Linux, Browser extension
Global hotkey

Start work without focusing FrockBot.

In the plan
macOS, Windows, Linux, Browser extension
No equivalent
Web, Android, iPhone, Apple Watch, Wear OS
NFC tag tap

Start work by tapping a tag.

In the plan
Android, iPhone
No equivalent
Web, macOS, Windows, Linux, Apple Watch, Wear OS, Browser extension
App Clip / lightweight app entry

A slice of the app without a full installation.

In the plan
Android, iPhone
No equivalent
Web, macOS, Windows, Linux, Apple Watch, Wear OS, Browser extension

Android delivery mechanism remains to be chosen; this row describes the intended lightweight entry, not a commitment to a particular platform API.

From other apps

Share sheet, inbound

Send something from another app to the Bot.

In the plan
Web, Android, iPhone, macOS, Windows
No equivalent
Linux, Apple Watch, Wear OS, Browser extension
Open with

File types the app claims.

In the plan
Android, iPhone, macOS, Windows, Linux
No equivalent
Web, Apple Watch, Wear OS, Browser extension
Drag and drop onto the app

Drop a file or item into FrockBot.

In the plan
Web, Android, iPhone, macOS, Windows, Linux
No equivalent
Apple Watch, Wear OS, Browser extension
System context menu

Right-click in another app.

In the plan
macOS, Windows, Linux, Browser extension
No equivalent
Web, Android, iPhone, Apple Watch, Wear OS
Toolbar button

Start work from the browser toolbar.

In the plan
Browser extension
No equivalent
Web, Android, iPhone, macOS, Windows, Linux, Apple Watch, Wear OS
Omnibox keyword

Start work from the browser address bar.

In the plan
Browser extension
No equivalent
Web, Android, iPhone, macOS, Windows, Linux, Apple Watch, Wear OS
Triggers 25An event starts a run with nobody watching.

From the cloud

Webhook

An incoming event can start a Turn even when every client is closed.

Available today · Shared cloud runtime

Location and presence

Location

Geofences and activity recognition.

In the plan
Android, iPhone, macOS, Windows, Linux, Apple Watch, Wear OS
No equivalent
Web, Browser extension

Android background location is subject to permissions, background limits and store review.

Bluetooth device or beacon presence

A device or beacon arrives or leaves.

In the plan
Android, iPhone, macOS, Windows, Linux
No equivalent
Web, Apple Watch, Wear OS, Browser extension
Network change

Wi-Fi joined, online or offline.

In the plan
Web, Android, macOS, Windows, Linux
No equivalent
iPhone, Apple Watch, Wear OS, Browser extension
USB device attached

A device is plugged in.

In the plan
Android, macOS, Windows, Linux
No equivalent
Web, iPhone, Apple Watch, Wear OS, Browser extension
Display connected

A monitor is connected or disconnected.

In the plan
macOS, Windows, Linux
No equivalent
Web, Android, iPhone, Apple Watch, Wear OS, Browser extension
Audio device change

Headphones or speakers connect or disconnect.

In the plan
Android, macOS, Windows, Linux
No equivalent
Web, iPhone, Apple Watch, Wear OS, Browser extension

Device state

Battery and charging

Battery level or charging changes.

In the plan
Web, Android, macOS, Windows, Linux
No equivalent
iPhone, Apple Watch, Wear OS, Browser extension
Session events

Wake, unlock or login.

In the plan
Android, macOS, Windows, Linux
No equivalent
Web, iPhone, Apple Watch, Wear OS, Browser extension
User idle

The desktop has been idle.

In the plan
macOS, Windows, Linux
No equivalent
Web, Android, iPhone, Apple Watch, Wear OS, Browser extension
Active app changes

The focused app or browser context changes.

In the plan
macOS, Windows, Linux, Browser extension
No equivalent
Web, Android, iPhone, Apple Watch, Wear OS
Do Not Disturb change

The device’s interruption mode changes.

In the plan
Android, Windows
No equivalent
Web, iPhone, macOS, Linux, Apple Watch, Wear OS, Browser extension
Screenshot taken

A screenshot is captured.

In the plan
Android
No equivalent
Web, iPhone, macOS, Windows, Linux, Apple Watch, Wear OS, Browser extension
App installed or removed

The installed application list changes.

In the plan
Android
No equivalent
Web, iPhone, macOS, Windows, Linux, Apple Watch, Wear OS, Browser extension
Call state

A call rings or ends.

In the plan
Android, iPhone
No equivalent
Web, macOS, Windows, Linux, Apple Watch, Wear OS, Browser extension

Content changes

Notification access

What other apps post.

In the plan
Android, Windows, Linux
No equivalent
Web, iPhone, macOS, Apple Watch, Wear OS, Browser extension

Android access requires the relevant user permission and is subject to store review.

Clipboard changes

The clipboard receives new content.

In the plan
macOS, Windows, Linux
No equivalent
Web, Android, iPhone, Apple Watch, Wear OS, Browser extension
Calendar changes

Calendar content changes.

In the plan
Android, macOS, Windows, Linux
No equivalent
Web, iPhone, Apple Watch, Wear OS, Browser extension
Contacts changes

Contact information changes.

In the plan
Android, macOS, Windows, Linux
No equivalent
Web, iPhone, Apple Watch, Wear OS, Browser extension
Media library change

A new photo or video.

In the plan
Android, macOS, Windows
No equivalent
Web, iPhone, Linux, Apple Watch, Wear OS, Browser extension
Now Playing change

Media or playback state changes.

In the plan
Android, macOS, Windows, Linux
No equivalent
Web, iPhone, Apple Watch, Wear OS, Browser extension

Android access requires the relevant user permission and is subject to store review.

Home accessory events

Events from HomeKit or Matter devices.

In the plan
Android, iPhone, macOS, Apple Watch
No equivalent
Web, Windows, Linux, Wear OS, Browser extension

In the browser

Page and tab events

A page loads or a tab changes.

In the plan
Browser extension
No equivalent
Web, Android, iPhone, macOS, Windows, Linux, Apple Watch, Wear OS
Download finished

A browser download completes.

In the plan
Browser extension
No equivalent
Web, Android, iPhone, macOS, Windows, Linux, Apple Watch, Wear OS
Bookmark or history change

The browser’s saved or visited pages change.

In the plan
Browser extension
No equivalent
Web, Android, iPhone, macOS, Windows, Linux, Apple Watch, Wear OS
Handlers 14The host calls a plugin during an operation. Most handlers return a patch or decision; some are notifications.

In the Bot

System prompt assembly

system-prompt/assemble — contribute to the prompt before a model request.

Available today · Shared cloud runtime

Tool exposure

agent/tool-exposure — shape the tools exposed to the model.

Available today · Shared cloud runtime

Model request

agent/request — patch permitted request fields before dispatch.

Available today · Shared cloud runtime

Before a tool runs

tools/pre-execute — inspect or veto a tool invocation before execution.

Available today · Shared cloud runtime

After a tool runs

tools/post-execute — inspect or patch the tool result.

Available today · Shared cloud runtime

Turn stopping

agent/turn-stopping — observe the end of a Turn; the current hook is a notification, not a veto.

Available today · Shared cloud runtime

Approval decisions

Participate in the host’s approval flow without creating authority.

In the plan · Shared cloud runtime

Inbound message routing

Decide which Bot receives an incoming message.

In the plan · Shared cloud runtime

On the device

Call screening

Help the system decide how to handle a call.

In the plan
Android
No equivalent
Web, iPhone, macOS, Windows, Linux, Apple Watch, Wear OS, Browser extension

Device handlers have platform-specific time limits and execution rules; the host may need to prepare local data or rules in advance.

SMS filtering

Classify a message for the system.

In the plan
iPhone
No equivalent
Web, Android, macOS, Windows, Linux, Apple Watch, Wear OS, Browser extension

Device handlers have platform-specific time limits and execution rules; the host may need to prepare local data or rules in advance.

Caller ID list

Provide caller identification data.

In the plan
Android, iPhone
No equivalent
Web, macOS, Windows, Linux, Apple Watch, Wear OS, Browser extension

Device handlers have platform-specific time limits and execution rules; the host may need to prepare local data or rules in advance.

Mail extension

Participate in supported mail operations.

In the plan
macOS
No equivalent
Web, Android, iPhone, Windows, Linux, Apple Watch, Wear OS, Browser extension

Device handlers have platform-specific time limits and execution rules; the host may need to prepare local data or rules in advance.

Focus filter

Adjust supported app content for a Focus.

In the plan
iPhone, macOS
No equivalent
Web, Android, Windows, Linux, Apple Watch, Wear OS, Browser extension

Device handlers have platform-specific time limits and execution rules; the host may need to prepare local data or rules in advance.

In the browser

Request filtering

Provide rules for browser requests.

In the plan
Browser extension
No equivalent
Web, Android, iPhone, macOS, Windows, Linux, Apple Watch, Wear OS

The browser’s extension APIs determine which requests can be filtered and how rules are applied.

Actions 50A tool the Bot calls to reach the device or the network.

Reach out

Network, with your credentials

Approved network access through the host. Credentials are attached at the network boundary.

Available today · Shared cloud runtime

Local notifications

Show a notification on a connected device.

In the plan
Web, Android, iPhone, macOS, Windows, Linux, Apple Watch, Wear OS, Browser extension
Share sheet, outbound

Hand content to another app.

In the plan
Web, Android, iPhone, macOS, Windows
No equivalent
Linux, Apple Watch, Wear OS, Browser extension
Prefilled compose

Prepare a text or email for the person to send.

In the plan
Web, Android, iPhone, macOS, Windows, Linux
No equivalent
Apple Watch, Wear OS, Browser extension
Place a call

Open the system’s calling flow.

In the plan
Android, iPhone, Windows, Wear OS
No equivalent
Web, macOS, Linux, Apple Watch, Browser extension
Directions

Open directions in the system maps app.

In the plan
Android, iPhone, macOS, Windows, Apple Watch
No equivalent
Web, Linux, Wear OS, Browser extension
Open a URL or another app

Open a destination on a connected device.

In the plan
Web, Android, iPhone, macOS, Windows, Linux, Apple Watch, Wear OS, Browser extension

Personal data

Contacts

Read or update permitted contacts.

In the plan
Android, iPhone, macOS, Windows, Linux, Wear OS
No equivalent
Web, Apple Watch, Browser extension
Calendar and reminders

Work with calendar events and reminders.

In the plan
Android, iPhone, macOS, Windows, Linux, Wear OS
No equivalent
Web, Apple Watch, Browser extension
Photo library

Work with permitted photos and videos.

In the plan
Android, iPhone, macOS, Windows, Linux
No equivalent
Web, Apple Watch, Wear OS, Browser extension
Music library

Access the device’s music library.

In the plan
Android, iPhone, macOS
No equivalent
Web, Windows, Linux, Apple Watch, Wear OS, Browser extension
Files and folders

Pickers and user folders.

In the plan
Web, Android, iPhone, macOS, Windows, Linux
No equivalent
Apple Watch, Wear OS, Browser extension
Clipboard

Read or write the clipboard where permitted.

In the plan
Web, Android, iPhone, macOS, Windows, Linux, Browser extension
No equivalent
Apple Watch, Wear OS
System search index

Publish content into the system’s search.

In the plan
iPhone, macOS, Windows
No equivalent
Web, Android, Linux, Apple Watch, Wear OS, Browser extension

Hardware

Location

Read an approved device location.

In the plan
Web, Android, iPhone, macOS, Windows, Linux, Apple Watch, Wear OS
No equivalent
Browser extension
Camera and document scanner

Capture an image or scan a document.

In the plan
Web, Android, iPhone, macOS, Windows, Linux
No equivalent
Apple Watch, Wear OS, Browser extension
Image text and object recognition

Recognise content on the device.

In the plan
Android, iPhone, macOS, Windows
No equivalent
Web, Linux, Apple Watch, Wear OS, Browser extension
Audio recording

Record audio with permission.

In the plan
Web, Android, iPhone, macOS, Windows, Linux, Apple Watch, Wear OS
No equivalent
Browser extension
Audio playback

Play audio on a connected device.

In the plan
Web, Android, iPhone, macOS, Windows, Linux, Apple Watch, Wear OS
No equivalent
Browser extension
Text to speech

Speak with the system’s voices.

In the plan
Web, Android, iPhone, macOS, Windows, Linux, Apple Watch, Wear OS
No equivalent
Browser extension
Speech recognition

Transcribe through the system’s recognition service.

In the plan
Web, Android, iPhone, macOS, Windows, Linux
No equivalent
Apple Watch, Wear OS, Browser extension
Flashlight

Control the device’s light.

In the plan
Android, iPhone
No equivalent
Web, macOS, Windows, Linux, Apple Watch, Wear OS, Browser extension
Haptics

Provide tactile feedback.

In the plan
Web, Android, iPhone, Apple Watch, Wear OS
No equivalent
macOS, Windows, Linux, Browser extension
Motion and environment sensors

Read supported sensor data.

In the plan
Web, Android, iPhone, Apple Watch, Wear OS
No equivalent
macOS, Windows, Linux, Browser extension
NFC

Read and write supported tags.

In the plan
Android, iPhone
No equivalent
Web, macOS, Windows, Linux, Apple Watch, Wear OS, Browser extension
Bluetooth device I/O

Communicate with supported Bluetooth devices.

In the plan
Web, Android, iPhone, macOS, Windows, Linux, Apple Watch, Wear OS
No equivalent
Browser extension
USB and serial

Communicate with connected hardware.

In the plan
Web, Android, macOS, Windows, Linux
No equivalent
iPhone, Apple Watch, Wear OS, Browser extension
Local network discovery

Bonjour and mDNS discovery.

In the plan
Android, iPhone, macOS, Windows, Linux
No equivalent
Web, Apple Watch, Wear OS, Browser extension
Home accessory control

Control HomeKit or Matter devices.

In the plan
Android, iPhone, macOS, Apple Watch
No equivalent
Web, Windows, Linux, Wear OS, Browser extension
Wallet passes

Add or update supported passes.

In the plan
Android, iPhone, Apple Watch, Wear OS
No equivalent
Web, macOS, Windows, Linux, Browser extension
Payment sheet

Present a supported Apple Pay or Google Pay flow.

In the plan
Web, Android, iPhone, Windows, Apple Watch, Wear OS
No equivalent
macOS, Linux, Browser extension
Biometric confirmation

Ask the device to confirm the user’s presence.

In the plan
Web, Android, iPhone, macOS, Windows
No equivalent
Linux, Apple Watch, Wear OS, Browser extension
Device state

Battery, network and storage information.

In the plan
Web, Android, iPhone, macOS, Windows, Linux, Apple Watch, Wear OS
No equivalent
Browser extension
Print

Open the system’s print flow.

In the plan
Web, Android, iPhone, macOS, Windows, Linux
No equivalent
Apple Watch, Wear OS, Browser extension
On-device model

Use a model available on the device.

In the plan
Web, Android, iPhone, macOS, Windows, Linux
No equivalent
Apple Watch, Wear OS, Browser extension

System control

System settings

Volume, brightness, Do Not Disturb and Wi-Fi.

In the plan
Android, macOS, Windows, Linux
No equivalent
Web, iPhone, Apple Watch, Wear OS, Browser extension
Wallpaper

Set the desktop or home-screen background.

In the plan
Android, macOS, Windows, Linux
No equivalent
Web, iPhone, Apple Watch, Wear OS, Browser extension
Alarms and timers

Create an alarm or timer.

In the plan
Android
No equivalent
Web, iPhone, macOS, Windows, Linux, Apple Watch, Wear OS, Browser extension
Keep awake

Request that a device stays awake.

In the plan
Android, macOS, Windows, Linux
No equivalent
Web, iPhone, Apple Watch, Wear OS, Browser extension
Lock, sleep and shut down

Request a device power or session action.

In the plan
macOS, Windows, Linux
No equivalent
Web, Android, iPhone, Apple Watch, Wear OS, Browser extension
Window management

Arrange or focus desktop windows.

In the plan
macOS, Windows, Linux
No equivalent
Web, Android, iPhone, Apple Watch, Wear OS, Browser extension
Now Playing control

Control supported media playback.

In the plan
Android, macOS, Windows, Linux
No equivalent
Web, iPhone, Apple Watch, Wear OS, Browser extension

Android media control requires the relevant access and is subject to store review.

Accessibility automation

Act through approved accessibility interfaces.

In the plan
macOS, Windows, Linux
No equivalent
Web, Android, iPhone, Apple Watch, Wear OS, Browser extension
Local shell

Run an approved command on the desktop.

In the plan
macOS, Windows, Linux
No equivalent
Web, Android, iPhone, Apple Watch, Wear OS, Browser extension
Automation app handoff

Shortcuts, Automate or Power Automate.

In the plan
Android, iPhone, macOS, Windows
No equivalent
Web, Linux, Apple Watch, Wear OS, Browser extension

In the browser

Read the current page

Give the Bot permitted page content.

In the plan
Browser extension
No equivalent
Web, Android, iPhone, macOS, Windows, Linux, Apple Watch, Wear OS
Modify the page

Make an approved change to page content.

In the plan
Browser extension
No equivalent
Web, Android, iPhone, macOS, Windows, Linux, Apple Watch, Wear OS
Tabs and windows

Manage the browser’s tabs and windows.

In the plan
Browser extension
No equivalent
Web, Android, iPhone, macOS, Windows, Linux, Apple Watch, Wear OS
Downloads

Work with browser downloads.

In the plan
Browser extension
No equivalent
Web, Android, iPhone, macOS, Windows, Linux, Apple Watch, Wear OS
History and bookmarks

Read or update permitted browsing records.

In the plan
Browser extension
No equivalent
Web, Android, iPhone, macOS, Windows, Linux, Apple Watch, Wear OS
See the full platform comparison

Shared cloud capabilities apply across clients, so they appear once instead of being repeated in every platform column.

CapabilityTypeWebAndroidiPhonemacOSWindowsLinuxApple WatchWear OSBrowser extension
Conversation cardIn the conversation slot Available todayAvailable todayIn the planAvailable todayIn the planIn the planIn the planIn the planNo equivalent
Conversation panelIn the conversation slot Available todayAvailable todayIn the planAvailable todayIn the planIn the planNo equivalentNo equivalentNo equivalent
Message actionIn the conversation slot In the planIn the planIn the planIn the planIn the planIn the planNo equivalentNo equivalentNo equivalent
Message decorationIn the conversation slot In the planIn the planIn the planIn the planIn the planIn the planNo equivalentNo equivalentNo equivalent
Turn status stripIn the conversation slot In the planIn the planIn the planIn the planIn the planIn the planNo equivalentNo equivalentNo equivalent
Conversation empty stateIn the conversation slot In the planIn the planIn the planIn the planIn the planIn the planNo equivalentNo equivalentNo equivalent
Suggested promptsIn the conversation slot In the planIn the planIn the planIn the planIn the planIn the planNo equivalentNo equivalentNo equivalent
Approval promptIn the conversation slot In the planIn the planIn the planIn the planIn the planIn the planNo equivalentNo equivalentNo equivalent
Composer stripAround the composer slot In the planIn the planIn the planIn the planIn the planIn the planNo equivalentNo equivalentNo equivalent
Composer toolbar buttonAround the composer slot In the planIn the planIn the planIn the planIn the planIn the planNo equivalentNo equivalentNo equivalent
Attachment typeAround the composer slot In the planIn the planIn the planIn the planIn the planIn the planNo equivalentNo equivalentNo equivalent
Voice overlay panelAround the composer slot In the planIn the planIn the planIn the planIn the planIn the planNo equivalentNo equivalentNo equivalent
Header actionNavigation and pages slot In the planIn the planIn the planIn the planIn the planIn the planNo equivalentNo equivalentNo equivalent
Sidebar tabNavigation and pages slot In the planIn the planIn the planIn the planIn the planIn the planNo equivalentNo equivalentNo equivalent
Sidebar sectionNavigation and pages slot In the planIn the planIn the planIn the planIn the planIn the planNo equivalentNo equivalentNo equivalent
Bot list badgeNavigation and pages slot In the planIn the planIn the planIn the planIn the planIn the planNo equivalentNo equivalentNo equivalent
Bot profile sectionNavigation and pages slot In the planIn the planIn the planIn the planIn the planIn the planNo equivalentNo equivalentNo equivalent
Bot page panelNavigation and pages slot In the planIn the planIn the planIn the planIn the planIn the planNo equivalentNo equivalentNo equivalent
Bot page doorNavigation and pages slot Available todayAvailable todayIn the planAvailable todayIn the planIn the planNo equivalentNo equivalentNo equivalent
Full pageNavigation and pages slot In the planIn the planIn the planIn the planIn the planIn the planNo equivalentNo equivalentNo equivalent
Work view panelNavigation and pages slot In the planIn the planIn the planIn the planIn the planIn the planNo equivalentNo equivalentNo equivalent
Settings sectionNavigation and pages slot Available todayAvailable todayIn the planAvailable todayIn the planIn the planNo equivalentNo equivalentNo equivalent
Settings pageNavigation and pages slot In the planIn the planIn the planIn the planIn the planIn the planNo equivalentNo equivalentNo equivalent
Onboarding stepNavigation and pages slot In the planIn the planIn the planIn the planIn the planIn the planNo equivalentNo equivalentNo equivalent
Theme tokensNavigation and pages slot In the planIn the planIn the planIn the planIn the planIn the planNo equivalentNo equivalentNo equivalent
Home-screen widgetOn the device slot No equivalentIn the planIn the planIn the planIn the planNo equivalentNo equivalentNo equivalentNo equivalent
Lock-screen widgetOn the device slot No equivalentNo equivalentIn the planNo equivalentNo equivalentNo equivalentNo equivalentNo equivalentNo equivalent
Live activityOn the device slot No equivalentIn the planIn the planNo equivalentNo equivalentNo equivalentIn the planIn the planNo equivalent
Complication or tileOn the device slot No equivalentNo equivalentNo equivalentNo equivalentNo equivalentNo equivalentIn the planIn the planNo equivalent
Smart Stack widgetOn the device slot No equivalentNo equivalentNo equivalentNo equivalentNo equivalentNo equivalentIn the planNo equivalentNo equivalent
Quick-settings tileOn the device slot No equivalentIn the planIn the planNo equivalentNo equivalentNo equivalentNo equivalentNo equivalentNo equivalent
Notification contentOn the device slot No equivalentIn the planIn the planIn the planIn the planNo equivalentIn the planIn the planNo equivalent
Menu bar / system tray itemOn the device slot No equivalentNo equivalentNo equivalentIn the planIn the planIn the planNo equivalentNo equivalentNo equivalent
Dock and taskbar badgeOn the device slot No equivalentNo equivalentNo equivalentIn the planIn the planIn the planNo equivalentNo equivalentNo equivalent
File providerOn the device slot No equivalentIn the planIn the planIn the planIn the planNo equivalentNo equivalentNo equivalentNo equivalent
File previewOn the device slot No equivalentNo equivalentIn the planIn the planNo equivalentIn the planNo equivalentNo equivalentNo equivalent
KeyboardOn the device slot No equivalentIn the planIn the planNo equivalentNo equivalentNo equivalentNo equivalentNo equivalentNo equivalent
Live wallpaperOn the device slot No equivalentIn the planNo equivalentNo equivalentNo equivalentNo equivalentNo equivalentNo equivalentNo equivalent
ScreensaverOn the device slot No equivalentNo equivalentNo equivalentIn the planIn the planIn the planNo equivalentNo equivalentNo equivalent
Side panelIn the browser slot No equivalentNo equivalentNo equivalentNo equivalentNo equivalentNo equivalentNo equivalentNo equivalentIn the plan
Toolbar popupIn the browser slot No equivalentNo equivalentNo equivalentNo equivalentNo equivalentNo equivalentNo equivalentNo equivalentIn the plan
New tab pageIn the browser slot No equivalentNo equivalentNo equivalentNo equivalentNo equivalentNo equivalentNo equivalentNo equivalentIn the plan
Page overlayIn the browser slot No equivalentNo equivalentNo equivalentNo equivalentNo equivalentNo equivalentNo equivalentNo equivalentIn the plan
Deep linkFrom the app entry In the planIn the planIn the planIn the planIn the planIn the planNo equivalentNo equivalentNo equivalent
Command palette itemFrom the app entry In the planIn the planIn the planIn the planIn the planIn the planNo equivalentNo equivalentNo equivalent
In-app keyboard shortcutFrom the app entry In the planIn the planIn the planIn the planIn the planIn the planNo equivalentNo equivalentNo equivalent
Notification tap and actionsFrom the device entry In the planIn the planIn the planIn the planIn the planIn the planIn the planIn the planNo equivalent
Widget interactionFrom the device entry No equivalentIn the planIn the planIn the planIn the planNo equivalentIn the planIn the planNo equivalent
App shortcuts and voice assistantFrom the device entry No equivalentIn the planIn the planIn the planNo equivalentNo equivalentIn the planIn the planNo equivalent
Device assistantFrom the device entry No equivalentIn the planNo equivalentNo equivalentNo equivalentNo equivalentNo equivalentNo equivalentNo equivalent
Quick-settings tile tapFrom the device entry No equivalentIn the planIn the planNo equivalentNo equivalentNo equivalentNo equivalentNo equivalentNo equivalent
Complication tapFrom the device entry No equivalentNo equivalentNo equivalentNo equivalentNo equivalentNo equivalentIn the planIn the planNo equivalent
Global hotkeyFrom the device entry No equivalentNo equivalentNo equivalentIn the planIn the planIn the planNo equivalentNo equivalentIn the plan
NFC tag tapFrom the device entry No equivalentIn the planIn the planNo equivalentNo equivalentNo equivalentNo equivalentNo equivalentNo equivalent
App Clip / lightweight app entryFrom the device entry No equivalentIn the planIn the planNo equivalentNo equivalentNo equivalentNo equivalentNo equivalentNo equivalent
Share sheet, inboundFrom other apps entry In the planIn the planIn the planIn the planIn the planNo equivalentNo equivalentNo equivalentNo equivalent
Open withFrom other apps entry No equivalentIn the planIn the planIn the planIn the planIn the planNo equivalentNo equivalentNo equivalent
Drag and drop onto the appFrom other apps entry In the planIn the planIn the planIn the planIn the planIn the planNo equivalentNo equivalentNo equivalent
System context menuFrom other apps entry No equivalentNo equivalentNo equivalentIn the planIn the planIn the planNo equivalentNo equivalentIn the plan
Toolbar buttonFrom other apps entry No equivalentNo equivalentNo equivalentNo equivalentNo equivalentNo equivalentNo equivalentNo equivalentIn the plan
Omnibox keywordFrom other apps entry No equivalentNo equivalentNo equivalentNo equivalentNo equivalentNo equivalentNo equivalentNo equivalentIn the plan
WebhookFrom the cloud trigger Available today · Shared cloud runtime
LocationLocation and presence trigger No equivalentIn the planIn the planIn the planIn the planIn the planIn the planIn the planNo equivalent
Bluetooth device or beacon presenceLocation and presence trigger No equivalentIn the planIn the planIn the planIn the planIn the planNo equivalentNo equivalentNo equivalent
Network changeLocation and presence trigger In the planIn the planNo equivalentIn the planIn the planIn the planNo equivalentNo equivalentNo equivalent
USB device attachedLocation and presence trigger No equivalentIn the planNo equivalentIn the planIn the planIn the planNo equivalentNo equivalentNo equivalent
Display connectedLocation and presence trigger No equivalentNo equivalentNo equivalentIn the planIn the planIn the planNo equivalentNo equivalentNo equivalent
Audio device changeLocation and presence trigger No equivalentIn the planNo equivalentIn the planIn the planIn the planNo equivalentNo equivalentNo equivalent
Battery and chargingDevice state trigger In the planIn the planNo equivalentIn the planIn the planIn the planNo equivalentNo equivalentNo equivalent
Session eventsDevice state trigger No equivalentIn the planNo equivalentIn the planIn the planIn the planNo equivalentNo equivalentNo equivalent
User idleDevice state trigger No equivalentNo equivalentNo equivalentIn the planIn the planIn the planNo equivalentNo equivalentNo equivalent
Active app changesDevice state trigger No equivalentNo equivalentNo equivalentIn the planIn the planIn the planNo equivalentNo equivalentIn the plan
Do Not Disturb changeDevice state trigger No equivalentIn the planNo equivalentNo equivalentIn the planNo equivalentNo equivalentNo equivalentNo equivalent
Screenshot takenDevice state trigger No equivalentIn the planNo equivalentNo equivalentNo equivalentNo equivalentNo equivalentNo equivalentNo equivalent
App installed or removedDevice state trigger No equivalentIn the planNo equivalentNo equivalentNo equivalentNo equivalentNo equivalentNo equivalentNo equivalent
Call stateDevice state trigger No equivalentIn the planIn the planNo equivalentNo equivalentNo equivalentNo equivalentNo equivalentNo equivalent
Notification accessContent changes trigger No equivalentIn the planNo equivalentNo equivalentIn the planIn the planNo equivalentNo equivalentNo equivalent
Clipboard changesContent changes trigger No equivalentNo equivalentNo equivalentIn the planIn the planIn the planNo equivalentNo equivalentNo equivalent
Calendar changesContent changes trigger No equivalentIn the planNo equivalentIn the planIn the planIn the planNo equivalentNo equivalentNo equivalent
Contacts changesContent changes trigger No equivalentIn the planNo equivalentIn the planIn the planIn the planNo equivalentNo equivalentNo equivalent
Media library changeContent changes trigger No equivalentIn the planNo equivalentIn the planIn the planNo equivalentNo equivalentNo equivalentNo equivalent
Now Playing changeContent changes trigger No equivalentIn the planNo equivalentIn the planIn the planIn the planNo equivalentNo equivalentNo equivalent
Home accessory eventsContent changes trigger No equivalentIn the planIn the planIn the planNo equivalentNo equivalentIn the planNo equivalentNo equivalent
Page and tab eventsIn the browser trigger No equivalentNo equivalentNo equivalentNo equivalentNo equivalentNo equivalentNo equivalentNo equivalentIn the plan
Download finishedIn the browser trigger No equivalentNo equivalentNo equivalentNo equivalentNo equivalentNo equivalentNo equivalentNo equivalentIn the plan
Bookmark or history changeIn the browser trigger No equivalentNo equivalentNo equivalentNo equivalentNo equivalentNo equivalentNo equivalentNo equivalentIn the plan
System prompt assemblyIn the Bot handler Available today · Shared cloud runtime
Tool exposureIn the Bot handler Available today · Shared cloud runtime
Model requestIn the Bot handler Available today · Shared cloud runtime
Before a tool runsIn the Bot handler Available today · Shared cloud runtime
After a tool runsIn the Bot handler Available today · Shared cloud runtime
Turn stoppingIn the Bot handler Available today · Shared cloud runtime
Approval decisionsIn the Bot handler In the plan · Shared cloud runtime
Inbound message routingIn the Bot handler In the plan · Shared cloud runtime
Call screeningOn the device handler No equivalentIn the planNo equivalentNo equivalentNo equivalentNo equivalentNo equivalentNo equivalentNo equivalent
SMS filteringOn the device handler No equivalentNo equivalentIn the planNo equivalentNo equivalentNo equivalentNo equivalentNo equivalentNo equivalent
Caller ID listOn the device handler No equivalentIn the planIn the planNo equivalentNo equivalentNo equivalentNo equivalentNo equivalentNo equivalent
Mail extensionOn the device handler No equivalentNo equivalentNo equivalentIn the planNo equivalentNo equivalentNo equivalentNo equivalentNo equivalent
Focus filterOn the device handler No equivalentNo equivalentIn the planIn the planNo equivalentNo equivalentNo equivalentNo equivalentNo equivalent
Request filteringIn the browser handler No equivalentNo equivalentNo equivalentNo equivalentNo equivalentNo equivalentNo equivalentNo equivalentIn the plan
Network, with your credentialsReach out action Available today · Shared cloud runtime
Local notificationsReach out action In the planIn the planIn the planIn the planIn the planIn the planIn the planIn the planIn the plan
Share sheet, outboundReach out action In the planIn the planIn the planIn the planIn the planNo equivalentNo equivalentNo equivalentNo equivalent
Prefilled composeReach out action In the planIn the planIn the planIn the planIn the planIn the planNo equivalentNo equivalentNo equivalent
Place a callReach out action No equivalentIn the planIn the planNo equivalentIn the planNo equivalentNo equivalentIn the planNo equivalent
DirectionsReach out action No equivalentIn the planIn the planIn the planIn the planNo equivalentIn the planNo equivalentNo equivalent
Open a URL or another appReach out action In the planIn the planIn the planIn the planIn the planIn the planIn the planIn the planIn the plan
ContactsPersonal data action No equivalentIn the planIn the planIn the planIn the planIn the planNo equivalentIn the planNo equivalent
Calendar and remindersPersonal data action No equivalentIn the planIn the planIn the planIn the planIn the planNo equivalentIn the planNo equivalent
Photo libraryPersonal data action No equivalentIn the planIn the planIn the planIn the planIn the planNo equivalentNo equivalentNo equivalent
Music libraryPersonal data action No equivalentIn the planIn the planIn the planNo equivalentNo equivalentNo equivalentNo equivalentNo equivalent
Files and foldersPersonal data action In the planIn the planIn the planIn the planIn the planIn the planNo equivalentNo equivalentNo equivalent
ClipboardPersonal data action In the planIn the planIn the planIn the planIn the planIn the planNo equivalentNo equivalentIn the plan
System search indexPersonal data action No equivalentNo equivalentIn the planIn the planIn the planNo equivalentNo equivalentNo equivalentNo equivalent
LocationHardware action In the planIn the planIn the planIn the planIn the planIn the planIn the planIn the planNo equivalent
Camera and document scannerHardware action In the planIn the planIn the planIn the planIn the planIn the planNo equivalentNo equivalentNo equivalent
Image text and object recognitionHardware action No equivalentIn the planIn the planIn the planIn the planNo equivalentNo equivalentNo equivalentNo equivalent
Audio recordingHardware action In the planIn the planIn the planIn the planIn the planIn the planIn the planIn the planNo equivalent
Audio playbackHardware action In the planIn the planIn the planIn the planIn the planIn the planIn the planIn the planNo equivalent
Text to speechHardware action In the planIn the planIn the planIn the planIn the planIn the planIn the planIn the planNo equivalent
Speech recognitionHardware action In the planIn the planIn the planIn the planIn the planIn the planNo equivalentNo equivalentNo equivalent
FlashlightHardware action No equivalentIn the planIn the planNo equivalentNo equivalentNo equivalentNo equivalentNo equivalentNo equivalent
HapticsHardware action In the planIn the planIn the planNo equivalentNo equivalentNo equivalentIn the planIn the planNo equivalent
Motion and environment sensorsHardware action In the planIn the planIn the planNo equivalentNo equivalentNo equivalentIn the planIn the planNo equivalent
NFCHardware action No equivalentIn the planIn the planNo equivalentNo equivalentNo equivalentNo equivalentNo equivalentNo equivalent
Bluetooth device I/OHardware action In the planIn the planIn the planIn the planIn the planIn the planIn the planIn the planNo equivalent
USB and serialHardware action In the planIn the planNo equivalentIn the planIn the planIn the planNo equivalentNo equivalentNo equivalent
Local network discoveryHardware action No equivalentIn the planIn the planIn the planIn the planIn the planNo equivalentNo equivalentNo equivalent
Home accessory controlHardware action No equivalentIn the planIn the planIn the planNo equivalentNo equivalentIn the planNo equivalentNo equivalent
Wallet passesHardware action No equivalentIn the planIn the planNo equivalentNo equivalentNo equivalentIn the planIn the planNo equivalent
Payment sheetHardware action In the planIn the planIn the planNo equivalentIn the planNo equivalentIn the planIn the planNo equivalent
Biometric confirmationHardware action In the planIn the planIn the planIn the planIn the planNo equivalentNo equivalentNo equivalentNo equivalent
Device stateHardware action In the planIn the planIn the planIn the planIn the planIn the planIn the planIn the planNo equivalent
PrintHardware action In the planIn the planIn the planIn the planIn the planIn the planNo equivalentNo equivalentNo equivalent
On-device modelHardware action In the planIn the planIn the planIn the planIn the planIn the planNo equivalentNo equivalentNo equivalent
System settingsSystem control action No equivalentIn the planNo equivalentIn the planIn the planIn the planNo equivalentNo equivalentNo equivalent
WallpaperSystem control action No equivalentIn the planNo equivalentIn the planIn the planIn the planNo equivalentNo equivalentNo equivalent
Alarms and timersSystem control action No equivalentIn the planNo equivalentNo equivalentNo equivalentNo equivalentNo equivalentNo equivalentNo equivalent
Keep awakeSystem control action No equivalentIn the planNo equivalentIn the planIn the planIn the planNo equivalentNo equivalentNo equivalent
Lock, sleep and shut downSystem control action No equivalentNo equivalentNo equivalentIn the planIn the planIn the planNo equivalentNo equivalentNo equivalent
Window managementSystem control action No equivalentNo equivalentNo equivalentIn the planIn the planIn the planNo equivalentNo equivalentNo equivalent
Now Playing controlSystem control action No equivalentIn the planNo equivalentIn the planIn the planIn the planNo equivalentNo equivalentNo equivalent
Accessibility automationSystem control action No equivalentNo equivalentNo equivalentIn the planIn the planIn the planNo equivalentNo equivalentNo equivalent
Local shellSystem control action No equivalentNo equivalentNo equivalentIn the planIn the planIn the planNo equivalentNo equivalentNo equivalent
Automation app handoffSystem control action No equivalentIn the planIn the planIn the planIn the planNo equivalentNo equivalentNo equivalentNo equivalent
Read the current pageIn the browser action No equivalentNo equivalentNo equivalentNo equivalentNo equivalentNo equivalentNo equivalentNo equivalentIn the plan
Modify the pageIn the browser action No equivalentNo equivalentNo equivalentNo equivalentNo equivalentNo equivalentNo equivalentNo equivalentIn the plan
Tabs and windowsIn the browser action No equivalentNo equivalentNo equivalentNo equivalentNo equivalentNo equivalentNo equivalentNo equivalentIn the plan
DownloadsIn the browser action No equivalentNo equivalentNo equivalentNo equivalentNo equivalentNo equivalentNo equivalentNo equivalentIn the plan
History and bookmarksIn the browser action No equivalentNo equivalentNo equivalentNo equivalentNo equivalentNo equivalentNo equivalentNo equivalentIn the plan

A little continuity
goes a long way.

A useful Bot needs to remember, know how to work and come back at the right time.

Memory

What it knows

Durable notes hold useful facts beyond the immediate conversation. Bot, User and Group Chat scopes let information live at the right level.

Skills

How to do it

A Skill is an instruction directory: a SKILL.md file and its references. Plugins can bundle Skills for the Bots that run them.

Routines

When to return

Schedules and events start new Turns without an open app. Each run belongs to the Bot’s continuing record.

Conversation history records what happened, but not everything in a conversation is worth carrying forward. Memory holds the durable facts, Skills describe how to approach a task, and Routines bring the Bot back at the right time. Because these are distinct pieces, a long chat does not have to carry every instruction and every fact in its context window.

You can give different Bots different jobs, identities, instructions and plugin selections. They share an account’s connections and resources where appropriate, while keeping their own conversations — a small team of Bots without a separate service for each one.

Your Bot has
a Computer.

A remote browser, filesystem and terminal, with a desktop you can watch or take over.

The Bot’s ComputerWatch · Take over
Browser
Work in progressResearch, forms and files

A visible place to follow what the Bot is doing.

Terminal~/workspace

research/
notes.md
report.pdf
Illustrative cloud desktop. This Computer is separate from your own laptop.

The current Computer provider uses Fly Sprites: one persistent computer per User, shared by their Bots, with Bot-specific directories and on-demand desktop sessions. Browser logins are shared at the User level. The Workspace gives the work a place to live.

This is where a Bot can browse, use a terminal and work with files. It is also somewhere you can step in when a site needs human attention. Plugins run in their Dynamic Worker and reach Computer capabilities through the host’s approved interface.

A connected desktop app is another client on your own machine. The cloud Computer is a separate environment; your desktop’s filesystem and operating system are reached only through their own client.

Live voice,
durable work.

The interaction can be immediate while the work remains persistent.

Dictation puts spoken words into the composer. A voice call is a different mode of one Bot, running on Gemini Live. It starts with that Bot’s instructions, memory and recent conversation, and speaks in the Bot’s own voice. Ask for another Bot by name and switch_bot hands the call over.

Anything that takes more than a moment goes to subagent: a Turn of the same Bot that runs while you keep talking. Its answer is spoken when it lands, or written into the chat if no call is open by then. The call itself does not share the thread. Nothing said on it becomes a message; when it ends, the spoken exchange is kept on the thread as one collapsible section.

Call one BotGemini Live, with the Bot’s contextSubagent for longer workA recorded Turn

Model choice sits behind an interface too. The provider catalogue contains 28 provider entries, with different authentication and model options. The Turn uses its admitted provider and model; credentials stay in the Worker. Optional model-provider plugins translate requests through host-controlled transport.

Frock AI is the built-in path. The simplest deployment uses the Cloudflare account’s Workers AI inference service directly. Additional providers become available when model keys or an AI Gateway are configured.

The conversational model stays on one reasoning level. Specialist routing belongs to Jev, not to an automatic effort picker.

See the provider catalogue and authentication options ↗

Read it, change it,
run it yourself.

FrockBot is open source under the MIT licence.

You can inspect the agent loop, see how permissions are enforced, write a plugin, change a client or run a deployment in your own account. The same source lets you move from “I wish it did this” to changing how it works.

Plugins customise the running product. The source lets you change the product itself: add a native integration, extend the component catalogue or contribute a new capability for everyone. Self-hosting means operating the required cloud services and paying their usage costs; the install guide explains the prerequisites.

See what fits.
Make it yours.

Meet your first Bot →Download for Mac