SIGNAL GRID ACADEMY
All courses

Bots & agents · Intermediate

Build a Control Centre for Your Bots

One dashboard to see every bot's status, read drafts and approve actions from your phone.

4 lessons 58 min Certificate
Steps for
Join free to track progress

Lesson 1 · 12 min · Windows

One status file for every bot

A Control Centre is simple once every bot reports in the same format. Each bot writes status/<bot-name>.json after it runs:

json
{
  "bot": "content-drafter",
  "last_run": "2026-11-06T18:00:12+08:00",
  "result": "ok",
  "summary": "3 drafts saved",
  "needs_approval": [
    { "id": "d-2026-11-06-1", "title": "Post: 5 AI tools for teachers", "file": "drafts/2026-11-06.md" }
  ],
  "cost_usd": 0.004
}

result is always one of ok, warning or error. That's what makes a dashboard possible.

Add it to your bot (Python)

python
import json, datetime, pathlib
pathlib.Path("status").mkdir(exist_ok=True)
pathlib.Path("status/content-drafter.json").write_text(json.dumps({
  "bot": "content-drafter",
  "last_run": datetime.datetime.now().astimezone().isoformat(),
  "result": "ok", "summary": "3 drafts saved", "needs_approval": [], "cost_usd": 0.0
}, indent=2), encoding="utf-8")

Where status files live

Windows steps

Use %USERPROFILE%\bots\status. Check it in PowerShell: Get-Content $HOME\bots\status\*.json

Quick quiz

Pass 2 of 3
1. Why must every bot use the same status format?
2. Which values can 'result' have?
3. What goes in needs_approval?
Join free to take the quiz

Quick assignment

To do

Make one of your bots (or a test script) write a status file in this format. Paste the JSON.

Hint: Remove anything private.

Join free to submit

Stuck or proud of what you built? Discuss this course in the forum.