GMAN:·paisamaker:·gex-advisor:POLLING·fetcher:429rps·npm:v0.1.8 (9rel)
$ cd ..

gman — ai agent observability

multi-tenant platform · npm SDK · live in developer preview

GMAN watches AI agents in production and captures what they send, how much they cost, and how long they took. One local SDK proxy, one multi-tenant gateway, one per-tenant cockpit. The hardest part of the product is operational — how do you make LLM traces legible to the engineer at 2am without leaking one tenant's prompts into another's dashboard.

── architecture ─ sdk → gateway → cockpit
── lane a ── authenticated developersvc-agent[USER CODE]agent processOpenAI SDKOPENAI_BASE_URL=…HTTPsvc-sdk[LOCAL :9000]@gman-ai/dev v0.1.8byte-for-byte fwdfire-and-forget tlmBearer gman_dev_sk_…POST /v1/dev/ingestsvc-gateway[LIVE 293ms]Express · Railway100 req/min/IPtenant_id ← API key hashservice_rolesvc-supabase[WRITE]dev.dev_eventsRLS on · 414 rowstenants=5 keys=9tenant-scoped readClerk userId → tenant_idsvc-cockpit[NEXT.JS 14]/cockpit/dev47 API routesClerk auth── lane b ── public /demo (sanitized · single tenant)svc-visitor[UNTRUSTED]public visitorno authno cookies setsvc-demo[STATIC]/demoNext.js page30s poll on clientsanitizeEvent()svc-demo-api[ROUTE]/api/demo/sessions10s fresh / 60s stalewhitelist projectiontenant_id=$DEMOsvc-supabase[READ]dev.dev_eventssingle tenantno userIds in outputtrust boundarytenant_id is server-derived from API-key hash on every write — never trusted from client.both lanes share dev.dev_events — lane B reads only DEMO_TENANT_ID with sanitized projection.

operational trust boundary — measured: 47 route handlers · 23 migrations · gateway p50 ≈ 293 ms · 414 dev_events live

social-agent traces are visible here

── live demo ─ real traces, real telemetry
getmyagentnow.com/demoopen live →
27
sessions
52
LLM calls
$1.67
total cost
11d
running
Score 8·Generated·9h ago
Implemented entry pricing strategy with a 10% limit buffer and market auto-flip in paisamaker
gpt-4o-2024-08-062.3s·1,142 tokens·$0.0428·2 events
Score 3·Skipped·1d ago
Routine fixes for error handling and message length enforcement
gpt-4o-2024-08-061.8s·651 tokens·$0.0212·1 event

Snapshot from getmyagentnow.com/demo. The demo tenant is real — every session you see on the live page is the autonomous social agent scoring commits and drafting tweets, with each LLM call proxied through the GMAN SDK.

── sdk ─ install + one import
@gman-ai/dev · v0.1.8view on npm →
install
$ npm install @gman-ai/dev
set env
$ export GMAN_API_KEY="sk_live_..."
wrap your agent
import { spawn } from "child_process";

// Start the GMAN proxy once — it listens on localhost:9000
// and forwards to the upstream LLM provider, emitting telemetry
// to the GMAN gateway on every request.
const proxy = spawn("npx", ["@gman-ai/dev", "start"]);
process.env.OPENAI_BASE_URL = "http://localhost:9000/v1";

// Now any LLM SDK that respects OPENAI_BASE_URL is traced.
// Every call appears in cockpit under your tenant in seconds.

The SDK is a local HTTP proxy, not a wrapper library. It works with any LLM client that respects OPENAI_BASE_URL, across languages, without modifying the agent code path.

── scope & roadmap
~/gman/status-matrix6 shipped·1 frozen
featurestatusnotes
@gman-ai/dev SDK[SHIPPED]v0.1.8 on npm · local proxy · 9 releases
Multi-tenant gateway[SHIPPED]tenant_id derived server-side from API key hash
Session viewer / cockpit[SHIPPED]Clerk auth · per-tenant isolation
API key management[SHIPPED]create, rotate, revoke · hashed storage
Stripe Connect billing[SHIPPED]webhook-driven · multi-account payout ready
Public demo endpoint (/demo)[SHIPPED]sanitized reads · paranoid redaction at output layer
Policy · Evidence · Payout · Sidecar[DESIGNED · FROZEN]specs and schemas exist · frozen pending R2
planned · not in R1.5
  • Public trace viewer beyond /demo (per-agent, per-session links)
  • Cost calculator with per-model pricing
  • SDK docs site (autogenerated from source)

The frozen designs are real — specs, schemas, migration paths. R1.5 is scoped to the observability core.

── eof ─