Organizing
A hundred games get browsed; a thousand get organized. The browser answers two separate questions, and it pays to keep them apart: where am I? — that’s the sidebar — and what am I narrowing down? — that’s the toolbar.
One place at a time
The sidebar lists places. Only one is active: clicking a place replaces the previous one, exactly as in Finder or Mail. Two filing systems can never quietly intersect again.
| Section | Places |
|---|---|
| — | All games — your local library and the feed from your online accounts, merged |
| — | Online games — the feed of the accounts ticked in the Accounts menu, only |
| Library | My library (everything saved), Without folder, then one place per folder |
| Tags | one place per tag |
| Saved views | one place per view |
The section heading states the scope: a folder and a tag file saved games, so they only ever show local ones. It’s written down — nothing disappears without an explanation any more.
One more place shows up at the top of the list now and then: Position, the result of a position search. It is temporary — it exists only while the search is armed, and clears away with it.
Folders and tags
Folders file things by hand — “March tournament”, “Annotated games”. A game moves into one by drag and drop or through the context menu, and Without folder gathers everything not yet filed anywhere.
Tags, colored, mark across the board: the same game can carry “review later” and “miniature”. You create and color them on the fly from a game’s context menu. To assign one, two gestures: the context menu, or drag the games onto the tag in the sidebar — a whole selection at once, with a confirmation at the bottom of the window.
Drag and drop also works for online games: dropping a game from the online feed onto a tag or a folder first adds it to My games, then files it — and if it’s already in the library, the tag applies to the existing one, never creating a duplicate. Spot, drag, filed.
The Tags column of the table is the visual cue: each game shows the colored dots of its tags — beyond three, a “+N” sums up the rest, and the detail appears on hover.
Saved views
A saved view is a saved search that fills itself, continuously, according to its criteria — opening (ECO codes), period, result, time control, opponent, required tags, analyzed games only, color played… A few telling examples:
| View | Criteria |
|---|---|
| ”My Sicilian losses” | ECO B20–B99 · result: loss · color: White |
| ”This month’s blitz” | time control: blitz · period: last 30 days |
| ”To show the coach” | tag: coach · analyzed only |
Every newly imported game that matches the criteria appears there without a single gesture.
A view is used like any other place: you click it, you see its games. Its criteria are not copied into the toolbar — instead, a discreet line above the table carries the view’s name and spells its criteria out (“Caro-Kann · White · Blitz”), with an Edit… button that opens the full editor. A line to read, not a panel to dismiss.
Creating one from your filters
The most direct way starts from what’s already in front of you. Filter the library by hand — pick a month, restrict time controls or results, type in the search — then click Save this view in the toolbar.
A small popover opens, with a name already suggested from your filters: confirm, and the view appears in the sidebar. Nothing more. To go beyond what the toolbar exposes — ECO codes, opponent, color played — Edit the criteria… opens the full editor, on request only.
The toolbar filters
The filters narrow down whichever place you’re in. Switching places leaves them untouched.
| Control | What it sets |
|---|---|
| Month | ”All months”, or one archive loaded in a single block |
| Filters | Time controls (bullet, blitz, rapid, classical) · results (won, lost, drawn) · Analysis: all, analyzed, not analyzed · not imported only · in analysis or queued |
| Search | Live, by player or by opening |
The button carries a badge — Filters (3) — as soon as a filter is set: the reminder that prevents inexplicably empty lists.
Sorting has two entrances, whichever you prefer: clicking the column headers, as in any macOS table, or the Sort section of the View menu — Recently added, Game date, Player (A→Z). The same menu handles the columns shown and the row density.
When the list is empty
An empty list is never a mystery: the screen names the cause and offers the matching way out.
| The screen says | What it offers |
|---|---|
| No active online account | Connect an account, or look up a username for one session |
| This folder is empty · This tag isn’t on any game | The gesture that fixes it — drag games from the list onto the folder or the tag |
| No game loaded | Refresh, or Load more to go further back in time |
| No games match this view | Edit the criteria…, to loosen a view that’s too strict |
| No games match | Reset filters |
| Empty library | Import a PGN, or connect an account |
One detail that matters: Reset filters doesn’t move you. You stay exactly where you are, and you finally see what the place really holds. And if the list was narrowed from the statistics, a separate button — Clear the Statistics filter — lifts that particular constraint.
Training on a folder’s opening
A folder of games is more than storage: it’s a corpus. Right-click a folder — or a saved view — → Train on the opening merges the openings of all its games into a single tree, and starts a regular training session on it: at each position, find the move; the corpus’s most played move is the expected answer, another corpus move counts as an alternative (amber), a move outside the corpus as a miss. After each correct answer, the move’s statistics appear — “273 games, 61% for White”.
Two rules shape the tree: the merge stops around move ten, and a move seen only once is discarded — that’s the end of theory; an anecdote is not opening knowledge.
On 1,000 games by a master, it becomes a training mode of its own: answer like they did. And a saved view acts as the filter — “player: Bacrot, colour: Black” gives you a session on their Black repertoire only.