Everyone’s racing to build a sleek web dashboard for their agent demo.
We disagree. whyc is a curlable HTTP endpoint that
streams the agent loop to stdout and emails you the deployed Cloud Run URL
when spec-fit converges. No SPA. No login. No spinner. Just a pipeline you can
tee into a logfile and forget about until your inbox pings.
sejun@thinkpad ~ zsh 132x40$ curl -N https://whyc.sh/run \
-d url=https://workatastartup.example/jobs/synthetic-jd-001 \
-d email=sejun@example.devHTTP/2 200 text/event-stream x-run-id: r-20260506-7f3a2b12:25:31[boot] whyc-agent v0.1.0 attached. otel auto-instrument: on.
12:25:31[plan] gemini-adk : 1 url -> spec graph -> codegen -> deploy -> judge.
12:25:32[fetch] GET workatastartup.example/jobs/synthetic-jd-001 302 -> 200 (4.1kb)
12:25:33[extract] spec.title = "async ops copilot for soc2 teams"
12:25:33[extract] spec.surfaces[] = web.dashboard, slack.webhook
12:25:33[extract] spec.flows[] = onboard, evidence-upload, control-review, ship
12:25:34[note] no logo found. using categorical placeholder. good.12:25:35[design] tokens : tone=earnest, density=high, palette=stone+lime, type=geist-mono
12:25:38[gen] next.js app/router scaffolded (37 files, 1 api route, 0 todos)
12:26:02[build] next build ............................................ ok 21.4s12:26:11[deploy] cloud run : whyc-r-20260506-7f3a2b region=us-central1
12:33:48[live] https://whyc-r-20260506-7f3a2b-uc.a.run.app spec-fit 0.7112:33:48[phoenix] attaching mcp. pulling traces from this run...
12:33:51[judge] flow=onboard 0.8812:33:51[judge] flow=evidence-upload 0.54 <-- under spec
12:33:51[judge] flow=control-review 0.61 <-- under spec
12:33:51[judge] flow=ship 0.8312:33:52[loop] regenerating 2/4 flows. background. detaching stream.
12:33:52[loop] iteration 1 -> spec-fit 0.71. sse closing. you'll get an email.
12:33:52[bye] goodbye. tail logs: whyc tail r-20260506-7f3a2b$ _
The visible window is ~10 min and lands on the first live URL with a real spec-fit number.
The judging loop keeps running for hours; you don’t babysit it.
[ delivery: plaintext email — no html, no tracking pixel ]
mutt INBOX 1 newFrom: whyc <ship@whyc.sh>To: sejun@example.devSubject: [whyc] r-20260506-7f3a2b converged @ 0.96Date: Wed, 06 May 2026 18:41 -0700your preview is live.
url https://whyc-r-20260506-7f3a2b-uc.a.run.app
spec-fit 0.96 (started 0.71, 4 iterations, 5h 53m)
flows onboard 0.94 / evidence 0.97 / review 0.95 / ship 0.98
source https://github.com/<you>/whyc-r-20260506-7f3a2b
traces https://phoenix.<you>.dev/projects/whyc/r-20260506-7f3a2b
what we shipped while they were still
posting "hiring junior eng (unpaid intern ok)":
- 1 spec graph extracted from a job url
- 4 named user flows
- 1 next.js app, 0 todos, 0 lorem ipsum
- 1 cloud run service
- 4 self-improvement iterations, judged
against the spec by an llm-as-judge
reading our own openinference traces
reply STOP to never hear from us again.
reply MORE and we'll roast another url.
-- whyc(1)
NAME
whyc — turn a yc job posting into a working preview while they're
still interviewing the intern.
SYNOPSIScurl -N https://whyc.sh/run -d url=<url> [-d email=<addr>]
whyc tail <run-id>
whyc open <run-id>
DESCRIPTION
Submits a workatastartup-style job url. Streams the agent loop as
text/event-stream. Emails the deployed cloud run url when spec-fit
converges. There is no web ui for whyc itself; the artifact is
a next.js app, that's where the design budget went.
EXIT CODES
0 converged.
2 spec-fit ceiling at < 0.80 after 8 iterations (we tell you).
7 refused: input looked like a real yc company. categorical only.
SEE ALSO
phoenix(1), gcloud-run(1), shame(7)
[ unfashionable choices, on purpose ]
surface
curl + email, not a SPA
auth
api key in a header. that’s it.
state
run-id is the primary key. no accounts.
delivery
plaintext email. mutt-readable.
docs
a man page. one screen.
analytics
none on whyc. phoenix on the agent.
design
budget spent on the generated preview, not on us.
[ what stays sleek anyway ]
The generated Next.js preview on Cloud Run is finished work —
pixel-tight, real flows, real api routes. WhyC’s own surface is text
because the joke only lands if the artifact looks shipped and the tool
looks cheap to operate. That’s the contrast: their hiring page,
our 200-line shell pipe.
spec-fit gauge
0.96
try it. it’s one line.
$ curl -N whyc.sh/run -d url=$URL -d email=$YOU
arize track2026-06-11 14:00 PTteam of 2
whyc is a categorical satire of a shipping pattern, not of any individual company.
No yc names or logos appear in the demo video or in this preview.
Generated previews use synthetic or anonymized job descriptions only.