Ocheso
Ocheso Agents is live. (on www.ocheso.com)
Human-like chess opponents that other platforms hire through an API, one move at a time or in real time.
Ocheso A Blacksilver company Live since 21 Oct 2026
Organisers open entries by link, by code or by approval, and pick a Swiss, round robin, knockout or arena. Ocheso pairs every round, runs each game’s clock on its server, and keeps the standings and ratings. Chess and checkers for now.
| Surface | What it does | Status |
|---|---|---|
| Tournaments | Swiss, round robin, knockout and arena. Entries by link, by code or by approval. Standings with up to six tie-breaks, in the order the organiser picks. | Livesince |
| Live play | Chess, plus international (10×10) and Brazilian (8×8) checkers under FMJD rules. The server checks every move and runs the clock, so no player’s device decides how long anyone had. | Livesince |
| Ratings | Ocheso’s own Elo ratings, updated after rated games. They are not FIDE ratings. | Live |
| Ocheso Agents | Twelve player types to start from, such as a coffeehouse attacker, a solid grinder or an endgame technician, at any rating from 100 to 2,600. Hired through an API, one move at a time or in real time.RECORD25 Oct 2026 | Livesince |
| Ocheso for Platforms | Tournaments inside a partner’s own site or app. | In progressNot public yet |
02Specimen
Nine invented players and four rounds of invented results, run through the pairing and standings code Ocheso uses. Step through it, or let it play.
Round 4 · the best of 105 possible pairings, by Ocheso’s weights
| # | Player | Rating | Pts | Buchholz | SB |
|---|---|---|---|---|---|
| 1 | S01 | 2140 | 3½ | 9 | 7.5 |
| 2 | S04 | 1912 | 3 | 9 | 5.75 |
| 3 | S03 | 1980 | 3 | 8 | 5.75 |
| 4 | S05 | 1846 | 2½ | 9 | 4.5 |
| 5 | S02 | 2055 | 2 | 7.5 | 2 |
| 6 | S07 | 1704 | 2 | 6.5 | 1 |
| 7 | S06 | 1781 | 1½ | 9 | 2 |
| 8 | S09 | 1560 | 1½ | 9 | 1.5 |
| 9 | S08 | 1633 | 1 | 6.5 | 0 |
No rematches. Two players meet again only if nothing else is possible.
No colour clash. Two players who must both have White, or both Black, don’t meet.
Close scores. The smallest score difference, weighed by its square.
Colour preferences. Milder wishes for White or Black, where they can be met.
Top half against bottom half. Within a score group.
| Board | White | Black | Result | Why |
|---|---|---|---|---|
| 1 | S01 | S05 | 1–0 | Seeded: top half meets bottom half. |
| 2 | S06 | S02 | ½–½ | Seeded: top half meets bottom half. |
| 3 | S03 | S07 | 1–0 | Seeded: top half meets bottom half. |
| 4 | S08 | S04 | 0–1 | Seeded: top half meets bottom half. |
| Bye | S09 | — | +1 | Bye: the lowest-placed player without one. Worth a point. |
| Board | White | Black | Result | Why |
|---|---|---|---|---|
| 1 | S02 | S01 | 0–1 | S02 ½, S01 1 · S02 due White, S01 due Black |
| 2 | S09 | S03 | ½–½ | Both on 1 · S03 due Black |
| 3 | S04 | S06 | 1–0 | S04 1, S06 ½ · S04 due White, S06 due Black |
| 4 | S05 | S07 | 1–0 | Both on 0 · Both due White; S05 had Black last, so takes White |
| Bye | S08 | — | +1 | Bye: the lowest-placed player without one. Worth a point. |
| Board | White | Black | Result | Why |
|---|---|---|---|---|
| 1 | S01 | S09 | 1–0 | S01 2, S09 1½ · S01 due White, S09 due Black |
| 2 | S03 | S04 | ½–½ | S03 1½, S04 2 · S03 due White, S04 due Black |
| 3 | S05 | S02 | ½–½ | S05 1, S02 ½ · Both due Black; S02 had White last, so takes Black |
| 4 | S06 | S08 | 1–0 | S06 ½, S08 1 · S06 due White, S08 due Black |
| Bye | S07 | — | +1 | Bye: the lowest-placed player without one. Worth a point. |
| Board | White | Black | Result | Why |
|---|---|---|---|---|
| 1 | S04 | S01 | ½–½ | S04 2½, S01 3 · S04 due White, S01 due Black |
| 2 | S06 | S03 | 0–1 | S06 1½, S03 2 · Both due Black; S03 had White last, so takes Black |
| 3 | S09 | S05 | 0–1 | Both on 1½ · S09 due White, S05 must have Black |
| 4 | S07 | S08 | 1–0 | Both on 1 · S07 must have White |
| Bye | S02 | — | +1 | Bye: the lowest-placed player without one. Worth a point. |
| Rank | Player | Rating | Points | Buchholz | SB |
|---|---|---|---|---|---|
| 1 | S01 | 2140 | 3½ | 9 | 7.5 |
| 2 | S04 | 1912 | 3 | 9 | 5.75 |
| 3 | S03 | 1980 | 3 | 8 | 5.75 |
| 4 | S05 | 1846 | 2½ | 9 | 4.5 |
| 5 | S02 | 2055 | 2 | 7.5 | 2 |
| 6 | S07 | 1704 | 2 | 6.5 | 1 |
| 7 | S06 | 1781 | 1½ | 9 | 2 |
| 8 | S09 | 1560 | 1½ | 9 | 1.5 |
| 9 | S08 | 1633 | 1 | 6.5 | 0 |
Ties are broken by Buchholz, then Sonneborn–Berger (SB): Ocheso’s default order.
In rounds 2 to 4 there were 105 ways to pair the eight players who weren’t on a bye. Ocheso’s weights ranked them, and the pairing shown was the single best each time.
03Operations
| What | How | Date |
|---|---|---|
| Authorisation in the database | Every API request runs as the person who made it, and the database’s row-level rules decide what they may do. The API holds no key that bypasses them, and refuses to start if one is configured.BSG/S1 · The database decides | RECORD21 Oct 2026 |
| Checked live before launch | We walked through the main flow on the live system with two real accounts before calling it live. | RECORD21 Oct 2026 |
| Engines inside the API | Stockfish 19, the official release, ships with the API and is held to a fixed checksum. Nothing downloads while a request waits.BSG/S4 · Ship what a request depends on | RECORD22 Oct 2026 |
| Next to its data | The API runs in Dublin, beside its database in Ireland.No. 01 · The Atlantic was most of our latency | RECORD22 Oct 2026 |
| Two functions, one domain | Tournaments and agents deploy separately, so a tournament page never waits for chess engines. | RECORD22 Oct 2026 |
04Said plainly
05The name
Ocheso hides chess in plain sight: o-ches-o. It carries echoes of oche, the line you compete from, and ocho, eight, for the board. It was never named for one game, and it already runs two.
Ocheso
Human-like chess opponents that other platforms hire through an API, one move at a time or in real time.
Ocheso
Tournaments no longer load chess engines they don’t use. First request after a deploy: 8.4 s to 1.3 s.
Ocheso
Beside its database. An agent’s move, end to end: 1.1–1.7 s to 0.5–0.7 s.
Ocheso
The official release, held to a fixed checksum. Nothing downloads while a request waits.
Ocheso
TypeScript to Python: 8,048 recorded decisions replayed, every one identical.
Ocheso
The server checks every move against the rules and runs the clock. Swiss, round robin, knockout and arena pairings.
Ocheso
Create and publish an event; players enter by link, by code or by approval.
Ocheso
Every API request runs as the person who made it. 87 checks, run as each role, prove the rules.
Ocheso
The working name was retired everywhere the same day. Say it oh-CHESS-oh.
Ocheso