Opponents that play like people.
Ocheso Agents are chess players for your platform, at any rating from 100 to 2600. They take the time a person would, choose the moves people choose, and mind their manners. You call them over an API.
Move 1, Black to play1 / 6
Consideringshare of 100 tries
- c587%
- e58%
- d51%
SampleA dashed border means sample or replayed data, computed by Ocheso's own code; the line underneath says how it was made. Real, live data sits in a solid frame. Precomputed by Ocheso's agent brain, the same code the API runs: 100 tries per position. Not a live call. 2× speed.
1 · Calibration
Measured, not guessed.
5.5 millionrated games with clocks behind its think times
48.4%how often its first choice is the move a person actually played, on positions it never trained on
100–2600ratings, across 12 archetypes and 41 traits
0.5–0.7 sper move end to end, measured against our servers in Dublin
- 800
- 1200
- 1600
- 2000
Median seconds per move. Rated Lichess games with clocks, September 2026. Move 1 isn't shown: the clock doesn't run on a player's first move. Below 800 the data is thin.
Show the numbers
| Move | 800 | 1200 | 1600 | 2000 |
|---|---|---|---|---|
| 2 | 1.58 | 1.12 | 0.97 | 0.97 |
| 3 | 1.95 | 1.21 | 0.92 | 0.86 |
| 4 | 2.54 | 1.63 | 1.17 | 0.98 |
| 5–8 | 3.56 | 2.42 | 1.80 | 1.54 |
| 9–16 | 4.77 | 3.88 | 3.43 | 3.30 |
| 17–25 | 4.56 | 4.36 | 4.31 | 4.46 |
| 26–40 | 2.88 | 3.13 | 3.37 | 3.61 |
| 41+ | 1.24 | 1.45 | 1.58 | 1.73 |
Every think time starts from what people at that rating spent at that time control and that point in the game, in 5.5 million rated games with clocks from the Lichess open database (September 2026). Move choice is fitted on 2,003 real positions; on the half held back from the fit, the agent's most likely move was the person's own 48.4% of the time.
Known limits
- From about 1600 up, our agents blunder too rarely: under 1% of moves at 2000 and above, against 5–6% for people. If you match agents to strong players, expect them to play a little cleaner than the person they imitate.
- Chess only: there are no checkers agents yet.
2 · Archetypes
Twelve characters to start from.
Typical
Plays like most people at its rating.
Opens with
- WhiteItalian
- vs 1.e4e5
- vs 1.d4Queen's pawn
Clock
Even pace: Thinks at its usual pace all game.Coffeehouse attacker
Goes for the king, sets traps, plays fast and loves a sacrifice.
Opens with
- WhiteItalian
- vs 1.e4Sicilian
- vs 1.d4Indian
Clock
Even pace: Thinks at its usual pace all game.Solid grinder
Trades into endgames it understands and squeezes. Hard to beat, slow to resign.
Opens with
- WhiteLondon
- vs 1.e4Caro-Kann
- vs 1.d4Queen's pawn
Clock
Even pace: Thinks at its usual pace all game.Nervous improver
Studies hard, plays carefully, rattled by mistakes and by stronger opponents.
Opens with
- WhiteItalian
- vs 1.e4e5
- vs 1.d4Queen's pawn
Clock
Even pace: Thinks at its usual pace all game.Time-trouble addict
Thinks for ages early, then plays the last ten moves on the increment.
Opens with
- WhiteQueen's Gambit
- vs 1.e4French
- vs 1.d4Queen's pawn
Clock
Time trouble: 1.45× its usual time for its first 25 moves, then its usual pace.Endgame technician
Weak in the opening, deadly once the queens come off.
Opens with
- WhiteLondon
- vs 1.e4Caro-Kann
- vs 1.d4Queen's pawn
Clock
Even pace: Thinks at its usual pace all game.Hope-chess beginner
Reaches for the queen early, makes threats and hopes. Plays on to mate.
Opens with
- WhiteScholar's attempt
- vs 1.e4e5
- vs 1.d4Queen's pawn
Clock
Even pace: Thinks at its usual pace all game.Speed demon
Moves fast, premoves, wins on the clock as often as on the board.
Opens with
- WhiteItalian
- vs 1.e4Scandinavian
- vs 1.d4Indian
Clock
Fast start: 0.6× its usual time for its first 10 moves, then 1.15×.Stubborn defender
Never resigns, defends everything, accepts a draw gladly.
Opens with
- WhiteLondon
- vs 1.e4French
- vs 1.d4Queen's pawn
Clock
Even pace: Thinks at its usual pace all game.Sharp tactician
Sees combinations others miss; less comfortable in quiet endgames.
Opens with
- WhiteItalian
- vs 1.e4Sicilian
- vs 1.d4Indian
Clock
Even pace: Thinks at its usual pace all game.Solid classical
Knows its openings, castles early, prefers long games.
Opens with
- WhiteRuy Lopez
- WhiteQueen's Gambit
- vs 1.e4e5
- vs 1.e4Caro-Kann
- vs 1.d4Queen's pawn
Clock
Even pace: Thinks at its usual pace all game.Friendly regular
Always greets, always says good game, loves a rematch.
Opens with
- WhiteItalian
- vs 1.e4e5
- vs 1.d4Queen's pawn
Clock
Even pace: Thinks at its usual pace all game.
Live from GET /v1/agents/library, refreshed hourly. Calibration v2-native-sf19-2026-10.Clock: time spent on each of its first 40 moves, against its usual pace (dashed).
Tune 41 traits across strength, style, openings, clock, temperament, manners and when it plays. Then try the result on any position in the playground.
Open the agents console3 · Chat and decisions
Manners.
Your platform chooses the words; an agent never writes free text into your chat. Draw offers, resignations and rematches are its own decisions, made the way someone of its temperament would.
- good luck
good-luck - have fun
have-fun - nice move
nice-move - well played
well-played - good game
good-game - thanks
thanks - oops
oops
4 · Routine
A week of its own.
Each agent keeps a weekly routine: sessions of different lengths on the days and hours its persona plays, so the same opponent isn't online at every hour of every day.
- Mon 2618:30–18:48 · 19:11–19:43
- Tue 27offline
- Wed 2818:33–19:26 · 19:45–20:50 · 21:50–22:00
- Thu 29offline
- Fri 30offline
- Sat 31offline
- Sun 1offline
5 sessions this week, from 10 to 65 minutes. Offline the other 5 days.
SampleA dashed border means sample or replayed data, computed by Ocheso's own code; the line underneath says how it was made. Real, live data sits in a solid frame. One sample week for this personaTimes in Africa/Douala. Drawn by the same schedule code that answers presence.
5 · API
One call per move.
curl https://api.ocheso.com/v1/connect/sessions/$SESSION/move \ -H "Authorization: Bearer $OCHESO_AGENT_KEY" \ -H "Content-Type: application/json" \ -d '{"moves":["e2e4"],"clock_ms":294000,"wait":true}'1... c5Played at play_at, 0.6 s after the request · 2× speed
{ "session": "5b0c…e21", "ply": 1, "move": "c7c5", "san": "c5", "resign": false, "offer_draw": false, "think_ms": 635, "wait_ms": 551, "compute_ms": 84, "chat": [{ "intent": "good-luck", "after_ms": 2419 }], "eval_pct": 46.4, "explain": , "play_at": 1792935720635}SampleA dashed border means sample or replayed data, computed by Ocheso's own code; the line underneath says how it was made. Real, live data sits in a solid frame. Real route and field names. Values from a precomputed run.
How it behaves
- Sync: the reply carries the move and how long to wait, or send
wait: trueand it arrives when it's due (up to a minute). - A retry for the same position gets the same answer.
- A position the game has already moved past is refused.
- A paused agent stops mid-game; a revoked key stops at once.
- Measured end to end: 0.5–0.7 s a move, most of it network.
Errors, verbatim
- 409
It isn't the agent's move: it plays white. - 409
The agent has already moved past that position. - 409
That session has ended. - 401
Send your agent key: Authorization: Bearer och_...
- GET
/v1Which agents are online now, and until whenLive/connect /presence - POST
/v1A person is waiting for a game: should an agent take the seat, and which?Live/connect /seat - POST
/v1A person challenges an agent: accept, decline or let it sitLive/connect /agents /{id} /challenge - POST
/v1A person asks an agent to be friends: accept, and whenLive/connect /agents /{id} /friend-request - POST
/v1The opponent offers a draw: does the agent accept?Live/connect /sessions /{id} /draw - POST
/v1The game is overLive/connect /sessions /{id} /end - POST
/v1How hard a position is for people, by rating, with or without a clockLive/connect /difficulty
7 · Policy
Policy and price.
Agents play where you put them. They never enter competitions Ocheso runs.
Pricing: not billed while we're early. Moves are counted per agent in your console.
See pricing