Request flow
Thomas turns a request into a plan, checks whether it needs approval, then runs it through the local runtime.
Engineering Deep Dive
Loading deep-dive sections and command-matrix data.
Product guide
A practical look at how Thomas turns requests into plans, approvals, commands, plugins, and results.
Request flow
Thomas turns a request into a plan, checks whether it needs approval, then runs it through the local runtime.
Command map
32 ready / 21 still forming - 53 command families indexed
Snapshot: 3/1/2026
What's visible
user request -> approval check -> plan generation -> tool run -> result check -> activity log -> responseCode reference: GitHub
32 ready / 21 still forming
Commands listed: 400
Last checked: 3/1/2026
Showing 53 of 53 families.
/acp
Ready/agent
Still forming/agents
Ready/approvals
Ready/browser
Ready/channels
Ready/chat
Still forming/clawbot
Ready/codex
Ready/companion
Ready/completion
Still forming/config
Ready/configure
Still forming/cron
Ready/daemon
Ready/dashboard
Still forming/devices
Ready/directory
Ready/dns
Ready/docs
Still forming/doctor
Still forming/doppelganger
Ready/gateway
Ready/health
Still forming/hooks
Ready/library
Ready/live-browser-smoke
Still forming/logs
Still forming/memory
Ready/message
Ready/models
Ready/node
Ready/nodes
Ready/onboard
Still forming/pairing
Ready/plugins
Ready/qr
Still forming/repl
Still forming/reset
Still forming/sandbox
Ready/security
Ready/serve
Still forming/sessions
Still forming/setup
Still forming/skills
Ready/status
Still forming/system
Ready/telegram
Ready/tools
Still forming/tui
Still forming/uninstall
Still forming/update
Ready/webhooks
Ready{
"requestId": "rq-2026-03-02-001",
"timestamp": "2026-03-02T01:09:04Z",
"route": "/v1/chat/completions",
"policy": "approved",
"commandFamily": "/status",
"result": "ok",
"elapsedMs": 214,
"hooks": [
"before-model",
"before-tool",
"after-tool",
"after-response"
],
"trace": [
"/api-gateway",
"/planner",
"/hooks",
"/tool",
"/validation",
"/activity-log"
],
"logFile": "/var/log/thomas/activity.jsonl"
}{
"userPrompt": "List repository status",
"plan": {
"family": "status",
"command": "status",
"policyGate": "ok",
"approvalState": "required"
},
"execution": {
"output": {
"totalSteps": 6,
"exitCode": 0
},
"checks": {
"schemaValidation": true,
"policyGate": true,
"commandRules": true
}
},
"record": {
"activityId": "rq-2026-03-02-001",
"logPath": "/var/log/thomas/activity.jsonl"
}
}user request -> approval check -> plan generation -> tool run -> result check -> activity log -> responsethomas prompt "status"
thomas ask "List repository status"
thomas --help --jsoncurl -X POST https://127.0.0.1:8787/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <local-token>" \
-d '{\n "model": "local-gpt",\n "messages": [{"role": "user", "content": "List repository status"}],\n "stream": false\n}'event: response.started
data: {"id":"evt-01","type":"response.started","request_id":"rq-2026-03-02-001"}
event: tool.delta
data: {"id":"evt-01","type":"tool.delta","tool":"status","payload":{"phase":"running"}}
event: response.final
data: {"id":"evt-01","type":"response.final","status":"ok","request_id":"rq-2026-03-02-001"}{
"id": "cmp-102",
"status": "ok",
"model": "local-gpt",
"request_id": "rq-2026-03-02-001",
"usage": {
"prompt_tokens": 14,
"completion_tokens": 32
}
}thomas prompt "status"
thomas ask "List repository status"
thomas --help --jsonclient
|-- parser + policy gate
|-- command planner
|-- execution runtime
\-- activity log
|-- before-model hooks
|-- before-tool hooks
|-- tool.exec hooks
|-- after-tool hooks
\-- after-response hooksInstall the package
Validate the manifest and checksum
Enable it in Thomas
Run it through the protected path
Disable it when you are done
Remove the package
{
"name": "thomas-plugin-guard",
"version": "0.1.0",
"entry": "dist/index.js",
"permissions": ["filesystem", "network:thomas-control"],
"hooks": [
"before-model",
"before-tool",
"after-tool",
"after-response"
]
}thomas plugin install ./dist/thomas-plugin-guard.zip
thomas plugin validate thomas-plugin-guard
thomas plugin activate thomas-plugin-guard
thomas plugin run thomas-plugin-guard --diagnostic
thomas plugin deactivate thomas-plugin-guard
thomas plugin uninstall thomas-plugin-guardCommand map
Command families are indexed so the public surface can show what exists and what is still forming.
API and CLI alignment
HTTP requests and CLI calls use the same approval and validation path.
Plugin install flow
Next up: a clearer install, validate, activate, and remove path for marketplace plugins.