HEART Embedded Systems logoHEART

Docker with a HEART on heartcortex.ai: screenshots#

These are real screenshots taken on 12 November 2026, for illustration only: the site may change. Docker with a HEART built in (dockerd-heart, way A) ran on the author's own server with demo_server.sh and reported to https://heartcortex.ai every 30 seconds. The container web was limited to 0.5 CPU and 128 MB, and labelled so that the HEART shares its figures under the alias web and offers its CPU and memory limits as settings (0.5 to 4 CPUs, 64 to 1024 MB).

#ScreenshotWhat it shows
101-register-device.pngThe owner registers the device with the device ID and the claim code that Docker's HEART printed once in the daemon's log. (The claim code is hidden here.)
202-device-page.pngThe device's private page: Healthy, last heard 17 seconds ago, reporting every 30 seconds
303-figures.pngThe figures the device chose to share: containers, images, disk, and web's CPU and memory limits and use. web uses all of its 0.5 CPU.
404-problems-history-settings-on.pngNo open problems, and the owner turns on changing settings from the site
505-settings.pngThe settings the device offers, within the ranges it set itself. Each change needs a code sent by email.
606-ask-ai-approvals-sharing.pngAsk AI before a model is connected, approvals (off), and sharing (private)
707-ai-models-connect.pngThe owner connects Anthropic Claude (claude-opus-5-5) with their own API key
808-ai-models-connected.pngConnected. The key is encrypted on the site and shown again only by its last four characters.
909-ask-ai-system-prompt.pngAsk AI, with the system prompt that tells the model about the device's API. The owner may change it.
1010-ask-ai-question.pngThe question: "Does the docker needs additional CPUs?"
1111-ask-ai-answer.pngClaude's answer. It read the status, figures, settings, alerts and 7 minutes of figure history with six read-only tools, and recommended raising web from 0.5 to 1 CPU. The model cannot make the change itself.
1212-settings-change.pngThe owner makes the change in Settings
1313-answer-after-change.pngThe answer kept on the page after the change request

The screenshots#

1. Registering the device#

The owner registers the device with the device ID and the claim code that Docker's HEART printed once in the daemon's log. (The claim code is hidden here.)

Registering the device

2. The device page#

The device's private page: Healthy, last heard 17 seconds ago, reporting every 30 seconds

The device page

3. The figures it shares#

The figures the device chose to share: containers, images, disk, and web's CPU and memory limits and use. web uses all of its 0.5 CPU.

The figures it shares

4. Problems, history, and turning on settings#

No open problems, and the owner turns on changing settings from the site

Problems, history, and turning on settings

5. The settings it offers#

The settings the device offers, within the ranges it set itself. Each change needs a code sent by email.

The settings it offers

6. Ask AI, approvals and sharing#

Ask AI before a model is connected, approvals (off), and sharing (private)

Ask AI, approvals and sharing

7. Connecting a model#

The owner connects Anthropic Claude (claude-opus-5-5) with their own API key

Connecting a model

8. A connected model#

Connected. The key is encrypted on the site and shown again only by its last four characters.

A connected model

9. Ask AI and its system prompt#

Ask AI, with the system prompt that tells the model about the device's API. The owner may change it.

Ask AI and its system prompt

10. The question#

The question: "Does the docker needs additional CPUs?"

The question

11. Claude's answer#

Claude's answer. It read the status, figures, settings, alerts and 7 minutes of figure history with six read-only tools, and recommended raising web from 0.5 to 1 CPU. The model cannot make the change itself.

Claude's answer

12. Making the change#

The owner makes the change in Settings

Making the change

13. The answer after the change request#

The answer kept on the page after the change request

The answer after the change request

What happened next#

What happened next, from the logs: the owner asked for web.cpus = 1 and confirmed it with the emailed code at 22:53:46 UTC. The site signed the request. The HEART in Docker checked the signature, the device ID, the age and the range, then asked Docker for the change. Docker applied it at 22:54:09 UTC, 23 seconds after the owner confirmed, without restarting the container. docker inspect then showed NanoCpus = 1000000000.

Notes:

  • At the time of these screenshots, the site showed the model's Markdown (such as **bold**) as plain text. Since the same day, it shows headings, lists, bold, italics and code as formatted text.
  • The same steps run automatically, against the site's code with a fake Claude API, in ../test_monitor_e2e.py.