The system
How the system worksThe DirectoryDispatchThe LedgerAI modelsAI agentsYour installationThe appThe research libraryWhat changes for your businessUse it from your softwareEverything it can do
Messaging
iMessageWhatsApp
Ads and leads
AdsCreativeLeads
Devices
Devices
Industries
RealtorsRestaurantsHome services
Explore
How it worksPermissions and limitsCompareSet upQuestionsText me
GPSarrive · leave
NFCtap a tag
Cameraphoto in
Micvoice note
Batterylevel
Focusmode
Bluetoothnearby
Motiondriving
iOS · Shortcuts
Run Shortcut “Book from text”
Get Calendar events
Send Message
Set Focus
Tell the system: arrived
Maps
Messages
Saw your ad. Can you look at a leak Thursday?
Yes. 10:00 or 2:30?
2:30
Booked. Invite sent.
Safari
yourbusiness.com
logged in as you
Mail · Calendar · Contacts
Bright RoofingInvoice 118 · opened
Dana4:15 works
CalendarThu 2:30 · visit
AI ASSISTANT
Screenscreenshot · read
CameraFaceTime HD
Micrecord
Batterylevel
Wi‑Finetwork
Bluetoothnearby
macOS · Accessibility · AppleScript
button “Approve”text fieldmenu Filewindow TextEdit
Terminal
$ gh issue create --title "Text-back slow"
$ wrangler deploy
$ stripe invoices create --customer …
$ ffmpeg -i ad07.mp4 -vf scale=1080:1920
$ ▍
Browser
business.facebook.com/adsmanager
● logged in as you
Files · Messages · Mail
brief-q4.mdread
ad07.mp4rendered
invoice-118.pdfsent
chat.dbwatched
leads.csv1 row per lead
Cloud servers · the Directory
1,335actions in the Directory
26ways to run them
311,989entries in the Ledger
7AI agents
runs when your Mac is off
iPhone · partAvailableSensors and radiosGPS, NFC tags, camera, microphone, battery, Focus mode, Bluetooth. Each change can be sent to the system as an event.POST /api/phone/in {"kind":"arrive","where":"home"}iPhone · partAvailableiOS and ShortcutsRuns any Apple Shortcut, for example when a text arrives. Any app action offered in Shortcuts can be run.{"key":"APPLE_SHORTCUT", "args":"Door Lock"}iPhone · partAvailableMaps and locationWhere the phone is when you arrive or leave a place. Routes and travel times by address.{"key":"GOOGLE_MAPS_ROUTE", "args":"LAX|Santa Monica Pier"}iPhone · partAvailableMessagesYour own number sends and receives iMessages. It reads, searches and replies in your existing conversations.{"key":"IMESSAGE_SEND", "args":"+1…|hello"}iPhone · partAvailableSafari and websitesRuns a script inside a web page you are signed in to. Opens any link.{"key":"APPLE_SAFARI_JS", "args":"document.title"}iPhone · partAvailableMail · Calendar · ContactsSearches mail, books only into hours you marked as open, and looks up who a contact is.{"key":"APPLE_MAIL", "args":"invoice"}iPhone · partAvailableAI assistantAn AI model that reads and replies to messages on your number, following the permissions you set.sms: +1 (424) 504-0908 "Hi. About my business."Mac · partAvailableScreen and sensorsTakes a screenshot and reads the text in it. Records audio. Checks the battery and the network.{"key":"LOCAL_SCREENSHOT", "args":""}Mac · partAvailablemacOS · AccessibilitySees every button and field on the screen. Clicks and types in any app, and runs scripts.{"key":"LOCAL_UI_CLICK", "args":"Save|button|TextEdit"}Mac · partAvailableTerminalEvery command-line program on the Mac can be run as an action, and each run is recorded.{"key":"LOCAL_EXEC", "args":"ffmpeg -i ad07.mp4 …"}Mac · partAvailableBrowserChrome or Safari, signed in to your own accounts. It fills in forms, clicks and takes screenshots.{"key":"BROWSER_PLAYWRIGHT", "args":"screenshot https://…"}Mac · partAvailableFiles · Messages · MailReads, writes and searches the folders you choose. Watches Messages on the Mac for new texts.{"key":"LOCAL_READ", "args":"brief-q4.md"}Mac · partAvailableCloud servers · the DirectoryServers that run when your Mac is off. They hold the Directory, the one address that runs it, and the Ledger.POST /api/dispatch {"key":"<any action in the Directory>", "args":…}iPhone · partAvailableSensors and radiosGPS, NFC tags, camera, microphone, battery, Focus mode, Bluetooth. Each change can be sent to the system as an event.POST /api/phone/in {"kind":"arrive","where":"home"}iPhone · partAvailableiOS and ShortcutsRuns any Apple Shortcut, for example when a text arrives. Any app action offered in Shortcuts can be run.{"key":"APPLE_SHORTCUT", "args":"Door Lock"}iPhone · partAvailableMaps and locationWhere the phone is when you arrive or leave a place. Routes and travel times by address.{"key":"GOOGLE_MAPS_ROUTE", "args":"LAX|Santa Monica Pier"}iPhone · partAvailableMessagesYour own number sends and receives iMessages. It reads, searches and replies in your existing conversations.{"key":"IMESSAGE_SEND", "args":"+1…|hello"}iPhone · partAvailableSafari and websitesRuns a script inside a web page you are signed in to. Opens any link.{"key":"APPLE_SAFARI_JS", "args":"document.title"}iPhone · partAvailableMail · Calendar · ContactsSearches mail, books only into hours you marked as open, and looks up who a contact is.{"key":"APPLE_MAIL", "args":"invoice"}iPhone · partAvailableAI assistantAn AI model that reads and replies to messages on your number, following the permissions you set.sms: +1 (424) 504-0908 "Hi. About my business."Mac · partAvailableScreen and sensorsTakes a screenshot and reads the text in it. Records audio. Checks the battery and the network.{"key":"LOCAL_SCREENSHOT", "args":""}Mac · partAvailablemacOS · AccessibilitySees every button and field on the screen. Clicks and types in any app, and runs scripts.{"key":"LOCAL_UI_CLICK", "args":"Save|button|TextEdit"}Mac · partAvailableTerminalEvery command-line program on the Mac can be run as an action, and each run is recorded.{"key":"LOCAL_EXEC", "args":"ffmpeg -i ad07.mp4 …"}Mac · partAvailableBrowserChrome or Safari, signed in to your own accounts. It fills in forms, clicks and takes screenshots.{"key":"BROWSER_PLAYWRIGHT", "args":"screenshot https://…"}Mac · partAvailableFiles · Messages · MailReads, writes and searches the folders you choose. Watches Messages on the Mac for new texts.{"key":"LOCAL_READ", "args":"brief-q4.md"}Mac · partAvailableCloud servers · the DirectoryServers that run when your Mac is off. They hold the Directory, the one address that runs it, and the Ledger.POST /api/dispatch {"key":"<any action in the Directory>", "args":…}
The number you already advertise

The phone rings out. The caller gets a text from your number inside a minute.

It quotes only prices you approved and books only into hours you opened. It answers from your number, so it reads as you. When it is not sure it hands the thread to a person, and every message it sent is a line you can read.

The parts of your iPhone and Mac the system can control

On the iPhone: sensors, Shortcuts, Maps, Messages, Safari and Mail. On the Mac: the screen, the apps, Terminal, the browser and files. Plus servers in the cloud.

Each thing it can do is one row in a table

That table, the Directory, lists all 1,335 actions the system can run. One web address runs any of them, and every run is written to a permanent record, the Ledger.

Tap any part to read more

Each part opens the page for its device: what the part is and what the system does with it.

Scroll
Explain it for

How the system works

Four parts, and what each one is for

Every action it can take is a row in a table called the Directory, so a capability you did not know existed is still a row you can read and refuse. One address runs any row. Every run, including the ones it refused, is appended to a record. The four cards are what a row needs before it can happen.

Live, read from this site just now

The Directory Every action the system can run

A table with one row for each action the system can run.

The Directory is a table. Each row is one thing the system can do for your business: send a text from your number, book a slot in your calendar, create an ad, read a web page, take a screenshot of your Mac. If an action is not in the table, the system cannot do it.

Each row stores everything needed to run that action: where it runs, what inputs it needs, what it returns, and every way to call it. Changing a setting is typing in a cell. Files added to the system’s folder are added to the table automatically.

One row per action. Each row has one column per way of calling it, and each of those cells holds the complete request (method, address, headers and body) that runs it, followed by the full response from the last run.

1,335actions in the Directory right now
Send an iMessage from your business numberIMESSAGE_SENDin the Directory
Book an appointment in hours you marked as openGOOGLE_CALENDAR_CREATEin the Directory
Create a Meta ad, paused until you approve itMETA_ADS_AD_CREATEin the Directory
Read a website that needs your loginBROWSER_USEin the Directory
Add a report row to a Google SheetGOOGLE_SHEETS_APPENDin the Directory
and 1,330 more actions
More on the directory

Dispatch One address that runs any action

One web address runs any action in the Directory.

Dispatch is a single web address. You, your staff, a spreadsheet, an iPhone Shortcut or an AI model send it the name of an action and its inputs. It finds the action in the Directory, checks your permissions, runs it on the right computer, sends back the result, and writes an entry in the Ledger.

Because every request goes through the same address, the same permissions apply whether a request comes from a text message, a link, a spreadsheet cell, a Shortcut, the command line or an AI model, and every request is recorded the same way. One action can be switched off in one place.

Every action is invoked as an HTTP POST of {"key": "<action name>", "args": {…}}. REST, MCP, spreadsheet formulas, text tags and webhooks are different ways of making that same request. Actions run on Cloudflare servers, a Mac, an iPhone, a browser, a virtual machine or a phone.

26ways to send a request to dispatch
REST (curl)REST, named arguments (curl)Link (one URL)MCP over HTTP (JSON-RPC)MCP client (Claude Code)misc CLIconsole-app CLIOne line of textTag ([KEY][/KEY])Apple ShortcutWebhookUpstream (straight to the service)Command line (Mac)This system: REST (/api/run)This system’s MCP server (/mcp)OIP (POST /api/dispatch, the dispatch address)OIP dry run (the call written out, never sent)Link with a token (this tool only, no key)Web GET for a browser model (/web/run)The tool’s own address (/s/TOOL, with a token)Function call (a model’s tool call, as it wrote it)JavaScript (fetch)Python (requests)

However the request is sent, it runs the same action with the same permissions.

{"key":"IMESSAGE_SEND","args":{…}} the same action, whichever way it is sent
More on dispatch

The Ledger A record of every request and response

A table with one row for every request and response the system has handled.

The Ledger is a record of everything the system does: every message sent and received, every action run, every change, every AI model’s answer, and every request that was refused. Nothing in it is overwritten. To find out what happened, you read it.

Each entry stores the full request and the full response. Each entry also stores a fingerprint of the entry before it, so if anyone changes an entry later, the change shows up. Refused requests are recorded the same way as completed ones.

Every payload in or out is a Ledger row. Each action appends one row containing a SHA-256 hash of the previous row; nothing is updated in place. An action counts as working only when the declared surface itself ran and five things are stored for that run: why it ran, the exact request written before it ran, the confirmation, the exact response, and the record.

311,989entries in the Ledger right now

39 AI models in the record · 340 different actions used

109:14 · message received · “Can you come Thursday?”162cf5bba55772a2… ← start
209:14 · reply sent · booked Thu 2:30 · limit: one appointmentdcdf54c19f363b04… ← 162cf5bb…
309:15 · refused · “refund everyone” · no permission for this37e0f2c3037d7daa… ← dcdf54c1…
409:16 · invoice sent in the conversation · limit: up to $500cc5020fa39b08258… ← 37e0f2c3…
Every entry matches its fingerprint.

An illustration: the four entries are made up. The fingerprints are real SHA-256 hashes, calculated in your browser, each from its entry plus the fingerprint of the entry before it.

More on the ledger

Where actions run The computers that do the work

Actions run on real computers and phones.

Depending on the action, the work happens on Cloudflare’s servers (always on), on your Mac, on your iPhone, in a web browser signed in to your accounts, or on Android phones rented in a data centre for apps that only run on a phone.

A website or app with no way to connect to it can be recorded once — the steps a person clicks — and saved as a new action in the Directory that can be run again at any time. The browser uses your own signed-in sessions, not fake accounts.

Executors: Cloudflare Workers and containers, a Mac bridge program, iPhone Shortcuts and App Intents, persistent browser profiles, cloud Android phones and Mac virtual machines. Recording steps and compiling them turns any website into a Directory row callable through dispatch.

146actions that run on these computers
Cloudflare serversrun when your Mac is off
Your Macthrough a small program on it
Your iPhonethrough Apple Shortcuts
A web browsersigned in to your accounts
Android phones in a data centrerented, for apps that only run on a phone
1Record the steps once2They are saved as a new action3It runs through the same address

A website or app that has no API (no way for other programs to connect to it) can be recorded once and then run as an action whenever it is needed.

record → compile → replay: any website or app becomes a Directory row, run through the same dispatch address
More on where actions run

Why it matters

Why one address and one record matter to a business

Most businesses connect each tool separately: the phone system, the calendar, the ad account, each AI model. Here every action goes through one web address, dispatch, and every request and result is written to one record, the Ledger. That changes a few practical things.

Dispatch

One web address runs every action

A program, an AI model, a spreadsheet cell, an iPhone Shortcut or a person sends it the name of an action and its inputs. Dispatch looks the action up in the Directory, checks the permissions, runs it on the right computer, sends back the result and writes a Ledger entry.

  • One connection instead of a separate integration for every tool.
  • Your staff, your AI models, your spreadsheets and your phone all use the same actions, with the same permissions.
  • Switching to another AI model or vendor does not mean rebuilding anything: the actions stay the same.
  • One place to switch an action off, for everyone at once.
  • Every action is recorded the same way, whoever or whatever asked for it.

26 ways to send it a request · 1,335 actions it can run

POST /api/dispatch {"key":"IMESSAGE_SEND","args":{…}} → the result, and its Ledger entry How dispatch works

The Ledger

One permanent record of every request and result

A database table that stores every request the system receives and every response it sends, in order and in full. Each entry includes a fingerprint (a SHA-256 hash) of the entry before it, so an entry changed afterwards can be detected. Refused requests are stored too.

  • See exactly what was sent, to whom, when, and by which AI model.
  • Settle a dispute with the record instead of with memory.
  • Check what an AI model did before trusting it with more.
  • Compare AI models on cost and results, from the record.
  • Nothing is changed silently: an edited entry no longer matches its fingerprint.
  • Refusals are visible: a request outside the permissions is refused, and the refusal gets its own entry.

311,989 entries so far · 39 AI models in the record

How the Ledger works
Use it from your own software: API, command line, MCP, spreadsheets, Shortcuts Each one is a different way to send a request to the same dispatch address, with the same permissions and the same Ledger entry. An API is a web address your own programs call. The command line means typed commands in a terminal. MCP (Model Context Protocol) is the standard way AI apps such as Claude and ChatGPT connect to outside tools. A spreadsheet cell can hold a formula that runs an action, and an Apple Shortcut can run one from an iPhone.

Example

What happens after one missed call

At 2:18 PM someone who saw a heating and air company’s Meta ad calls it. Nobody answers: the owner is working on a roof. One minute later the caller gets a text from the company’s own number, and the job is booked for 4:30. Below is each step the system took, in order.

  1. 2:18 PMMissed call from someone who saw the ad
  2. 2:19 PMA text to the caller from the company’s own number
  3. 4:30 PMJob booked with Tom, the technician

An illustration. The business and the people are made up.

1 / 10Monday 7:30 AMPermissions and limits
A
ABC Home ServicesSponsored · Meta
AC not blowing cold?

Call us. If we are on a job, you get a text back from our own number within a minute.

Heating & airSame-day diagnosticsCall now
Ad set · PausedRunninggoThe owner · Mon 7:30 AM
limit: paused until the owner approves
Tuesday2:18
MobileA new callerringing · the owner is on a roof
Missed callA new caller · from the Meta ad
A text message
A web link
A spreadsheet cell
An iPhone Shortcut
A typed command
An AI’s tool call
A webhook
Dispatchone web address for every action
looks it up:which action is this?

Each action can be run 26 ways. All of them arrive here.

The Directory1,335 actions in it
action · runs on · inputs · returnsways
Send a text from your number26 ways
Book an appointment in open hours26 ways
Create an ad, paused26 ways
Send a Stripe invoice by text26 ways
Ask for a review; under 4 stars goes to you26 ways
Read a website that needs your login26 ways
Text back a missed call, from your number26 ways
Find businesses on the map26 ways
Unlock a smart lock for 20 minutes26 ways
Add the day’s row to the report26 ways

…and 1,325 more actions

Checked before anything is sent

Approved pricesquotes only the owner’s price list
Open hourstoday 4:30 · tomorrow 8–10
Who it may reply tocustomers and new leads
Where it may writeMessages, this number only
Allowed · approved prices only
Would be refused and recorded: a price that is not on the approved list.
AABC Home ServicesiMessage · your number
2:18 PM · missed call from a Meta adHi, thanks for calling ABC Home Services. Sorry we missed you, we're on a job. What do you need?AC stopped blowing cold. How soon can someone come?That's usually a quick diagnostic. I have today 4:30 or tomorrow 8–10. Which suits?4:30 todayBooked. Tom's confirmed for 4:30 and you'll get a text when he's 20 minutes out.Delivered · Read 2:19 PM

Which computer sends it:

A device we run, signed in to your number
Cloudflare servers
Your Mac
Your iPhone
A browser signed in to your accounts
Android phones in a data centre
TODAY4:30 PMAC diagnostic
Tom · ABC Home Services

invite sent · open hours only

The Ledger · this jobfingerprints match
ad started after the owner’s “go”e74967
missed call · came in as a webhook3c8e2b
action chosen · text back a missed call0d258b
permissions checked · prices, hours, who43aa71
text sent from your number · delivered948da1
reply received from the caller10b2ae
booked today 4:30 · invite sent05924f
report row updated · Tuesday3afb21

The real Ledger: 311,989 entries so far.

Report · ABC Home ServicesDaily
D3Booked, Tuesday · from the Ledger
DayMissed callsTexted backBooked
Mon332
Tue221
Wed–––
Thu–––
Fri–––
One row per day, in a spreadsheet the owner owns.Nobody typed a number into it.

Ledger

EventsAI repliesChangesTasks
Booked today 4:30 · AC diagnostic · Tom
Text sent from your number · delivered
Permissions checked · prices, hours, who
Missed call · from the Meta ad
Booked · today 4:30 PMAC diagnostic · Tom · from the missed call at 2:18
Explain it for
  1. 1Monday 7:30 AMPermissions and limits

    The ad starts running after the owner approves it

    On Friday the system made 36 ad images from one written brief and uploaded them to the company’s Meta ad account, paused. No money was spent until the owner texted go on Monday morning. Now the ad is running.

    Permissions and limitsWhat each action is allowed to doFor youFor your teamFor your developer

    You decide what the assistant may read (your calendar, your messages, your price list), what it may do (reply, book, invoice), and whom it may answer. A refund can be limited to $500, for one customer, for ten minutes. Ads are created paused. When someone asks, the assistant says it is an AI assistant.

    Each action carries its limits: an amount, a time window, a channel, an account. A request outside them is refused, and the refusal is written to the Ledger like any other entry.

    A scoped permission is issued for one task, with a limit and an expiry, and stops working when the task is done. With no permission, nothing runs; the refusal is a Ledger row.

    Permissions and limits, explained
  2. Someone calls from the ad, and nobody answers

    A person saw the ad and called the company. The owner was working on a roof and could not pick up. Most callers do not leave a voicemail; they call the next company.

    Where actions runThe computers that do the workFor youFor your teamFor your developer

    Depending on the action, the work happens on Cloudflare’s servers (always on), on your Mac, on your iPhone, in a web browser signed in to your accounts, or on Android phones rented in a data centre for apps that only run on a phone.

    A website or app with no way to connect to it can be recorded once — the steps a person clicks — and saved as a new action in the Directory that can be run again at any time. The browser uses your own signed-in sessions, not fake accounts.

    Executors: Cloudflare Workers and containers, a Mac bridge program, iPhone Shortcuts and App Intents, persistent browser profiles, cloud Android phones and Mac virtual machines. Recording steps and compiling them turns any website into a Directory row callable through dispatch.

    Where actions run, explained
  3. 32:18 PMDispatch

    The missed call is sent to the system’s one web address

    The phone service reports the missed call to dispatch, the single web address that runs every action. Here the report arrived as a webhook (an automatic message one program sends another when something happens); a text or an iPhone Shortcut arrives at the same address. Dispatch then looks up which action handles a missed call.

    DispatchOne address that runs any actionFor youFor your teamFor your developer

    Dispatch is a single web address. You, your staff, a spreadsheet, an iPhone Shortcut or an AI model send it the name of an action and its inputs. It finds the action in the Directory, checks your permissions, runs it on the right computer, sends back the result, and writes an entry in the Ledger.

    Because every request goes through the same address, the same permissions apply whether a request comes from a text message, a link, a spreadsheet cell, a Shortcut, the command line or an AI model, and every request is recorded the same way. One action can be switched off in one place.

    Every action is invoked as an HTTP POST of {"key": "<action name>", "args": {…}}. REST, MCP, spreadsheet formulas, text tags and webhooks are different ways of making that same request. Actions run on Cloudflare servers, a Mac, an iPhone, a browser, a virtual machine or a phone.

    The webhook is one way in. A text, a spreadsheet cell and an AI model’s tool call are others; each becomes the same request:

    { key, args }
    Dispatch, explained
  4. The Directory has an action for a missed call

    Every action the system can run is one row in a table called the Directory. Text back a missed call, from your number is one of those rows. If there were no row for it, nothing would happen.

    The DirectoryEvery action the system can runFor youFor your teamFor your developer

    The Directory is a table. Each row is one thing the system can do for your business: send a text from your number, book a slot in your calendar, create an ad, read a web page, take a screenshot of your Mac. If an action is not in the table, the system cannot do it.

    Each row stores everything needed to run that action: where it runs, what inputs it needs, what it returns, and every way to call it. Changing a setting is typing in a cell. Files added to the system’s folder are added to the table automatically.

    One row per action. Each row has one column per way of calling it, and each of those cells holds the complete request (method, address, headers and body) that runs it, followed by the full response from the last run.

    The Directory right now: 1,335 actions, and each can be run 26 ways. Live

    The Directory, explained
  5. The permissions are checked before anything is sent

    The reply may quote only prices the owner approved, offer only hours the owner marked as open (today 4:30 or tomorrow 8–10), and go only to customers and new leads. This reply is inside all of those limits, so it may be sent.

    Permissions and limitsWhat each action is allowed to doFor youFor your teamFor your developer

    A reply that would quote a price you never approved, book an hour you never opened, or answer someone you never listed is refused, and the refusal is written to the Ledger.

    The limits for this job: read Messages on this number only; approved prices only; book only into open hours. Anything outside them is refused and recorded in the Ledger.

    The action runs with a permission issued for this one task: this number, these hours, this price list. It expires when the task is done. Without a permission nothing runs, and the refusal is recorded like any other Ledger entry.

    Permissions and limits, explained
  6. A text goes to the caller from the company’s own number

    Hi, thanks for calling ABC Home Services. Sorry we missed you, we're on a job. What do you need? It arrives as an iMessage (a blue bubble on iPhones) from the company’s own number, one minute after the missed call.

    Where actions runThe computers that do the workFor youFor your teamFor your developer

    It is sent from a device we run for you, signed in to your number’s iMessage account. It appears in the conversation the caller already has with you. Your own phone is not touched.

    iPhones receive it as iMessage (blue bubbles); other phones receive RCS or SMS. The Ledger entry records which one was used.

    One action, one request. The same request can be sent from a link, a spreadsheet cell or an AI model’s tool call, and it writes the same Ledger entry:

    { "key": "IMSG_SEND",
      "args": ["the caller’s number", "Hi, thanks for calling…", "auto"] }
    Where actions run, explained
  7. 72:21 PMDispatch

    The caller picks 4:30, and the job goes in the calendar

    AC stopped blowing cold. How soon can someone come? The AI assistant offers today at 4:30 or tomorrow 8–10, the hours the owner marked as open. 4:30 today Tom, the technician, is booked, and the customer will get a text when he is 20 minutes away.

    DispatchOne address that runs any actionFor youFor your teamFor your developer

    Booking is another action in the same Directory, run through the same web address. The calendar accepts only hours you marked as open.

    Reading the reply, offering times, writing the calendar entry and sending the confirmation are separate actions. Each one is checked against the permissions and each one is recorded.

    Each is its own { key, args } request through the same dispatch address. The calendar write carries its limit: open hours only.

    Dispatch, explained
  8. 82:21 PMThe Ledger

    Each step was written to the Ledger

    The missed call, the action chosen, the permission check, the text sent, the reply and the booking each got one entry, in order. Each entry includes a fingerprint (a SHA-256 hash) of the entry before it, so an entry changed later can be detected.

    The LedgerA record of every request and responseFor youFor your teamFor your developer

    The Ledger is a record of everything the system does: every message sent and received, every action run, every change, every AI model’s answer, and every request that was refused. Nothing in it is overwritten. To find out what happened, you read it.

    Each entry stores the full request and the full response. Each entry also stores a fingerprint of the entry before it, so if anyone changes an entry later, the change shows up. Refused requests are recorded the same way as completed ones.

    Every payload in or out is a Ledger row. Each action appends one row containing a SHA-256 hash of the previous row; nothing is updated in place. An action counts as working only when the declared surface itself ran and five things are stored for that run: why it ran, the exact request written before it ran, the confirmation, the exact response, and the record.

    The Ledger right now: 311,989 entries, from 39 AI models. Live

    The Ledger, explained
  9. The daily report updates itself

    The report is a spreadsheet the owner owns, with one row per day: missed calls, calls texted back, jobs booked. Today’s booked count just went up by one.

    The DirectoryEvery action the system can runFor youFor your teamFor your developer

    Nobody types into the report. It is a row in a spreadsheet you own, updated from the Ledger.

    Reports are spreadsheet cells, one row per day, not screenshots. The spreadsheet is yours; if you stop using the system, it stays with you.

    Each day’s row is recalculated from that day’s Ledger entries. The spreadsheet is one more way to read the same records; nothing in it is typed by hand.

    The Directory, explained
  10. 102:21 PMThe app

    The owner sees the booking on their iPhone

    In the Console app on the owner’s iPhone: Booked · today 4:30 · AC diagnostic · Tom. Opening it shows every step, from the missed call to the booking. The owner was on the roof the whole time.

    The appThe Console, for iPhone, iPad and MacFor youFor your teamFor your developer

    The Console app runs on iPhone, iPad and Mac. It shows the Directory, the Ledger and your AI agents, and lets you message the agents.

    The Ledger opens in tabs: conversations, sessions, changes, events, tasks, traffic, AI models, actions and analysis. Every entry opens to its full content.

    The app is a view of the same data: the Directory, the Ledger, the connected agents and the terminals. It reads the system; it does not keep a separate copy.

    The app, explained

Browser and cloud computers

What the system does in a web browser and on computers in the cloud

In a browser signed in to your accounts, it runs scripts inside pages, follows steps you recorded, or works toward a goal on its own, and keeps a screenshot of every step. On computers in the cloud, it keeps workspaces with their files, runs commands, runs AI coding agents, switches rented Android phones on and off, and issues permissions that last for one task.

146 actions in the Directory run on these computers

Every device, and what the system does on it

Devices

What the system does on each part of each device

The iPhone page

Part 01 · iPhone

Sensors and radios

GPS, NFC (the chip that reads a tag when you tap the phone on it), camera, microphone, battery, Focus mode, Bluetooth and motion. When one of these changes, for example when you arrive home, the phone can send that event to the system straight away.

What the system does here

  • You arrive home: the front door unlocks, the lights come on, and your mother gets a text that you landed.
  • You tap an NFC tag in the van: the day’s jobs load and the AI assistant switches to work replies.
  • You record a voice note: it becomes a transcript, a task and a reply, without you opening an app.
See an example

Part 02 · iPhone

iOS and Shortcuts

Apple Shortcuts can run actions from the apps on the phone. Anything an installed app offers in Shortcuts, the system can run, when a text arrives or when a condition you set is met.

What the system does here

  • A Shortcut called “Book from text”: a lead texts, the Shortcut finds a free time, books it and replies.
  • Focus mode changes what the AI assistant does: while you drive it answers for you; at work it passes messages to you.
  • Any app action that appears in Shortcuts can become a system action within a day.
See an example

Part 03 · iPhone

Maps and location

Where the phone is when you arrive at or leave a place, plus routes and travel times by address. It is shared only with the people you choose, and only in the situations you set.

What the system does here

  • “Did you land?” gets a true answer, because location sharing is on for that one person.
  • A quote request from a lead arrives with the driving time to their address already worked out.
  • When you leave the last job, the next customer gets “20 minutes away” from your number.
See an example

Part 04 · iPhone

Messages

Your own phone number sends and receives iMessages. The AI assistant reads, searches and replies in the conversations people already have with you, following the permissions you set for each person.

What the system does here

  • Missed call at 2:18, text from your number at 2:19, job booked at 2:21.
  • A friend asks about Thursday; the assistant checks your calendar, answers in your words and books the table.
  • Every price it quotes is one you approved. When a message needs you, it passes the conversation to you straight away.
See an example

Part 05 · iPhone

Safari and websites

Runs a script inside a web page you are already signed in to, and opens any link and returns what it finds. It uses your own signed-in session, not a separate account.

What the system does here

  • Checks a supplier’s stock page every morning and texts you only when it changes.
  • Copies a number from a website that has no API (no way for programs to connect to it) into a spreadsheet cell.
  • Opens a booking, reads it and confirms it, from one message.
See an example

Part 06 · iPhone

Mail · Calendar · Contacts

Searches your mail, books only into hours you marked as open, and matches people to your contacts. It reads Mail, Calendar and Contacts in the apps you already use.

What the system does here

  • You know invoice 118 was opened at 8:41, because the system read the notification email.
  • Move the 3 pm meeting to 4:15 and the other person gets a text about it, in your words.
  • A new lead is matched to a contact you already have, so nothing is typed twice.
See an example

Part 07 · iPhone

AI assistant

An AI model that reads and replies to messages on your number. It can read only the information you switched on, do only what you allowed and reply only to the people you listed. When it cannot help, it says which permission is off.

What the system does here

  • Replies to friends, family, leads and customers on your number, in your words.
  • Works as your assistant in the same conversation: move a meeting, tell someone, send a file, unlock a door.
  • Every action it takes is written to the Ledger, where you can read it.
See an example

Actions by device

Every one of these actions runs through the same web address

146

actions in the Directory for these devices, counted from the Directory and sorted into four groups.

iPhone

  • Shortcuts run from a text
  • Apps launched, restarted, listed
  • Camera, voice notes, location, share sheet in
  • An approval asked on the phone
The iPhone page

Mac

  • Screenshot and read the screen
  • Click and type in any app
  • Run AppleScript, JavaScript for Automation and the shell
  • Calendar, Contacts, Mail, Notes read in place
  • Clipboard, notifications, files, windows
The Mac page

Browser

  • Your logins, one isolated profile per identity
  • Fill, click, screenshot with a driver
  • An agent given a goal, not a script
  • Fetch, scrape, crawl, PDF, from the cloud
The Browser page

Cloud machine

  • Named workspaces that keep their files
  • Any command, in the cloud
  • Jobs started, watched, cancelled
  • Mac virtual machines cloned and run
  • Real Android phones, on and off by call
  • A permission issued for one job
The Cloud computers page

Ads and leads

From a written brief, to an ad, to a booked appointment

The ad images, the ad and the lead, in the order they happen. Each step is an action in the Directory, and each step writes an entry to the Ledger.

The briefRoofers, Phoenix. A missed call is a lost job. Texts come from your own number, as iMessage. Four angles: speed, trust, money, relief.from last month’s conversations · 3 reviews · the price list

1Step 1

The brief

A short written description of the business and what the ad should say, based on last month’s text conversations, the reviews and the price list. It is the only step a person writes.

{"key":"LOCAL_READ", "args":"brief-q4.md"}

2Step 2

The images

Made by AI image models, nine at a time, in four angles and three sizes. A person picks the best one.

{"key":"OPENAI_IMAGE", "args":"the brief, angle 2"}
Paused
Bright RoofingSponsored
Missed a call today? That was a job. From now on the caller gets a text from your number, and the job can be booked by text.
yourbusiness.comLearn more

3Step 3

The ad

Uploaded to the Meta ad account, paused. No money is spent until you approve it.

{"key":"META_ADS_AD_CREATE", "args":{"status":"PAUSED"}}

Bright Roofing LLC

Owner
Site
Licence
Signal
Score

4Step 4

The lead

Details from the ad, the Google Maps listing, the state licence board and the company’s website are combined into one record and scored by fixed rules. No contact lists are bought.

{"key":"LEADS_ENRICH_BATCH", "args":"…"}
iMessage · your number
Hi Dana, saw your crew on the Mesa job. Missed calls after 5 are costing you work; we answer them from your own number in a minute. Worth 15 minutes?
Delivered · Read 2:19 PM

5Step 5

The first message

Written from that record in your words and sent from your own number. Follow-ups go on days 2, 5 and 10, and stop as soon as they reply.

{"key":"LEADS_DRAFT_AI", "args":"…"} {"key":"IMESSAGE_SEND", "args":"…"}
2:30 works
Dana · 41 seconds laterBooked Thu 2:30 · follow-ups stopped

6Step 6

The reply

The reply comes to your number. The AI assistant books the appointment, the follow-ups stop, and the record is updated.

{"key":"GOOGLE_CALENDAR_CREATE", "args":"Thu 2:30|Dana M."}

In the Directory: 15 actions for ad images and video, 51 for ads, 33 for leads.

An illustration. The business and the people are made up.

What this business sells

Everything we sell. Messaging, Ads and leads, Devices and Industries.

Compare them side by side

iMessage line

An iMessage line on the phone number your business already uses, answered by an AI assistant.

Customers text your existing business number and get iMessage replies (blue bubbles on iPhones) from an AI assistant that follows the permissions you set.

Meta ads

Meta ads run for you, with the math from money spent to jobs booked.

What each step of an ad costs and returns — impressions, clicks, leads, booked jobs — and which step the system improves.

TodayWith AI replies
Spend$6,000
Impressions428,571
Clicks5,143
Leads154
Jobs31
Revenue$37,029

WhatsApp Business

A WhatsApp Business account set up for you, and answered by an AI assistant.

Set up the way Meta requires, and used only to reply to people who have already written to you.

Creative

Ad images and videos made by AI from one written brief, sized for every ad placement.

AI makes the images and videos, a person chooses them, and they are uploaded to your ad account switched off until you approve.

0images · from one brief
speedtrustmoneyrelief
9:164:51:1

Leads & outreach

Finding businesses to contact, collecting their details, and writing to them.

Businesses found in four sources are combined into one record each; the first message is drafted from that record; follow-ups stop when they reply.

The adtexted in from the Meta ad, 2:18 PM
Google Placesroofers near Phoenix, 4.5★ and up
Licence boardROC 3318 · active · 2009
Website crawlbrightroofing.example · 3 crew · no after-hours line
DDana · Bright RoofingScored · by rule
texted in from the Meta ad, 2:18 PM
roofers near Phoenix, 4.5★ and up
ROC 3318 · active · 2009
brightroofing.example · 3 crew · no after-hours line

Automation on your devices

The system can operate your iPhone, your Mac, a web browser and computers in the cloud.

Each thing it can do on those devices is an action in the Directory, run through one address, and recorded in the Ledger.

Cloud computersWorkspaces · Command line · Coding agentsBrowserSigned-in profiles · Reading a page · Step-by-step controlMacScreen · macOS · TerminaliPhoneSensors · Shortcuts · Messages

For realtors

Every lead answered in 60 seconds. Every closing becomes a review.

Portal leads answered from your own number in under a minute, and the review asked at closing.

For restaurants

The phone answered during service. The review asked after dessert.

Missed calls become tables. Reviews asked after the meal. Regulars won back.

For home services

Missed calls answered by text, quotes followed up and invoices sent, for home service businesses.

The phone rings while you are on a roof. The caller gets a text from your number within a minute, and it books the job.

Quotes · chased day 2, 5, 10

Permissions

You choose what the AI assistant may read, what it may do, and whom it may reply to

Switch each item on or off below and watch the example replies change. The assistant can read only what you switch on, do only what you allow, and reply only to the people you list. When it cannot help, it says which permission is off.

Permissions

9 of 20 switched on

What it may read2 of 8 on
What it may do3 of 7 on
Who it may reply to4 of 5 on
Messages
MMotheriMessage
Did you land?
Landed on time. Home by 6.

Location is off, so it says nothing about where you are. Calendar is on, so it knows when you are free.

LA leadiMessage
Saw your ad. How much for a site?
I can’t quote from here, but I can get you a number today. Want 15 minutes tomorrow? I have 10:00 or 2:30.

Approved prices is off, so it refuses to invent a number. Calendar and booking are on, so it offers real slots.

CA customeriMessage
Where is my order?
I’ll check with the team and text you back within the hour.

Store orders is off, so it promises a person, not an answer it does not have.

Right now

It may read Calendar, Messages. It may reply, book, missed call text-back. It replies to family, leads, customers, you.

The conversations are illustrations; the people are made up.

Your setup:

It may read Calendar, Messages. It may reply, book, missed call text-back. It replies to family, leads, customers, you.

9 of 20 switched on

Text this setup

Limits

Every action has a limit, and every run is recorded

Each action runs with a permission issued for that one task, such as an amount, a time window or one customer. The permission expires when the task is done, so the system has exactly the access the task needs and no more.

Each action adds one entry to the Ledger, with a fingerprint (a SHA-256 hash) of the entry before it. Nothing is overwritten.

7 entries, not checked yet

Each entry’s fingerprint is calculated from the entry itself plus the fingerprint of the entry before it. Edit one entry, then check again. The requests are illustrations; the fingerprints are real SHA-256 hashes, calculated in your browser.

start aeebad4a
Ledger entry#1

Text back the missed call

  • readMessages, this handle only
  • in your writing style, using only prices you approved

sent from your number

Text sent 52 seconds after the missed call. They replied. Diagnostic booked for 4:30 today.

before aeebad4athis entry 4cdc7072

Ledger entry#2

Send the invoice to Bright Roofing

  • limit≤ $5,000 without you
  • to the thread they already have with you

sent in the thread

Sent by iMessage to Bright Roofing. Opened 41 seconds later.

before 4cdc7072this entry cd3f1bc1

Ledger entry#3

Make 12 ad variants from the brief

  • limit36 renders per run
  • writeMeta, this account
  • limitpaused until you say go

uploaded, paused

36 files in the ad account, 12 ads created paused. No money is spent until you switch them on.

before cd3f1bc1this entry 55086552

Ledger entry#4

Book the 2:30

  • writeCalendar, only hours you opened

invite sent

“2:30 works” becomes a calendar event with the invite sent.

before 55086552this entry b717c014

Ledger entry#5

Refund $184 to the original card

  • limit≤ $500 without you
  • used once

$184 refunded

$184 refunded. Customer told. Under the limit, so it did not wait for you.

before b717c014this entry ef58b2fb

Ledger entry#6

Unlock the door for the cleaner at 10

  • limit20-minute window, weekdays

unlocked, locked at 10:15

Scheduled. Door opens 9:55, locks 10:15, you get a text at both.

before ef58b2fbthis entry 3e2f843c

Ledger entry#7

Refund everyone from last month

  • limit≤ $500 per action, one customer per action

refused · no permission for this

Refused. No permission allows refunding everyone. Nothing ran, and the refusal has its own Ledger entry.

before 3e2f843cthis entry 981c4bdd

Requests outside the permissions are refused and recorded

Without a permission, nothing runs. The refusal gets its own Ledger entry.

  • Refund everyone: refused
  • Text a bought contact list: refused
  • Outside the allowed hours: refused

See every permission and limit

Your business

Pick a type of business to see one week with the system

For the business you pick, you see each moment of an example week: what happens, which offer and which part of the system it uses, and the entry it writes to the Ledger.

LiveEach moment runs an action from the Directory (1,335 actions) and writes an entry to the Ledger (311,989 entries so far).See every type of business in detail

Home services

A week at ABC Home Services with the system

When you miss a call on a job, the caller gets a text from your business number within a minute and can book a visit. Quotes are followed up, invoices are sent by text, and every action is written to the Ledger.

8moments4parts of the system4offers

An illustration. The business and the people are made up.

Permissions and limitsWhere actions runThe DirectoryThe Ledger

Monday

7:30 AM

Your ads start running only after you reply “go”.

On Friday the system made 36 ad images from one written brief and uploaded them to your Meta ad account, paused. Nothing was spent. This morning you texted “go”, and the ads started.

ad set created paused Fri · started Mon 7:30 AM after your “go” text80123b

Tuesday

2:18 PM

A customer calls while you are on a roof, and you miss it.

Within a minute the AI assistant texts the caller from your business number. They say the air conditioning stopped blowing cold and pick 4:30 today, which is added to your calendar.

missed call 2:18 PM · text sent from your number 2:19 PM · visit booked today 4:304270ff
4:10 PM

Your technician is 20 minutes from the next customer.

When Tom leaves the previous job, the system texts the customer “20 minutes out” from your number, in the conversation they already have with you.

text sent from your number · “20 minutes out” · in the existing conversation4c53f5

Wednesday

9:00 AM

A quote you sent on Monday has had no answer.

The system sends a follow-up on day 2 with something useful about the job. More follow-ups are scheduled for day 5 and day 10, and all of them stop as soon as the customer replies.

quote follow-up · day 2 of 2, 5, 10 · stops when the customer replies6a56be

Thursday

11:30 AM

A finished job is invoiced by text.

The system creates a Stripe invoice and sends the payment link in the customer’s existing conversation with you. Your permissions let invoices up to $5,000 go out without asking you first.

Stripe invoice sent in the conversation · under the $5,000 limit, no approval needed5c4d40

Friday

5:00 PM

After the job, the customer is asked for a review.

The customer gets one text asking how it went. A five-star answer gets your Google review link. This customer gave three stars, so the answer came to you instead and nothing was posted.

review asked · 3 stars · sent to you, not posted to Google229520

Saturday

8:00 AM

The week’s advertising results arrive in a spreadsheet.

The system writes one row per day to a spreadsheet you own: impressions, spend, clicks, leads and booked jobs, so you can see what each booked job cost.

report written · one row per day · cost per booked job95985c

Sunday

6:00 PM

A customer asks for a price that is not on your price list.

Someone texts asking what a new furnace costs. The AI assistant may quote only prices you approved, so it tells them you will reply and passes the question to you. The refusal is written to the Ledger.

refused · price not on the approved list · passed to youdb84cc

The Ledger, live

A table with one row for each action the system can run.A table with one row for every request and response the system has handled.

1,335Actions in the DirectoryEvery action the system can run
311,989Entries in the LedgerEvery request and result, counted
Live, read from this site at 1:09:36 PM. Read again every 15 seconds while this page is open.Text meSee what an entry looks like

What a Ledger entry looks like

Every message, every change, every request to an AI model and every refusal gets one entry, in the order it happened. Each entry carries the fingerprint of the entry before it. Tap an entry to open it.

See the Ledger page
An illustration of what entries look like, not real entries. The business and the customer are made up.Fingerprints: real SHA-256 hashes, calculated in your browser

Entry 9 of this illustration

Text back the missed call

When
2:22:26 PM
Kind
Done
Action
Missed call text-back
Input
Text back the missed call
Output
Text sent 52 seconds after the missed call. They replied. Diagnostic booked for 4:30 today.
Limits
read: Messages, this handle only
in your writing style, using only prices you approved
Fingerprint of the entry before
d9586cd3678ff533a8792e22…
This entry’s fingerprint
6370fe960fe42ba900113dd8…
Each entry stores the full request and the full response.

Change one entry and its fingerprint no longer matches

Each entry also stores a fingerprint of the entry before it, so if anyone changes an entry later, the change shows up. Refused requests are recorded the same way as completed ones.

Try it on seven example entries

Check the fingerprints, then change one limit in one entry from ≤ $5,000 to ≤ $50,000 and check again. The check finds the entry you changed.

7 entries, not checked yet

The seven requests are illustrations. The fingerprints are real SHA-256 hashes calculated in your browser: each one is calculated from the fingerprint before it plus its own entry.

start aeebad4a
Entry#1

Text back the missed call

  • readMessages, this handle only
  • in your writing style, using only prices you approved

Text sent 52 seconds after the missed call. They replied. Diagnostic booked for 4:30 today.

sent from your number

before aeebad4athis entry 4cdc7072

Entry#2

Send the invoice to Bright Roofing

  • limit≤ $5,000 without you
  • to the thread they already have with you

Sent by iMessage to Bright Roofing. Opened 41 seconds later.

sent in the thread

before 4cdc7072this entry cd3f1bc1

Entry#3

Make 12 ad variants from the brief

  • limit36 renders per run
  • writeMeta, this account
  • limitpaused until you say go

36 files in the ad account, 12 ads created paused. No money is spent until you switch them on.

uploaded, paused

before cd3f1bc1this entry 55086552

Entry#4

Book the 2:30

  • writeCalendar, only hours you opened

“2:30 works” becomes a calendar event with the invite sent.

invite sent

before 55086552this entry b717c014

Entry#5

Refund $184 to the original card

  • limit≤ $500 without you
  • used once

$184 refunded. Customer told. Under the limit, so it did not wait for you.

$184 refunded

before b717c014this entry ef58b2fb

Entry#6

Unlock the door for the cleaner at 10

  • limit20-minute window, weekdays

Scheduled. Door opens 9:55, locks 10:15, you get a text at both.

unlocked, locked at 10:15

before ef58b2fbthis entry 3e2f843c

Entry#7

Refund everyone from last month

  • limit≤ $500 per action, one customer per action

Refused. No permission allows refunding everyone. Nothing ran, and the refusal has its own Ledger entry.

refused · no permission for this

before 3e2f843cthis entry 981c4bdd

Your visit

What this website received from your browser just now

Your browser sends this information with every request. Nothing was looked up elsewhere and nothing was bought. This site stores one record per visitor, listing every page they opened.

Readinglive

…
GET /api/traffic/self → the request’s own signals, read on Cloudflare’s servers; no lookup, no third party

Try it

Text this number and the AI assistant replies

Send a text to the number below from your own phone. It arrives at the same web address as every other request. The AI assistant replies, and your message and the reply are each written to the Ledger as one entry with an ID.

Every message to this number, from any messaging app, arrives at the same place and follows the same permissions. The reply is recorded the same way, so the conversation and the Ledger always match.

Inbound messages arrive at one webhook (an automatic message from the messaging service), are matched to a conversation, answered, and appended to the Ledger as events with IDs; the reply gets its own entry. Same dispatch address, same permissions as every other action.

ms+1 (424) 504-0908iMessage · miscsubjects
Hi. I saw miscsubjects.com and I want to talk about my business.
Delivered
Hi. What does your business do, and which part of the week would you hand over first?
Written to the Ledger: two entries, each with an ID

An illustration of the conversation. A text you send writes a real Ledger entry.

Features

Twelve things the system does, each shown as a small animation

Each tile is drawn in your browser. Tap one to read what it does and what it is allowed to use.

Tiles are illustrations. The businesses and people in them are made up.

Research library

Research articles where every claim links to its source, or says it has none

Every earlier version of an article is kept. Anyone can dispute a claim on the page where it appears. AI models can read the same articles as structured data.

1,211articles
7,282claims
4,803sources

Text me about your business

Tell me which part of your week you would hand over first. I will tell you what the system would do with it by Friday.