Early access

Docs.

Wargamer mode walkthrough, FAQ, and links to the open-source framework.

Quick start

  1. Subscribe from the landing page CTA (Stripe checkout).
  2. Open hammerstein.ai/wargamer.
  3. Optional but recommended: in Sources, paste the relevant rules text or drop a PDF rulebook. Parsed entirely in your browser — the PDF never leaves your machine. The text becomes part of the model's context and gets cited when a specific rule shapes the order.
  4. Optional: drop a board photo (JPG or PNG). Resized to 1600px in your browser and attached to the turn as a Sonnet 4.6 multimodal reference image. Detached after the order returns — you'll re-confirm or skip on the next turn.
  5. Name your campaign (e.g. “Ukraine 2022 — CSL playthrough”). Subsequent turns under the same name pass a concise prior-turns summary back as context.
  6. Paste three inputs: your board state (positions, units, which side you play); your status report (turn number, recent moves, what's troubling you); and your turn question (what you're trying to decide).
  7. Press Issue orders. The response appears below the form, usually within 10–30 seconds.

What makes a good board state

What makes a good status report

What makes a good turn question

Example query

Below is a minimal chess midgame example using the same shape as the smoke-test paste: three fields filled, then a short note on what comes back.

Board state

I'm playing White. King on g1, Rooks on d1 and f1, Knight on f3, Bishop on c4, pawns on a2, b2, c2, e4, f2, g2, h2. Black's King is on g8; Black has Rooks on a8 and f8, Bishop on c5, Knight on d7, Queen on d8, pawns roughly as in a typical Italian middlegame.

Status report

Turn 18 in our correspondence game. Black just moved Queen to h4, threatening mate themes on the kingside and pinning ideas against f3. I want to keep initiative but not walk into a tactic.

Turn question

What is my best continuation?

The reply is typically framework-shaped: a short structural read of the position (what matters tactically and positionally), then specific moves or lines phrased as orders you could give, plus counter-observations — what to watch for if the opponent deviates. Tone and structure follow the Hammerstein / Auftragstaktik register used in Wargamer mode.

FAQ

What model is behind Wargamer mode?
Anthropic Claude Sonnet 4.6 via OpenRouter, running with the Hammerstein system prompt and corpus from the open-source framework repo.
Can I upload a board photo?
Yes — drop a JPG or PNG in Sources and it's attached to the turn as a Sonnet 4.6 multimodal reference image. The browser resizes to 1600px on the longest edge (EXIF orientation preserved, so iPhone portrait photos arrive right-side-up) and compresses to JPEG quality 0.85 — typical payload ~150–400 KB regardless of source size. Per turn only; not persisted across turns, since most operators want to confirm a fresh photo each turn rather than ride a stale one.
Does it remember previous turns?
Yes. Name a campaign in the Campaign field, and on subsequent turns under the same name the page sends a concise summary of your last few turns (status — what you reported — and the intent issued) as context for the next order. For free demo users, the campaign log is stored only in your browser's localStorage; switching machines or clearing browser data resets it. For Regular and Lifetime subscribers (live as of 2026-05-13), the campaign log also syncs server-side via Cloudflare D1 — start on your laptop, resume on your phone. Hydration is conservative-safe: if a device already has local turns for a campaign, they aren't auto-replaced when the cloud copy loads (so a session in flight isn't silently overwritten).
What about pasting the rulebook?
Drop a PDF in Sources and it's parsed client-side via pdf.js — the bytes never leave your browser. You can also paste rules text directly. The extracted text becomes part of the model's context, capped at 30,000 characters. Useful when a specific rule is going to shape the order (movement allowances, ZOC, supply, victory conditions, etc.).
Does the AI card-count?
Default: no. By default, Hammerstein reasons only from what your status report and board state explicitly describe. Hidden cards, face-down counters, fog-of-war units, undeployed reserves, and any element the opposing player would not see at the table are treated as unknown — even when prior turns mentioned them by name. The boundary is anchored to what you've stated you can see: if your status report says "the opponent played a regional event last turn," the event having happened is public, but the card's specific identity stays hidden unless your report names it. This is the clever-lazy discipline: the opponent at your table can't track what you can't, so the advisor shouldn't either.

Opt in for Challenge mode: a toggle in the Campaign bar removes the constraint. With Challenge mode on, the model uses everything in its context window (cards mentioned by name in prior turns, deck composition by elimination, all hidden info). The topbar shows a "challenge mode" pill so you don't forget mid-game. Self-imposed difficulty for players who want a memory-perfect opponent.
What if it gives me bad orders?
Email ray@hammerstein.ai with your inputs and the model output. I'm the founder and I read everything; bug reports and bad outputs directly inform what gets fixed next.
Can I run the model locally instead?
Yes. The framework and distilled 7B weights are open source: github.com/lerugray/hammerstein and huggingface.co/lerugray/hammerstein-7b-framework. The hosted product runs the same framework on frontier Sonnet for higher quality and zero local setup.
What's the difference between the hosted Wargamer mode and the open-source hp CLI?
Wargamer mode uses Sonnet 4.6, the Hammerstein system prompt, and a kriegsspiel–Auftragstaktik output register tuned for wargame orders in the browser. The CLI is a general-purpose Hammerstein wrapper: you supply your own API key and choose whichever model you want to call.
Is my data stored?
Cloudflare Pages Functions do not persist Wargamer queries to a database in the MVP. The Session log on the Wargamer page is stored only in your browser's localStorage and never sent to the server. OpenRouter processes requests under their privacy policy. We don't sell data, train models on user input, or share queries with third parties beyond what OpenRouter needs to route the request. We log lightweight funnel events (pageview, form-start, submit-click, outcome category) to Cloudflare's Function logs so we can see where users hit friction — event shape only, never the content of your board / status / turn fields.
How do I cancel?
Go to your account page, sign in with your subscriber token, and click "Manage subscription" to open Stripe's hosted customer portal. From there you can cancel (takes effect at the end of the current billing period — you keep access through what you've already paid for), update your payment method, or view invoices.

Open-source references