One Jev request after the Turn is admitted, before the conversational model speaks.
Inside FrockBot
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 architectureLoading the system map…
01 / Native where you are
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.
I’ll keep the work here. You can check in from your phone.
Here’s where we got to.
on another screen.
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.
02 / The cloud keeps the thread
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.
-
01Store input
Durably admit the message or event.
-
02Acknowledge
Tell the client its input is accepted.
-
03Assess the Turn
Jev judges the work before the first model call.
-
04Prepare a request
Prompt, tool-exposure and request hooks run.
-
05Model step
The model responds or asks for a tool.
-
06Review the proposal
Jev decides which text and calls may proceed.
-
07 · repeatTool step
Pre- and post-execute hooks wrap the allowed tools.
-
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.
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.
03 / A supervisor on every Turn
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.
One Jev request after a complete response, before text is shown or a tool runs.
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.
04 / Dress your Bot
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.
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.
{
"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.
-
system-prompt/assembleShape the instructions assembled for the model. -
agent/tool-exposureChoose which admitted tools the model sees. -
agent/requestTransform the permitted fields of a model request. -
tools/pre-executeInspect or veto a tool call before execution. -
tools/post-executeTransform the result returned to the agent. -
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.
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.
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.
05 / The interface is part of the plugin
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.
Describe components
The client draws components from its compiled catalogue, using Flutter widgets.
Conversation cards todayProvide a web interface
A contained web surface presents richer layouts inside a supported slot.
Planned plugin slot pathA2UI 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.
{
"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.
06 / A much wider canvas
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.
Slot
A place for a plugin’s interface.
Cards, panels, widgetsEntry
A person starts work or opens a surface.
Shortcuts, share sheetsTrigger
An event starts work in the background.
Webhooks, device eventsHandler
The host asks for a decision or transformation, or sends a lifecycle notification.
Agent hooks, filtering, stopping noticesAction
A tool reaches a device or service.
Files, network, hardwareThese 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.
No capabilities match these filters. Try a broader search or reset the filters.
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
Deep link
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
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.
| Capability | Type | Web | Android | iPhone | macOS | Windows | Linux | Apple Watch | Wear OS | Browser extension |
|---|---|---|---|---|---|---|---|---|---|---|
| Conversation cardIn the conversation | slot | Available today | Available today | In the plan | Available today | In the plan | In the plan | In the plan | In the plan | No equivalent |
| Conversation panelIn the conversation | slot | Available today | Available today | In the plan | Available today | In the plan | In the plan | No equivalent | No equivalent | No equivalent |
| Message actionIn the conversation | slot | In the plan | In the plan | In the plan | In the plan | In the plan | In the plan | No equivalent | No equivalent | No equivalent |
| Message decorationIn the conversation | slot | In the plan | In the plan | In the plan | In the plan | In the plan | In the plan | No equivalent | No equivalent | No equivalent |
| Turn status stripIn the conversation | slot | In the plan | In the plan | In the plan | In the plan | In the plan | In the plan | No equivalent | No equivalent | No equivalent |
| Conversation empty stateIn the conversation | slot | In the plan | In the plan | In the plan | In the plan | In the plan | In the plan | No equivalent | No equivalent | No equivalent |
| Suggested promptsIn the conversation | slot | In the plan | In the plan | In the plan | In the plan | In the plan | In the plan | No equivalent | No equivalent | No equivalent |
| Approval promptIn the conversation | slot | In the plan | In the plan | In the plan | In the plan | In the plan | In the plan | No equivalent | No equivalent | No equivalent |
| Composer stripAround the composer | slot | In the plan | In the plan | In the plan | In the plan | In the plan | In the plan | No equivalent | No equivalent | No equivalent |
| Composer toolbar buttonAround the composer | slot | In the plan | In the plan | In the plan | In the plan | In the plan | In the plan | No equivalent | No equivalent | No equivalent |
| Attachment typeAround the composer | slot | In the plan | In the plan | In the plan | In the plan | In the plan | In the plan | No equivalent | No equivalent | No equivalent |
| Voice overlay panelAround the composer | slot | In the plan | In the plan | In the plan | In the plan | In the plan | In the plan | No equivalent | No equivalent | No equivalent |
| Header actionNavigation and pages | slot | In the plan | In the plan | In the plan | In the plan | In the plan | In the plan | No equivalent | No equivalent | No equivalent |
| Sidebar tabNavigation and pages | slot | In the plan | In the plan | In the plan | In the plan | In the plan | In the plan | No equivalent | No equivalent | No equivalent |
| Sidebar sectionNavigation and pages | slot | In the plan | In the plan | In the plan | In the plan | In the plan | In the plan | No equivalent | No equivalent | No equivalent |
| Bot list badgeNavigation and pages | slot | In the plan | In the plan | In the plan | In the plan | In the plan | In the plan | No equivalent | No equivalent | No equivalent |
| Bot profile sectionNavigation and pages | slot | In the plan | In the plan | In the plan | In the plan | In the plan | In the plan | No equivalent | No equivalent | No equivalent |
| Bot page panelNavigation and pages | slot | In the plan | In the plan | In the plan | In the plan | In the plan | In the plan | No equivalent | No equivalent | No equivalent |
| Bot page doorNavigation and pages | slot | Available today | Available today | In the plan | Available today | In the plan | In the plan | No equivalent | No equivalent | No equivalent |
| Full pageNavigation and pages | slot | In the plan | In the plan | In the plan | In the plan | In the plan | In the plan | No equivalent | No equivalent | No equivalent |
| Work view panelNavigation and pages | slot | In the plan | In the plan | In the plan | In the plan | In the plan | In the plan | No equivalent | No equivalent | No equivalent |
| Settings sectionNavigation and pages | slot | Available today | Available today | In the plan | Available today | In the plan | In the plan | No equivalent | No equivalent | No equivalent |
| Settings pageNavigation and pages | slot | In the plan | In the plan | In the plan | In the plan | In the plan | In the plan | No equivalent | No equivalent | No equivalent |
| Onboarding stepNavigation and pages | slot | In the plan | In the plan | In the plan | In the plan | In the plan | In the plan | No equivalent | No equivalent | No equivalent |
| Theme tokensNavigation and pages | slot | In the plan | In the plan | In the plan | In the plan | In the plan | In the plan | No equivalent | No equivalent | No equivalent |
| Home-screen widgetOn the device | slot | No equivalent | In the plan | In the plan | In the plan | In the plan | No equivalent | No equivalent | No equivalent | No equivalent |
| Lock-screen widgetOn the device | slot | No equivalent | No equivalent | In the plan | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent |
| Live activityOn the device | slot | No equivalent | In the plan | In the plan | No equivalent | No equivalent | No equivalent | In the plan | In the plan | No equivalent |
| Complication or tileOn the device | slot | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | In the plan | In the plan | No equivalent |
| Smart Stack widgetOn the device | slot | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | In the plan | No equivalent | No equivalent |
| Quick-settings tileOn the device | slot | No equivalent | In the plan | In the plan | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent |
| Notification contentOn the device | slot | No equivalent | In the plan | In the plan | In the plan | In the plan | No equivalent | In the plan | In the plan | No equivalent |
| Menu bar / system tray itemOn the device | slot | No equivalent | No equivalent | No equivalent | In the plan | In the plan | In the plan | No equivalent | No equivalent | No equivalent |
| Dock and taskbar badgeOn the device | slot | No equivalent | No equivalent | No equivalent | In the plan | In the plan | In the plan | No equivalent | No equivalent | No equivalent |
| File providerOn the device | slot | No equivalent | In the plan | In the plan | In the plan | In the plan | No equivalent | No equivalent | No equivalent | No equivalent |
| File previewOn the device | slot | No equivalent | No equivalent | In the plan | In the plan | No equivalent | In the plan | No equivalent | No equivalent | No equivalent |
| KeyboardOn the device | slot | No equivalent | In the plan | In the plan | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent |
| Live wallpaperOn the device | slot | No equivalent | In the plan | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent |
| ScreensaverOn the device | slot | No equivalent | No equivalent | No equivalent | In the plan | In the plan | In the plan | No equivalent | No equivalent | No equivalent |
| Side panelIn the browser | slot | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | In the plan |
| Toolbar popupIn the browser | slot | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | In the plan |
| New tab pageIn the browser | slot | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | In the plan |
| Page overlayIn the browser | slot | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | In the plan |
| Deep linkFrom the app | entry | In the plan | In the plan | In the plan | In the plan | In the plan | In the plan | No equivalent | No equivalent | No equivalent |
| Command palette itemFrom the app | entry | In the plan | In the plan | In the plan | In the plan | In the plan | In the plan | No equivalent | No equivalent | No equivalent |
| In-app keyboard shortcutFrom the app | entry | In the plan | In the plan | In the plan | In the plan | In the plan | In the plan | No equivalent | No equivalent | No equivalent |
| Notification tap and actionsFrom the device | entry | In the plan | In the plan | In the plan | In the plan | In the plan | In the plan | In the plan | In the plan | No equivalent |
| Widget interactionFrom the device | entry | No equivalent | In the plan | In the plan | In the plan | In the plan | No equivalent | In the plan | In the plan | No equivalent |
| App shortcuts and voice assistantFrom the device | entry | No equivalent | In the plan | In the plan | In the plan | No equivalent | No equivalent | In the plan | In the plan | No equivalent |
| Device assistantFrom the device | entry | No equivalent | In the plan | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent |
| Quick-settings tile tapFrom the device | entry | No equivalent | In the plan | In the plan | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent |
| Complication tapFrom the device | entry | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | In the plan | In the plan | No equivalent |
| Global hotkeyFrom the device | entry | No equivalent | No equivalent | No equivalent | In the plan | In the plan | In the plan | No equivalent | No equivalent | In the plan |
| NFC tag tapFrom the device | entry | No equivalent | In the plan | In the plan | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent |
| App Clip / lightweight app entryFrom the device | entry | No equivalent | In the plan | In the plan | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent |
| Share sheet, inboundFrom other apps | entry | In the plan | In the plan | In the plan | In the plan | In the plan | No equivalent | No equivalent | No equivalent | No equivalent |
| Open withFrom other apps | entry | No equivalent | In the plan | In the plan | In the plan | In the plan | In the plan | No equivalent | No equivalent | No equivalent |
| Drag and drop onto the appFrom other apps | entry | In the plan | In the plan | In the plan | In the plan | In the plan | In the plan | No equivalent | No equivalent | No equivalent |
| System context menuFrom other apps | entry | No equivalent | No equivalent | No equivalent | In the plan | In the plan | In the plan | No equivalent | No equivalent | In the plan |
| Toolbar buttonFrom other apps | entry | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | In the plan |
| Omnibox keywordFrom other apps | entry | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | In the plan |
| WebhookFrom the cloud | trigger | Available today · Shared cloud runtime | ||||||||
| LocationLocation and presence | trigger | No equivalent | In the plan | In the plan | In the plan | In the plan | In the plan | In the plan | In the plan | No equivalent |
| Bluetooth device or beacon presenceLocation and presence | trigger | No equivalent | In the plan | In the plan | In the plan | In the plan | In the plan | No equivalent | No equivalent | No equivalent |
| Network changeLocation and presence | trigger | In the plan | In the plan | No equivalent | In the plan | In the plan | In the plan | No equivalent | No equivalent | No equivalent |
| USB device attachedLocation and presence | trigger | No equivalent | In the plan | No equivalent | In the plan | In the plan | In the plan | No equivalent | No equivalent | No equivalent |
| Display connectedLocation and presence | trigger | No equivalent | No equivalent | No equivalent | In the plan | In the plan | In the plan | No equivalent | No equivalent | No equivalent |
| Audio device changeLocation and presence | trigger | No equivalent | In the plan | No equivalent | In the plan | In the plan | In the plan | No equivalent | No equivalent | No equivalent |
| Battery and chargingDevice state | trigger | In the plan | In the plan | No equivalent | In the plan | In the plan | In the plan | No equivalent | No equivalent | No equivalent |
| Session eventsDevice state | trigger | No equivalent | In the plan | No equivalent | In the plan | In the plan | In the plan | No equivalent | No equivalent | No equivalent |
| User idleDevice state | trigger | No equivalent | No equivalent | No equivalent | In the plan | In the plan | In the plan | No equivalent | No equivalent | No equivalent |
| Active app changesDevice state | trigger | No equivalent | No equivalent | No equivalent | In the plan | In the plan | In the plan | No equivalent | No equivalent | In the plan |
| Do Not Disturb changeDevice state | trigger | No equivalent | In the plan | No equivalent | No equivalent | In the plan | No equivalent | No equivalent | No equivalent | No equivalent |
| Screenshot takenDevice state | trigger | No equivalent | In the plan | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent |
| App installed or removedDevice state | trigger | No equivalent | In the plan | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent |
| Call stateDevice state | trigger | No equivalent | In the plan | In the plan | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent |
| Notification accessContent changes | trigger | No equivalent | In the plan | No equivalent | No equivalent | In the plan | In the plan | No equivalent | No equivalent | No equivalent |
| Clipboard changesContent changes | trigger | No equivalent | No equivalent | No equivalent | In the plan | In the plan | In the plan | No equivalent | No equivalent | No equivalent |
| Calendar changesContent changes | trigger | No equivalent | In the plan | No equivalent | In the plan | In the plan | In the plan | No equivalent | No equivalent | No equivalent |
| Contacts changesContent changes | trigger | No equivalent | In the plan | No equivalent | In the plan | In the plan | In the plan | No equivalent | No equivalent | No equivalent |
| Media library changeContent changes | trigger | No equivalent | In the plan | No equivalent | In the plan | In the plan | No equivalent | No equivalent | No equivalent | No equivalent |
| Now Playing changeContent changes | trigger | No equivalent | In the plan | No equivalent | In the plan | In the plan | In the plan | No equivalent | No equivalent | No equivalent |
| Home accessory eventsContent changes | trigger | No equivalent | In the plan | In the plan | In the plan | No equivalent | No equivalent | In the plan | No equivalent | No equivalent |
| Page and tab eventsIn the browser | trigger | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | In the plan |
| Download finishedIn the browser | trigger | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | In the plan |
| Bookmark or history changeIn the browser | trigger | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | In 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 equivalent | In the plan | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent |
| SMS filteringOn the device | handler | No equivalent | No equivalent | In the plan | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent |
| Caller ID listOn the device | handler | No equivalent | In the plan | In the plan | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent |
| Mail extensionOn the device | handler | No equivalent | No equivalent | No equivalent | In the plan | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent |
| Focus filterOn the device | handler | No equivalent | No equivalent | In the plan | In the plan | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent |
| Request filteringIn the browser | handler | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | In the plan |
| Network, with your credentialsReach out | action | Available today · Shared cloud runtime | ||||||||
| Local notificationsReach out | action | In the plan | In the plan | In the plan | In the plan | In the plan | In the plan | In the plan | In the plan | In the plan |
| Share sheet, outboundReach out | action | In the plan | In the plan | In the plan | In the plan | In the plan | No equivalent | No equivalent | No equivalent | No equivalent |
| Prefilled composeReach out | action | In the plan | In the plan | In the plan | In the plan | In the plan | In the plan | No equivalent | No equivalent | No equivalent |
| Place a callReach out | action | No equivalent | In the plan | In the plan | No equivalent | In the plan | No equivalent | No equivalent | In the plan | No equivalent |
| DirectionsReach out | action | No equivalent | In the plan | In the plan | In the plan | In the plan | No equivalent | In the plan | No equivalent | No equivalent |
| Open a URL or another appReach out | action | In the plan | In the plan | In the plan | In the plan | In the plan | In the plan | In the plan | In the plan | In the plan |
| ContactsPersonal data | action | No equivalent | In the plan | In the plan | In the plan | In the plan | In the plan | No equivalent | In the plan | No equivalent |
| Calendar and remindersPersonal data | action | No equivalent | In the plan | In the plan | In the plan | In the plan | In the plan | No equivalent | In the plan | No equivalent |
| Photo libraryPersonal data | action | No equivalent | In the plan | In the plan | In the plan | In the plan | In the plan | No equivalent | No equivalent | No equivalent |
| Music libraryPersonal data | action | No equivalent | In the plan | In the plan | In the plan | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent |
| Files and foldersPersonal data | action | In the plan | In the plan | In the plan | In the plan | In the plan | In the plan | No equivalent | No equivalent | No equivalent |
| ClipboardPersonal data | action | In the plan | In the plan | In the plan | In the plan | In the plan | In the plan | No equivalent | No equivalent | In the plan |
| System search indexPersonal data | action | No equivalent | No equivalent | In the plan | In the plan | In the plan | No equivalent | No equivalent | No equivalent | No equivalent |
| LocationHardware | action | In the plan | In the plan | In the plan | In the plan | In the plan | In the plan | In the plan | In the plan | No equivalent |
| Camera and document scannerHardware | action | In the plan | In the plan | In the plan | In the plan | In the plan | In the plan | No equivalent | No equivalent | No equivalent |
| Image text and object recognitionHardware | action | No equivalent | In the plan | In the plan | In the plan | In the plan | No equivalent | No equivalent | No equivalent | No equivalent |
| Audio recordingHardware | action | In the plan | In the plan | In the plan | In the plan | In the plan | In the plan | In the plan | In the plan | No equivalent |
| Audio playbackHardware | action | In the plan | In the plan | In the plan | In the plan | In the plan | In the plan | In the plan | In the plan | No equivalent |
| Text to speechHardware | action | In the plan | In the plan | In the plan | In the plan | In the plan | In the plan | In the plan | In the plan | No equivalent |
| Speech recognitionHardware | action | In the plan | In the plan | In the plan | In the plan | In the plan | In the plan | No equivalent | No equivalent | No equivalent |
| FlashlightHardware | action | No equivalent | In the plan | In the plan | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent |
| HapticsHardware | action | In the plan | In the plan | In the plan | No equivalent | No equivalent | No equivalent | In the plan | In the plan | No equivalent |
| Motion and environment sensorsHardware | action | In the plan | In the plan | In the plan | No equivalent | No equivalent | No equivalent | In the plan | In the plan | No equivalent |
| NFCHardware | action | No equivalent | In the plan | In the plan | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent |
| Bluetooth device I/OHardware | action | In the plan | In the plan | In the plan | In the plan | In the plan | In the plan | In the plan | In the plan | No equivalent |
| USB and serialHardware | action | In the plan | In the plan | No equivalent | In the plan | In the plan | In the plan | No equivalent | No equivalent | No equivalent |
| Local network discoveryHardware | action | No equivalent | In the plan | In the plan | In the plan | In the plan | In the plan | No equivalent | No equivalent | No equivalent |
| Home accessory controlHardware | action | No equivalent | In the plan | In the plan | In the plan | No equivalent | No equivalent | In the plan | No equivalent | No equivalent |
| Wallet passesHardware | action | No equivalent | In the plan | In the plan | No equivalent | No equivalent | No equivalent | In the plan | In the plan | No equivalent |
| Payment sheetHardware | action | In the plan | In the plan | In the plan | No equivalent | In the plan | No equivalent | In the plan | In the plan | No equivalent |
| Biometric confirmationHardware | action | In the plan | In the plan | In the plan | In the plan | In the plan | No equivalent | No equivalent | No equivalent | No equivalent |
| Device stateHardware | action | In the plan | In the plan | In the plan | In the plan | In the plan | In the plan | In the plan | In the plan | No equivalent |
| PrintHardware | action | In the plan | In the plan | In the plan | In the plan | In the plan | In the plan | No equivalent | No equivalent | No equivalent |
| On-device modelHardware | action | In the plan | In the plan | In the plan | In the plan | In the plan | In the plan | No equivalent | No equivalent | No equivalent |
| System settingsSystem control | action | No equivalent | In the plan | No equivalent | In the plan | In the plan | In the plan | No equivalent | No equivalent | No equivalent |
| WallpaperSystem control | action | No equivalent | In the plan | No equivalent | In the plan | In the plan | In the plan | No equivalent | No equivalent | No equivalent |
| Alarms and timersSystem control | action | No equivalent | In the plan | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent |
| Keep awakeSystem control | action | No equivalent | In the plan | No equivalent | In the plan | In the plan | In the plan | No equivalent | No equivalent | No equivalent |
| Lock, sleep and shut downSystem control | action | No equivalent | No equivalent | No equivalent | In the plan | In the plan | In the plan | No equivalent | No equivalent | No equivalent |
| Window managementSystem control | action | No equivalent | No equivalent | No equivalent | In the plan | In the plan | In the plan | No equivalent | No equivalent | No equivalent |
| Now Playing controlSystem control | action | No equivalent | In the plan | No equivalent | In the plan | In the plan | In the plan | No equivalent | No equivalent | No equivalent |
| Accessibility automationSystem control | action | No equivalent | No equivalent | No equivalent | In the plan | In the plan | In the plan | No equivalent | No equivalent | No equivalent |
| Local shellSystem control | action | No equivalent | No equivalent | No equivalent | In the plan | In the plan | In the plan | No equivalent | No equivalent | No equivalent |
| Automation app handoffSystem control | action | No equivalent | In the plan | In the plan | In the plan | In the plan | No equivalent | No equivalent | No equivalent | No equivalent |
| Read the current pageIn the browser | action | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | In the plan |
| Modify the pageIn the browser | action | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | In the plan |
| Tabs and windowsIn the browser | action | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | In the plan |
| DownloadsIn the browser | action | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | In the plan |
| History and bookmarksIn the browser | action | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | No equivalent | In the plan |
07 / More than a message history
A little continuity
goes a long way.
A useful Bot needs to remember, know how to work and come back at the right time.
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.
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.
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.
08 / Somewhere to do the work
Your Bot has
a Computer.
A remote browser, filesystem and terminal, with a desktop you can watch or take over.
A visible place to follow what the Bot is doing.
~/workspace
research/
notes.md
report.pdf
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.
09 / Talk naturally. Choose the engine.
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.
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.
10 / Yours to shape
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.