Skip to content

About

Satirical isometric CEO simulator. Your real goal is FIRE. An LLM is the game master.

Resources

Stars

2 stars

Watchers

0 watching

Forks

Repository files navigation

CEO Tycoon

Satirical isometric tycoon where you're a C-level exec whose real goal is FIRE — via an honest IPO or by quietly wiring "consulting fees" to Zug. An LLM sits inside the game engine as the game master.

CEO Tycoon gameplay

Run

cp .env.example .env   # put your ANTHROPIC_API_KEY there
npm install
npm run dev

Don't feel like typing? Every free-text box has a Ghostwriter: pick a tone (honest, visionary, corporate, vague, ruthless) and a comms agency writes it for you, for $5k of company money per draft.

Without a key the game still runs with a dumb heuristic "mock GM". Progress autosaves to localStorage.

Offices

You start in your aunt's garage. You set your own salary — the board and the team compare it to the company's size every quarter. Garage → coworking → open space (+ east wing) → glass campus, or go remote-first and run the company as a Zoom grid. Hire beyond your desks and people hot-desk on beanbags (morale tanks). The office shop sells perks with trade-offs, plus four LLM-invented "specials" per quarter tailored to your company (bought ones show up in the office as props) (climbing wall, beer fridge, AI receptionist, valuation LED wall...), all visible in the office and known to the LLM's office gossip. Perks cost upkeep every quarter, and the novelty wears off: after a few quarters nobody notices the upside (the downsides stay).

Things come back to bite you

  • Company systems (infra, billing, product, sales) are each understood by exactly one person, who is paid accordingly. Fire them to save money and the system rots; below 30 it's a crisis and the board calls you in to explain yourself (in writing, judged by the LLM).
  • People remember. Every employee keeps a history of promises, broken promises, 1:1s and who got fired. The LLM reads it in every conversation.
  • Alumni hold grudges, post Glassdoor reviews, join competitors, and can be rehired as contractors at 3x — if your phone call convinces them. Whoever processed your Zug invoices may blow the whistle.
  • Investor KPIs: numbers you throw around in a pitch get written down and checked later.
  • Term sheets: you pick the ask and the valuation (fair, optimistic, delusional) and can sweeten it with a board seat, a 2x liquidation preference or a personal guarantee. The LLM plays the fund: accept, counter or pass. The engine enforces what you signed — the preference eats your IPO, the guarantee eats your savings, the board member sticks around.
  • Org chart: decide who reports to whom and hand out titles (Team Lead → Chief … Officer), then announce the reorg and watch the politics. More than 6 direct reports eats one of your decisions every quarter; managers' moods leak into their teams; too many layers cost revenue in meetings; promote your best engineer to manager and nobody maintains infra anymore. Skip-level 1:1s get noticed. Or pay consultants to draw it for you: your brother-in-law ($8k), two ex-Big Tech guys with a Notion template ($40k) or a prestige strategy firm ($150k). Pricier means better odds, never a guarantee. Get it right and it pays: few direct reports plus happy managers frees up an extra decision, good managers squeeze 10% more out of their teams, and a manager inherits the systems of whoever quits.
  • Hiring: the LLM sends three candidates with CVs, red flags and whatever they've heard about you. Pick one, set salary and a sweetener, make your case. They can say no.
  • Customers: three sales leads a quarter, invented for whatever you sell right now, each with a buyer, a demand and a catch. Pick a price (discount, list, premium) and pitch; the LLM plays the buyer. A signed contract pays every quarter until it runs out, renews if the product is healthy, and churns when Product or Infra is on fire. Whatever you promised to close it, you'll be billed to build.
  • AI: set a tools budget per head (nothing, basic seats, pro everything, unlimited GPUs) for a revenue boost, or replace someone with an agent: cheaper, ~60-90% of the output, no morale, takes their systems knowledge to the grave, and now and then promises a customer a lifetime refund.
  • Herr Brunner: money moves to Zug through a scheme of your choice (consulting invoice, Alpine "retreat", Cyprus licensing, crypto "treasury"), and he wants a cover story for the auditors.
  • The board meets every 4 quarters with a motion of its own: appoint a CFO who watches every payment, freeze your salary, cut staff, sell the perks, revenue or valuation targets, or a vote of no confidence, picked by what worries it most and never the same thing twice in a row. You argue, they vote, the engine enacts it. Every board seat you traded for money is a vote against you.
  • Lifestyle: every quarter the LLM curates fresh, personal picks next to the classics (a vest, a Lambo, a penthouse, a private jet that buys you an extra decision). Pay from your own savings (FIRE slips away) or put it on the company card (suspicion, someone in finance sees the receipt, and auditors who find it make you pay it back). Investors like a CEO who looks successful; the team doesn't.
  • Media: podcasts, a journalist who asks about whatever she's heard (Zug included), LinkedIn posts, paid features. The team reads it too.

How the LLM is wired in

  • server/llm.ts — game master: judges free-text actions (all-hands, investor pitch, 1:1s, custom event responses), invents quarterly events with choices, writes office gossip. Uses structured outputs; every number it returns is clamped.
  • src/game/state.ts — rule-based simulation (economy, promises, audits, win/lose). The LLM can only propose deltas; this owns the numbers.
  • src/scene/OfficeScene.ts — Phaser isometric office drawn with code (no assets).
  • vite.config.ts — mounts /api/* on the dev server so the key never reaches the browser.

Default game master model is claude-sonnet-5-5 (judgements, events, epilogues); flavour text (gossip, ghostwriting, shop catalogues, candidates, sales leads) runs on claude-haiku-5-5. Override with CEO_MODEL and CEO_FAST_MODEL in .env, or per task (CEO_MODEL_EVENT, CEO_MODEL_JUDGE, CEO_MODEL_GOSSIP... see .env.example). The slow-changing part of the game state (who's who, the story so far) is sent as a cached system block, so calls within a quarter mostly read it from the prompt cache. The dev server logs tokens, cache hits and a running cost estimate for every call ([llm] ...).

What a game costs: with the defaults, about 5 cents per quarter (measured: 4 quarters with an event, a speech, a pitch or interview and some shopping each came to $0.23), so a full run to FIRE (20–40 quarters) is roughly $1–2 in API credits. Free-text judgements and events are ~95% of it.

License

MIT

About

Satirical isometric CEO simulator. Your real goal is FIRE. An LLM is the game master.

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages