Inner loop — hexgate chat
A single-process REPL against a local or registered agent. No platform, no Docker,
no browser. The chat command sets HEXGATE_LOCAL_MODE=1 automatically so audit
stays on your machine even if HEXGATE_API_KEY lives in your .env from an earlier
session. Denies and approval-required calls render as inline panels in the
terminal — same Decision data the platform would log, surfaced where you’re
iterating.
Reach for chat when you’re authoring a policy YAML, tweaking a tool, or
shaping a system prompt.
Team loop — hexgate serve + dashboard Playground
Same agent code, but the policy + decisions round-trip through the platform.
You get auditable decisions in ClickHouse, the shared Playground UI, and live
policy edits via the dashboard. The platform is Hexgate Cloud
by default (set HEXGATE_API_KEY, no infra) or self-hosted.
Reach for serve when you’re collaborating on an agent’s behaviour,
debugging a production-like trace, or demoing.
At a glance
hexgate chat takes --agent, accepting either a plain agent id
(--agent example_agent) or a uvicorn-style module.path:attr spec
(--agent my_app.agents:my_agent). hexgate serve takes the spec as a
positional argument (hexgate serve my_app.agents:my_agent) — there’s no
--agent flag on serve. The same module.path:attr entry-point works in both.