ZEUS Capability & Access Map
What the estate can actually do: which keys open which doors, what runs on its own, and where the walls still stand.
The estate at a glance
One account, one control plane. Counts pulled live from the Cloudflare API, the cron registry and the skills store.
Credentials & tokens
Five keys in ~/.hermes/.env, each scoped deliberately. Values themselves are never read into chat; the table shows scope and one worked example per key.
| Credential | Scope | What it unlocks | One-line example |
|---|---|---|---|
| CLOUDFLARE_ADMIN_TOKEN cfat_, verified active | Account-scoped admin | Full CF estate control: Pages create/edit/delete, Access/ZT gate management, KV namespaces, gateway logs, Workers AI inference, the 324-model catalog | "build me a fact-check page" → create/merge the subpath, ZT-gate it under policy 61b7fbdd with 3h sessions, hand back the live URL — exactly how fcheck26 exists today |
| CLOUDFLARE_API_TOKEN cfut_, verified active | Inference only | AI inference routed through AI Gateway on an OpenAI-compatible endpoint. No admin rights, so it is the safer key to hand to model calls | "summarise this week's MAS paper" → pull the PDF, run it through llama-3.3-70b via the gateway, deliver as a voice bubble or a wiki page |
| TELEGRAM_BOT_TOKEN verified, wired | Messaging | Send/receive messages, files and voice notes; home chat 944548986 | the daily 6am audio brief lands as a native voice bubble, sent by cron 5453bf521b9d |
| OLLAMA_API_KEY active provider | Primary LLM brain | GLM-5.3-flash via ollama-cloud — the model currently running this session | every reasoning task in chat, from planning to code review |
| FAL_KEY present | Image generation | Text-to-image for illustrations and lockups | generate an illustration for the Liu family genealogy timeline and merge it into zupu26 |
Keyless services still on tap:
Browser drive (full CDP control), web search/extract, local speech-to-text via faster-whisper, text-to-speech voice bubbles, vision analysis, persistent memory and skills, osascript + say (mac automation), ffmpeg, sqlite3. No token needed for any of them.
Cloudflare estate control
Five surfaces, one admin token. Each is exercised daily or weekly in production, not in a sandbox.
Pages — 95 projects
Full lifecycle through merge-safe deploy-direct.py: hash-preserving, hub-aware, subpath auto-nesting, and each report gets an auto-card on the landing page.
"SGS & TIC industry deep-dive" → published as llm26.pages.dev/261003_sgs-tic-deep-dive/ behind the standard lock, live in about 60 seconds.
Zero Trust — 186 Access apps
Apex + wildcard pairs, std policy 61b7fbdd (whitelist + SG), 3h sessions fleet-wide, launcher hidden. Exemptions are honoured where requested: growth7d, huawen26, roundtable26, dsk26.
the daily 13:20 audit cron normalised 163 drifted gates on 02 Oct.
KV — 10 namespaces
Backing the Cockpit dashboard (cckp26) and GBrain edit sync today; ready for more small-state workloads.
read CCKP26_KV to answer "what's in the Cockpit registry" on the spot.
Workers AI & AI Gateway — 324 models
Inference verified live (llama-3.3-70b returned a clean response), full model catalog enumerable, caching and rate-limiting visible in the standard cf-aig-* response headers.
Group routing — the one-project rule
M~ rule of 14 Sep 2026: one Pages project per Telegram group, every HTML a subpath <project>.pages.dev/<slug>/, cryptic <topic>26 names, dated YYMMDD_topic slugs, the internal and shared default PINs. The map lives at ~/.hermes/group-url-map.md and is audited daily.
Automation
49 cron jobs registered, 27 enabled. The ones running right now:
| Schedule | Job | What it does |
|---|---|---|
| Daily 06:00 | Audio brief | Native voice-bubble briefing to the home chat |
| Daily 06:30 | Family Growth 7D | Weekly-growth digest series |
| Daily 13:20 | CF Pages audit | Normalises drifted Access gates fleet-wide |
| Daily noon | KNQX source watch | Watches LinkedIn source feeds for post material |
| Sun 18:00 | KNQX post batch | drafts the week's LinkedIn posts, stages an approval page, and publishes only after approval |
| Fri | ADHD digest | Weekly digest edition |
| Sun 03:00 | Full backup | Complete estate snapshot |
| Mon 01:00 | Wiki curator | Nightly pass over the LLM wiki |
| Mon 08:00 | MAS watch | Monitors new MAS publications |
example: the Sunday KNQX batch drafts the whole week's posts, then waits — nothing publishes until the approval page is signed off.
Skills — 65 loaded
The skill library is the procedure memory. Categories currently loaded:
| Category | Covers |
|---|---|
| Cloudflare | Pages deploy, ZT access audit, gateway ops, backup/restore |
| HTML production | webchef HTML factory, design systems (54 real-world), humanizer |
| Research | arXiv, RSS feeds, grounded citations, competitor news monitoring |
| Documents | docx, xlsx, pptx, pdf, Airtable, Box, Notion |
| Comms & workspace | email (himalaya), Google Workspace, Apple Notes/Reminders, Obsidian, X/Twitter (xurl) |
| Media | YouTube transcripts, GIF search, song analysis |
| Utilities | geocoding/routing, price monitoring, maps |
| Engineering | TDD, code review, debugging, codebase inspection, subagent orchestration |
| Hermes itself | theming, plugins, MCP wiring |
example: price-monitor watches an air-con listing and pings the home chat the moment it drops below target.
Browser control
A real Chromium instance driven over CDP: navigate, click, fill, screenshot, full access-tree reads, JS execution, multi-tab. Credential entry is vault-protected — the browser tooling never sees the secrets it types.
example: pull CPF Board's rate-change tables even behind bot walls, via stealth modes and the blocked-page recovery path.
Persistent state
Three layers of memory carry over between sessions:
Memory holds durable facts, kept deliberately budget-tight. The LLM wiki at ~/wiki (Karpathy-style interlinked markdown) has 26 archived pages and a nightly curator cron. Session history is FTS5-searchable, so any past conversation can be recalled by keyword.
example: weeks later it still remembers the quit-gate at S$7k/mo and that li26 is the LinkedIn project.
Hard limits & gaps
An honest audit means listing what is broken, not just what works.
| Limit | Status | Detail |
|---|---|---|
| Global API key absent | FIXED 10 Oct 2026 | deploy-direct.py patched to a Bearer-token fallback (CLOUDFLARE_ADMIN_TOKEN); self-serve deploys work through the canonical script, verified with a live deploy this session |
| No AI Gateway analytics scope | OPEN | Can route and infer, but cannot pull unified usage or cost roll-ups |
| No Google OAuth token | OPEN | gmail/calendar/Drive skills are installed but cannot authenticate; needs re-connect |
| iMessage/remindctl/memo not on PATH | OPEN | Skills exist, the CLI binaries are missing |
| Vault empty | PARTIAL | No saved logins or cards yet for browser credential fill |
| Memory at 97% of budget | PARTIAL | Consolidation pass needed before adding more durable facts |
| AI Gateway has zero gateways | PARTIAL | Token infra is ready; no gateway instances created yet |
Where the numbers come from
First-party verification. No scraped benchmarks, no vendor marketing figures.
Every other figure is a first-party read: Cloudflare Pages, Access, KV and Workers AI API endpoints, the Hermes cron registry, the skills store and local config, all pulled 10 Oct 2026. Internal APIs — no external links needed.