moise29 downloadsImport a PGN, annotate lines with notes, arrows and move classifications, then drill them back with hints and a report of what you got wrong.
A chess repertoire helper, PGN viewer/editor and opening trainer for Obsidian.
Chess Repertoire is a fork of Obsidian Chess Study by @chrislicodes.

The graduation-cap button starts a drill. Pick a colour, and the board rewinds to the repertoire's starting position: you play your side, the repertoire plays the other. A move the repertoire doesn't know is refused and drawn as a red arrow.
Your own moves must follow the line you wrote down. Your opponent's replies are drawn from everything the repertoire records for that position, weighted toward lines you've gotten wrong before and lines you've never drilled. So if you have any variations, the opponent might play any variations or the mainline.
A line you'd rather keep than rehearse can be excluded from drills without deleting it, from any move's right-click menu.

Stuck? Hints escalate one press at a time: your note on the move, then the piece to move, then the arrow to play. Nothing a hint shows, and nothing a session does, ever touches your repertoire - it plays out on a side history that only tracks how you're doing.
You can do as many arrows as you like during a repertoire, they will not be saved in the original board.
When the line runs out, you get a report: moves played, mistakes made, and where each mistake was.

The network button opens the repertoire as a diagram - a trunk, and a card at every point your opponent gets to choose. It's the shape of a repertoire made visible, instead of a move list you have to scroll to make sense of.

Each card shows its moves, their labels, and a coloured edge for how well the line is holding up - drilled clean, shaky, never drilled, excluded, or missing a reply entirely. That last one is the useful one: it's a hole in the repertoire, sitting right next to lines that run fifteen moves deep.
Lines that transpose into each other are marked with a small ⇄ that jumps you between them, so a repertoire built on move orders doesn't hide its overlaps.
Drag to pan, scroll to zoom, click a move to jump the board there and close the map.
The map can also be exported as an Obsidian canvas: the same cards, laid out the same way, that you can rearrange and scribble over freely.

The download button opens the repertoire as text, in either of two formats, with a button to copy whichever is showing to the clipboard.

PGN is the whole repertoire, not just the line you are standing on: variations come out nested in brackets, your notes as {} comments, and your classifications as the standard glyphs - $1, $3, $4 and so on. It is the exact counterpart of the importer, so a repertoire exported and pasted back in comes out the same repertoire. A repertoire that starts from a position rather than the standard array carries a [FEN] header, so it opens where it should.
FEN is the position on the board right now, for pasting into an engine or another board.
Two labels are chess.com's own invention rather than standard notation - Excellent and Good - and have no glyph to be written as, so they are left off the move rather than guessed at.
1-7, shown as a badge on the move and the board.Chess Repertoire is not in the community plugin store yet, so install it by hand:
main.js, styles.css and manifest.json from the latest release.chess-repertoire in <vault>/.obsidian/plugins/.Upgrading from the original Chess Study? Copy your old plugin's
storagefolder into<vault>/.obsidian/plugins/chess-repertoire/before enabling it, or your existing repertoires won't be found. Chess Repertoire moves what it finds there into the vault the first time it loads - see Where repertoires are stored.
Put your cursor where you want the board and run Chess Repertoire: Insert FEN/PGN-Editor at cursor position (Use the Command palette (Ctrl+P)) A modal lets you paste a PGN, paste a FEN, or start a fresh game.
To combine several repertoires in the same note into one, run Chess Repertoire: Merge every chess repertoire in this note into one with your cursor where you want the result. The first repertoire becomes the trunk; the others' lines are added as variations off it, and their notes fill in gaps rather than overwrite anything. This is done because I like to have the mainline first and the subvariations separated, but I also like to have a single board with all the variations together.
Every setting has a default in Settings → Community plugins → Chess Repertoire, and can be overridden per repertoire by adding a line to the code block:
```chessRepertoire
chessRepertoireId: V1StGXR8_Z5jdHi6B-myT
boardColor: green
boardOrientation: black
showCoordinates: false
```
| Setting | Values | Description |
|---|---|---|
chessRepertoireId |
valid nanoid | Which stored repertoire to render. Inserted by the command. |
boardOrientation |
white | black |
Which way round the board starts |
boardColor |
blue | blue-soft | green | brown |
Board theme |
showCoordinates |
true | false |
Show the a-h / 1-8 labels |
coordinateColor |
hex colour, e.g. "#d08770" |
Colour of those labels. Leave unset to follow the theme. |
boardSize |
number of pixels | Widget width. Written automatically when you drag to resize. |
viewComments |
true | false |
Whether the notes panel starts open |
Repertoires and their drill history are .json files in your vault, one per repertoire, named by the id in the code block. Repertoire folder in the plugin settings decides which folder; leave it empty for Chess Repertoires in the root of the vault. It is the one setting that cannot be overridden per repertoire.
Changing it moves the files already written into the new folder. A file whose name is already taken in the destination is left where it is rather than overwritten, and anything that could not be moved stays readable in the old folder.
Two things worth knowing:
.json as an unsupported extension, so these files only sync with Settings → Sync → All other file types turned on. Without it they are still covered by version history and file recovery, but they will not reach your other machines.Click a repertoire to give it the keys; click away to give them back. Works in both Reading view and Live Preview, Vim mode included.
| Key | Action |
|---|---|
← / → |
Previous / next move |
↑ / ↓ |
First / last move |
1-7 |
Classify the current move |
0 |
Clear the classification |
Chess Repertoire is a fork of chrislicodes/obsidian-chess-study, with thanks to @chrislicodes for the original and to @latenitecoding for the FEN support it inherited.
Chess Repertoire is licensed under GPL-3.0-or-later, the same licence as the original. See LICENSE.