examples

What you actually get back.

Real xc prompts, the output crosscheck returned, and the exact cost + latency. Four frontier models in parallel — from a fraction of a cent.

recorded runs · 2026-06-07 · real prompts, output & receipts

flagship

Four frontier models design your spend dashboard in parallel — and they don't fully agree on the chart library. You get every take plus the consensus, schema, gotchas, and a code stub. Recorded run: 23¢.

xc confer
$ xc confer "I'm building an internal 'LLM spend' dashboard for our eng
org. Postgres source of truth, Next.js 14 app router, ~20 eng users. Give me:
component breakdown, data model, chart-library pick, and a code stub for the
main spend-over-time chart. Be opinionated and concise."
panel · 4 models · confer
────────────────────────────────────────────────
▎anthropic/opus-4.7
  • Components: SpendOverview, SpendByModel, SpendByUser,
    BudgetAlerts, RawEventsTable · URL-driven filters (nuqs)
  • events(occurred_at, user_id, team_id, provider, model,
    input_tokens, output_tokens, cost_usd numeric(12,6), …)
    + a daily materialized rollup
  • Chart lib: Recharts — composable, SSR-friendly
  • Gotcha: cost_usd as numeric(12,6), computed at ingest

▎openai/gpt-5.5
  • Adds mv_daily_spend materialized view + a model_pricing table
  • Recharts area chart; RSC fetch, revalidate 300s; budgets + alerts
  • Stack by provider/model later via multiple <Area/>

▎xai/grok-4
  • Keep it lean: one events table; index (created_at),(model),(user_id)
  • Recharts LineChart; the server component does the GROUP BY day
  • "Tremor is overkill for 20 users"

▎google/gemini-3.1-pro
  • dissents → Tremor: prebuilt dashboard primitives, Tailwind-native
  • llm_api_calls + projects lookup; gen_random_uuid PKs
  • date_trunc('day', ts) daily aggregation

─── consensus (reading the 4 takes) ──────────────
chart lib :  Recharts — 3 of 4 (Gemini argued Tremor for speed)
schema    :  raw events(…) + a daily materialized rollup — unanimous
cost field:  numeric(12,6), computed at ingest — unanimous
pattern   :  RSC fetches + GROUP BY day on the server, client chart

// app/(dash)/spend/SpendChart.tsx   ('use client')
import {
  AreaChart, Area, XAxis, YAxis, Tooltip, ResponsiveContainer,
} from 'recharts';

export default function SpendChart({ data }: {
  data: { day: string; usd: number }[];
}) {
  return (
    <ResponsiveContainer width="100%" height={360}>
      <AreaChart data={data}>
        <XAxis dataKey="day" minTickGap={32} />
        <YAxis width={70} tickFormatter={(v) => '$' + v} />
        <Tooltip />
        <Area type="monotone" dataKey="usd"
          stroke="#7dffb1" fill="rgba(125,255,177,0.18)" />
      </AreaChart>
    </ResponsiveContainer>
  );
}
providerinoutcostwall
anthropic/opus-4.71632,048$0.156027.8s
openai/gpt-5.51073,997$0.060566.0s
xai/grok-4228520$0.00866.0s
google/gemini-3.1-pro1041,319$0.006726.1s
total6027,884$0.231966s wall

Describe it in plain English. A multi-model pipeline scopes the task, cheap models write the code, and a synthesis pass returns a complete, reviewed TypeScript file.

xc create_cheap
$ xc create_cheap "a typed React useLocalStorage hook with JSON
serialization that's SSR-safe"
// useLocalStorage.ts — cheap-tier models wrote it; a synth pass merged + reviewed
import { useState, useEffect } from 'react';

const isBrowser =
  typeof window !== 'undefined' && typeof window.localStorage !== 'undefined';

function readValue<T>(key: string, initial: T | (() => T)): T {
  if (!isBrowser) return typeof initial === 'function' ? (initial as () => T)() : initial;
  try {
    const raw = window.localStorage.getItem(key);
    if (raw === null) return typeof initial === 'function' ? (initial as () => T)() : initial;
    return JSON.parse(raw) as T;
  } catch (e) {
    console.warn('localStorage read failed for ' + key, e);
    return typeof initial === 'function' ? (initial as () => T)() : initial;
  }
}

export function useLocalStorage<T>(key: string, initial: T | (() => T)) {
  const [value, setValue] = useState<T>(() => readValue(key, initial));
  // persists on change + syncs across tabs via the 'storage' event
  // …full file also writes back, guards SSR, and handles quota errors
  return [value, setValue] as const;
}
cheap-tier build (gemini-2.5-flash-lite + o3-mini) · $0.23 · 49s

A production auth-bypass, caught and scored against your own rubric — for a quarter of a cent.

xc audit
$ xc audit "security-review this Express JWT middleware:
  const t = req.headers.authorization?.split(' ')[1];
  const payload = jwt.verify(t, getKey, { algorithms: undefined });
  req.user = payload; next();"
auditor · openai/o3-mini      verdict: FAIL  (0.00 / 1.00)
────────────────────────────────────────────────
✗ auth_bypass   [high]  score 0.00
  algorithms is unrestricted → a token with alg:'none' is accepted.
  An attacker forges an unsigned token → authentication bypass.

✗ error_handling [med]  score 0.00
  jwt.verify can throw and nothing catches it → 500, not a 401.

passed: false
openai/o3-mini · 308 in / 468 out · $0.0024 · 5.2s

Four models debate, then auto-stop a round early when they converge — saving the spend. You get one clear call, not a transcript to wade through.

xc debate
$ xc debate "New notifications feature: keep it in the monolith or split
a microservice? Team of 4, 3-week deadline, high reliability needed."
round 1 · all four → keep it in the monolith
early-stop · converged (0.95 agreement) → round 2 skipped

▎moderator synthesis (opus)
Keep notifications in the monolith as an isolated module with durable async
dispatch — transactional outbox + worker, retries, idempotency, a DLQ.
Reliability comes from those primitives, not from a separate service. Keep the
module boundary clean so you can extract it later if load, ownership, or
compliance ever justify it. Ship the deadline first.
4 models · converged at round 1 (round 2 skipped) · $0.1445 · 86s

A weighted, multi-criteria decision across the panel — with the dissent surfaced, not averaged away.

xc pick
$ xc pick "Charting library for a Next.js 14 dashboard"
  options: Recharts, Tremor, visx, Nivo
  criteria: developer experience (1.5), bundle size, customization, SSR
ranked · weighted across the panel
────────────────────────────────────────────────
  1. Tremor     0.789   DX 0.95 · SSR 0.93 · bundle 0.58 · custom 0.63
  2. visx       0.781   custom 0.98 · bundle 0.93 · DX 0.53
  3. Nivo       0.694
  4. Recharts   0.686

dissent · bundle size, Tremor
  opus 0.45 "wraps Recharts — not the smallest"  vs  grok 0.70

→ Tremor edges visx for a dashboard (DX + SSR); visx wins if you need
  fully custom viz and the smallest bundle.
panel scored · 4 options × 4 criteria · $0.1187 · 53s

These are real recorded runs — your cost and latency scale with prompt + output size and which models you enable. Every crosscheck call returns its own per-provider receipt like the ones above. You bring your own keys; the spend is yours.