tictacjev
Tic-tac-toe web app where Jev plays one side, choosing each move as a Choice over open cells with visible probabilities.
Overview
Tic Tac Jev is a small full-stack game where every move for one side comes from Jev. The FastAPI backend sends the board as natural-language state and a Choice question whose criteria are only the currently empty cells, labeled like "center" or "top-right corner". Jev returns the chosen cell, a confidence and a probability for each candidate.
The React frontend shows a move log where each Jev move expands into probability bars for every cell it weighed. The point is to make a decision model's reasoning easy to watch: with nine cells and at most eight legal moves, the full distribution fits on screen. It suits developers who want a compact example of building a Choice question from live state and surfacing calibrated probabilities in a UI.
What the decision model decides
| Type | Question | Answers |
|---|---|---|
| Choice | Which open cell should Jev play next? | center · top-right corner · ...one option per empty cell |
How it works
- The human submits a move via POST /games/{id}/moves.
- The backend builds a Choice question listing only empty cells and sends the board as state.
- Jev returns the chosen cell, confidence and per-cell probabilities.
- The move and its distribution are stored and rendered in the move log.
Strengths
- Restricting criteria to empty cells means Jev can only pick legal moves.
- Per-move probability bars make the decision transparent.
- Backend and frontend both include tests.
Caveats
- A toy demo with a tiny decision space.
- Requires a Jev API key.
- No license stated in the README.
Getting started
cd backend && cp .env.example .env (set JEV_KEY) && uv sync && uv run uvicorn app.main:app --reload; then cd frontend && npm install && npm run devAt a glance
- Type
- App
- Status
- prototype
- Language
- Python, TypeScript
- Runtime
- FastAPI backend + React/Vite web app
- Has code
- yes
- Has tests
- yes
Use cases and integrations
How curated lists describe it
A tic-tac-toe app where one player is Jev, TypeSafe AI's System One Model with live confidence scores and probabilities.
logicrw/awesome-jev-projects
Frequently asked questions
What does Jev decide here?
Which empty cell to play on its turn, chosen from a Choice question built from the current board.
Can Jev make an illegal move?
The criteria list only open cells, so its answer is always a legal move.
What do I need to run it?
Python 3.12+, uv, Node.js and a Jev API key set as JEV_KEY.
Related projects
Source for browser chess and Chess960 where code computes each legal move's facts and Jev picks one per turn as a typed Choice.
ProjectproductionTypeScriptBrowser 1v1 sniper arena where Jev reads match state about 9 times a second and chooses movement, aim, ADS, firing and jumping.
ServicebetaTypeScriptInstrumented 2048 web lab where every move is a Jev Choice over four directions, with probabilities, latency and cost shown live.
ProjectbetaTypeScriptFifteen live arcade games where Jev and LLMs play each other, led by WikiRace in which Jev picks only real links.
ProjectbetaTypeScriptReal-time bot battles where you write a fighter's strategy in plain English and a System One model pilots it several times a second.
ProjectbetaTypeScriptBrowser extension that lets Jev, local Laya or an OpenAI-compatible model take over a running ra2web (WannaFire) RTS match.
ProjectbetaTypeScript