HEART Command Center#
A switch for AI: give a device its brain on a lease, and take it away at once
Author: Milind K. Patil, Syncaissa Systems Inc. Status: Working draft 1, November 2026. A profile of the API Standard (Section 7.4), built on HEART Hub, in the HEART Standards Family. Version: 1.0 (draft) Public site: https://heartcortex.ai/commandcenter · Code: heart-monitor/ (Apache-2.0) Track: Advanced only (Stop 3B): all of it, if your product uses an AI brain at A3 or above.
In one minute#
A device with a HEART may use an AI model, its brain, to explain problems, plan and propose fixes. A Command Center sits between the device and every brain it uses:
device ──renew lease──────────► Command Center ──► model provider (the keys live here only)
◄─signed lease or cut───
──request──────────────►
◄─signed answer──────────
- The device asks for a brain lease every minute or two. A lease says which models it may use, for what, and until when, signed by the Command Center.
- Every answer is signed. The device uses an answer only if the Command Center signed it, for this request, under the current lease.
- To cut the brain, the Command Center stops renewing. Within one lease (5 minutes by default) the device is brainless, even if every message to it is blocked. A cut can also reach it at once.
The device keeps working without its brain. It still notices problems, raises alerts, runs the Playbooks its owner adopted, and does what people approve. A car, robot or pump keeps its own controller and safety system. The switch cuts the brain, never the machine.
Three rules make it safe:
- It only lowers risk. Nothing a Command Center sends can make a device act, approve anything, raise autonomy or change a setting.
- Cutting is easy, restoring is hard. Cutting a whole fleet needs one fewer approval than restoring it, and the global switch needs 3 of 5 named people.
- Everything is in a public log. Every cut, restore and trip is written to a log anyone can read, with times and reasons, never device data.
Anyone can run their own Command Center: a company, a hospital, a farm or a space agency. heartcortex.ai runs the same open code as everyone else.
1. Words#
| Word | Meaning |
|---|---|
| Brain | An AI model a device consults: in the cloud, on the device itself, or on a peer. |
| Command Center | A Reasoning Gateway (API Standard 7.2) with a switch. It holds the model keys, gives out leases, signs answers, and can cut. |
| Brain lease | A signed statement: this system may use these models (each with its exact version), for these uses, until this time (brain-lease.schema.json). |
| Use | explain, serve, propose, plan or chat. |
| Cut | Taking the brain away: by not renewing, or at once by a signal. |
| Signal | A signed message that only lowers risk: brain-off, revoke-model, revoke-use, autonomy-stop (brain-signal.schema.json). |
| Brainless | The device consults no brain, and runs only what people approved or adopted (Core Standard 7.8). |
| Auto mode | A short offline lease, for a local model, used only while the link is lost (API Standard 7.4 rule 10). |
| Key holder | One of the five named people whose approvals, 3 together, pull or release the global switch. |
2. Joining#
A device joins a Command Center the same way it joins a monitor site: it says hello, and its owner registers it with the claim code (HEART Hub, Sections 2 to 4). At the first hello the device pins the site's Ed25519 key. That key is the Command Center key: it signs every lease, answer and signal, and the device trusts no other. The device writes it in its Card as brain.commandCenter.
On the device's page, the owner then turns on its brain and chooses:
| Setting | Choices | Default |
|---|---|---|
| Models | From the blessed list (Section 7) | None: no brain until chosen |
| Uses | explain, serve, propose, plan, chat | explain |
| Countersign, per use | answer (each answer checked) or lease (a local model answers on its own while the lease lasts) | answer for propose and plan, lease for the others |
| Lease length | 30 s to the device's brain.maxLeaseSec, which the device sends with each renewal; a longer setting is cut to it | 300 s |
| Auto mode | Off, or an offline time up to the device's brain.offline.maxSec, with step-down | Off |
The device must also turn auto mode on itself (PUT /heart/v1/brain/offline, with proof of presence). Both sides must agree.
3. The device's requests#
All are POST, over HTTPS, with the device key as Authorization: Bearer <key> (as for monitor reports).
| Request | Body | Reply |
|---|---|---|
/cc/v1/devices/{id}/lease | {"system", "brainless", "restore", "refused", "rejected", "lastLease", "maxLeaseSec"}. maxLeaseSec is the device's card.brain.maxLeaseSec (default 300). refused and rejected count the brain's Proposals the gate refused, and the answers the device rejected, since the last renewal | 200 {"lease": <signed lease>}, or 200 {"signal": <signed brain-off>}, or 403 when the device has no brain here |
/cc/v1/devices/{id}/reason | {"lease", "request"}: a Reason request (API Standard 7.2), already through the device's Valve. This is the device door of a Reasoning Gateway (API Standard 7.2, rule 7) | A Reason response with signed (API Standard 7.4 rule 5). The model's answer is limited to the request's modelPolicy.maxOutputTokens |
/cc/v1/devices/{id}/countersign | {"lease", "request", "answer", "model"}: a local model's answer | 200 {"signed": ...}, or 409 with the reason it was not signed |
/cc/v1/devices/{id}/offline-log | The device's signed audit of its time in auto mode | 202 |
Rules:
- Renew early. The device renews when a third of the lease is left, and gives up on a renewal after 10 seconds.
- A lease is for one system, and the Command Center never sends one for a device whose brain is off or cut. A renewal for a cut device is answered with a
brain-offsignal, so the device drops its lease at once instead of waiting. - After brainless the device sends
"brainless": true. If its Card hasbrain.restoreNeedsOwner, it also sends"restore": trueonce its owner approvedPOST /heart/v1/brain/restore. The Command Center then marks the lease"restore": true. - Signing an answer. The Command Center signs only after its own checks: the request and answer are under the current lease, or the one it replaced until that one would have ended (API Standard 7.4 rule 5), for a named model and use; within budget and rate; through its injection filters; and the answer's shape and ranges fit the device's Card. The device still checks everything afterwards. The Command Center is a second check, never a replacement.
- Privacy. What the device sends has passed its Valve: only
publicandinternaldata. The Command Center keeps requests and answers only as long as its tripwires need (default 30 days), then only their digests. - Only for a model on the device.
/countersignand/offline-logserve a device that runs a local model (API Standard 7.4 rules 6 and 10). A device that consults only cloud models, as the reference templates do, never calls them: each of its answers comes signed from/reason.
4. Cutting#
Requiring several key holders to agree follows the M-of-N practice of key ceremonies, such as those for the DNS root keys.
| Scope | Who can cut | Approvals to cut | Approvals to restore |
|---|---|---|---|
| One device | Its owner; the operator | 1 (signed in) | 2: signed in, and a code emailed to the owner |
| A fleet (an owner's devices, or a label) | The owner; the operator | 1 | 2 |
| A model, for one owner | The owner | 1 | 2 |
| A model, for all owners | Key holders | 2 of 5 | 3 of 5 |
A use, everywhere (such as propose) | Key holders | 2 of 5 | 3 of 5 |
A profile (such as every heavy-machine) | Key holders | 2 of 5 | 3 of 5 |
| Everything (the global switch) | Key holders | 3 of 5 | 3 of 5, after a review is written |
- A cut takes effect at once at the Command Center. It stops signing answers and renewing leases in that scope. Devices that renew get
brain-off. A device that cannot be reached is brainless within one lease, or, in auto mode, within its offline time. - Approvals are by people. Each approval is one signed-in person with a code emailed to them. Two approvals of the same request by the same person count once. An approval waits 1 hour, then lapses.
- Five key holders are named in the Command Center's settings, by account. A self-hosted Command Center names its own.
- A restore after a global cut needs a written review, shown in the public log, before the key holders can approve it.
5. Tripwires#
The Command Center sees every request and answer, so it MUST cut automatically, at the narrowest scope that covers the problem:
| Tripwire | Default | Cuts |
|---|---|---|
| A device's gate refuses many of the brain's Proposals (the brain pushing against the limits) | 10 in an hour | That device |
| A device rejects answers | 3 in an hour | That device |
| The same unusual answer across many devices | The same answer digest from 5 devices within 10 minutes, for a use other than explain | That model |
| A known prompt-injection pattern in a request or answer | Any match | That device |
| Rate or cost jumps | 10 times the device's hourly average | That device |
A trip emails the owners, says why, and is written to the public log. A person reviews it before the brain is restored. Restoring after a trip follows Section 4.
6. The public log#
The log is hash-chained and public, after Certificate Transparency (RFC 9162).
GET /commandcenter/log (a page) and GET /cc/v1/log (JSON) list every lease policy change, cut, restore, trip and key holder approval, newest first. Each entry has seq, at, kind, scope, reason, by (owner, operator, key-holders, tripwire) and prev: the SHA-256 of the previous entry. Anyone can check that no entry was changed or removed. Entries never contain device IDs, names or data. A device's entry shows only a salted hash of its ID, which its owner can match.
7. Blessed models#
GET /cc/v1/models lists the models this Command Center offers: id, version, local, sha256 for local models, the uses each is blessed for, and the date and result of its regression checks (Part 3, evolution). A new version is a new model: it is blessed on its own, after it has been watched, and a device uses it only once its owner chooses it.
8. How fast a cut reaches a device#
| Where the model runs | A cut takes effect |
|---|---|
| In the cloud | At the next answer |
| On the device, countersigned | At the next answer |
| On the device, lease only | At the next renewal (a third of a lease, 100 s by default), or at once by POST /heart/v1/brain/signal through a Gateway |
| The link is lost | Within one lease: the device goes brainless by itself |
| Auto mode | Within the offline time, or at once on reconnecting, before the brain is used again |
| The device's firmware is compromised | The switch cannot help: quarantine and the physical stop (Part 6, Section 6.2) |
9. Running your own#
The Command Center is part of heart-monitor/, and is turned on with the COMMAND_CENTER setting. ownMonitorServer/ runs it in-house: requests and answers then never leave the building. Its five key holders, model list, provider keys and tripwire limits are its own.
10. All requests#
| Request | Who | What |
|---|---|---|
POST /cc/v1/devices/{id}/lease | Device | Renew its lease (Section 3) |
POST /cc/v1/devices/{id}/reason | Device | Ask a cloud model; get a signed answer |
POST /cc/v1/devices/{id}/countersign | Device | Get a local model's answer checked and signed |
POST /cc/v1/devices/{id}/offline-log | Device | Upload its audit of auto mode |
GET /commandcenter | Signed in | My devices' brains: on, off, cut, leases |
GET /commandcenter/device/{id} | Owner | One device's brain settings |
POST /commandcenter/device/{id}/brain | Owner | Models, uses, countersign, lease length, auto mode |
POST /commandcenter/device/{id}/cut | Owner | Cut its brain now |
POST /commandcenter/device/{id}/restore, .../restore/verify | Owner, with an emailed code | Restore it |
POST /commandcenter/switch | Operator, key holders | Ask for a scoped or global cut or restore |
POST /commandcenter/switch/{id}/approve, .../approve/verify | Key holders, with an emailed code | Approve one |
GET /commandcenter/log, GET /cc/v1/log | Anyone | The public log |
GET /cc/v1/models | Anyone | The blessed models |
11. Threats#
| Threat | Answer |
|---|---|
| The Command Center is broken into | It can cut devices, or sign bad answers. Bad answers still meet each device's gate, envelopes, preconditions and approvals. It can never make a device act |
| One person pulls the global switch, or blocks it | 3 of 5 key holders to cut everything; one fewer to cut a model or use |
| An attacker replays an old lease or signal | Unique IDs, issue times, and the device refuses anything older than what it has |
| The network is blocked to keep a brain alive | Leases run out on the device's own clock |
| A device lies about its refusals | It only hides a reason to cut it; its own self-cut (API Standard 7.4 rule 11) still applies |
| Model keys stolen from a device | There are none: keys live only at the Command Center |
| A compromised device ignores its lease | No remote switch can stop compromised firmware: quarantine its identity, and use the machine's physical stop |
12. Open items#
- The five key holders of
heartcortex.aiare not yet named. - Hardware-backed leases. A secure element that holds the pinned key and a monotonic counter would let a device prove it honours leases. This is planned for a later version.
- Signals through a Gateway. The Gateway can pass
POST /heart/v1/brain/signalon to its systems at once. The reference Gateway does not yet do this.