What we build, from first principles
We sell an AI department: a team of agents, a dashboard and a company brain, trained on one client and wired to their tools. Underneath, that is one open-source agent runtime (Hermes Agent, Nous Research) wrapped per client, plus a web control-center (Hermes Workspace / rawclaw v3), deployed as one isolated instance on one box per client.
The whole thing, in four numbers
Four layers — but only two are our IP
The job splits cleanly. Commodity below, differentiated IP above, automation in the seam.
Client knowledge & agent design
The agents, memory, prompts and skills trained on THIS client. Produced by install-architect.
Cockpit / UI
Pedro's Hermes Workspace (rawclaw v3) + the Rawgrowth portal. The front door for client and ops.
Agent runtime — the brain
Hermes Agent (Nous Research). Self-improving, omnichannel. Never fork it — track upstream.
Infrastructure
A VPS or Mac Mini running Docker. Where it lives. Automate it, don't invest in it.
The strategic point:L1–L2 are commodities — automate them, don't build them. L3–L4 are where Rawgrowth wins. Pedro's time belongs in the cockpit and the provisioning glue; the install-architect work owns the client brain.
The two building blocks
Hermes Agent is the brain. Hermes Workspace is the cockpit. They talk over two local HTTP ports — that split is the core of the architecture.
Hermes Agent
- Self-improving loop — writes its own skills + curates memory (this is the flywheel)
- Omnichannel gateway — Telegram, WhatsApp, Slack, Signal, email, voice
- Cron scheduler — natural-language scheduled jobs (this is the content layer)
- Memory: SOUL.md / MEMORY.md / USER.md — the client-brain substrate
- Any model, no lock-in — OpenRouter, OpenAI, Google, local
- Runs anywhere — “a $5 VPS” → gateway :8642 + dashboard :9119
Hermes Workspace
- Chat, Files + Terminal, Memory + Skills browsers, Jobs, Dashboard
- Operations + Conductor + Swarm — the multi-agent control plane (the “8+ agents” surface)
- Semantic agent roster already defined: orchestrator, builder, reviewer, QA, researcher, ops-watch, strategist…
- GBrain shared knowledge layer across agents
- Security: auth on every route, fail-closed bind, path-traversal guards
- PWA + Tailscale — native-feeling app on the founder's phone, no open ports
Zero-fork is sacred. The cockpit runs on vanillaHermes Agent — no patched backend, no drift. Forking it would forfeit every free upgrade Nous ships. Lineage note: OpenClaw → Hermes (which is why old code says “claw” / “claude-data” — same family, renamed).
One client, end to end
The entire client department is two containers and two volumes on one machine.
Cockpit UI · port 3000. Chat, memory, skills, terminal, jobs, Operations & Swarm control plane.
The brain · Python. Memory, skills, cron jobs, omnichannel gateway, model routing, MCP.
The offer, mapped to the tech
The five things a client buys — and what each one actually is under the hood.
Many clients — the fleet layer
The agent and cockpit are done. The missing layer is fleet ops: provisioning, monitoring, backups, updates across every client box.
Single-tenant per box — kept on purpose. Data isolation is the sale, blast radius is one client, and Hermes isn't built multi-tenant. “Multi-tenant” for us means one control plane managing many single-tenant boxes — never many clients in one process.
Where it runs — three postures
Chosen per client. Hermes is mostly idle, so it's RAM- and reliability-bound — 4–8 GB is the sweet spot, not raw CPU.
Best performance-per-dollar. NVMe, real API, fast support, hourly billing. We own uptime.
Best GB-per-dollar (4 vCPU / 8 GB ≈ $6.99). Weaker support + performance — fine for many small clients.
For enterprise or data-sovereignty demands. Mac Mini is a great story but you inherit “is their internet up?” support.
DigitalOcean / Vultr run ~10× the price of Hetzner / Contabo at equal specs — only worth it for free-credit trials or if a client already lives there. Avoid metered hyperscaler compute for always-on agents.
Why infrastructure is a rounding error
Per client, per month, to us.
Infrastructure is not a cost worth optimising for dollars. The real cost is human ops-time per client — which is why fleet automation, not host-shopping, is the margin lever. Margin scales with clients-per-ops-person.
The gap to close — Pedro's build order
The product is done. This is the fleet-ops layer that lets a 2–3 person team run many clients. In MECE priority order.
Provisioning automation
clients/<slug>/deploy/ template (compose + cloud-init + per-client .env) and one command to spin up client X on host Y. Collapses the build's infra step.
Fleet control plane
Stand up Dokploy/Coolify on a Rawgrowth box; register every client server. One screen to deploy, restart, log and roll back.
Monitoring
Uptime Kuma pinging each client's health endpoints; alert to our channel when a client is down before the client notices.
Backup / restore
Nightly off-box snapshot of each hermes-agent-data volume + a tested one-command restore. The volume is the entire business brain.
Client-brain seeding pipeline
Turn install-architect output (agents, memory, skills, RAG seeds) into files dropped into ~/.hermes/ at provision time. The bridge from your work to a running deployment.
Update cadence
A controlled “bump Hermes Agent + Workspace to vN across the fleet” process with a canary client + rollback. Protects zero-fork as upstream moves.
Not now: a hosted SaaS multi-tenant version, team-collaboration features, or building our own agent runtime. All scope creep.
Open decisions for you
Five calls that unblock the build.
Default host — Hetzner or Contabo as the standard?
Recommendation: Hetzner default; Contabo for price-sensitive; client-cloud / Mac Mini on request.
Fleet PaaS — Dokploy or Coolify for the control plane?
Recommendation: Dokploy — leaner (~0.8% idle CPU vs ~6%), native multi-server. Coolify if the team prefers UI maturity.
Who owns the box — agency-managed or client-owned by default?
Recommendation: Agency-managed default (better margin + cleaner support); client-owned only on demand.
Model-cost policy across the fleet?
Recommendation: A default OpenRouter routing policy — cheap model for routine, premium for reasoning — so token cost is capped per client.
Build sequence for Pedro?
Recommendation: Start at provisioning (08.1) → control plane (08.2). Those unblock everything else.