ChessView

pending

by Ali Mousavi

Render interactive chess boards from PGN/FEN notation with puzzles, arrows, and move navigation.

Updated 1mo agoMITDiscovered via Obsidian Unofficial Plugins
View on GitHub

♟ ChessView

An interactive chess board plugin for Obsidian. Render games from PGN, display positions from FEN, solve puzzles, draw arrows and circles, navigate moves with keyboard shortcuts, and analyze on Lichess or Chess.com — all inside your notes.

Features

  • PGN Games — Paste any PGN and get a fully navigable game viewer
  • FEN Positions — Display static or interactive positions from FEN strings
  • Puzzle Mode — Create solvable puzzles with hints and solution reveal
  • Move Annotations — NAG symbols (!, ?, !!, ??, !?, ?!) with colored overlays like Chess.com/Lichess
  • Arrows & Circles — Draw annotations on the board using markers or PGN comments
  • Comments — Display inline PGN comments with move highlighting
  • Themes — 7 built-in board themes + custom colors
  • Piece Sets — 20 piece set options
  • Keyboard Navigation — Arrow keys, Home/End, Space for autoplay
  • Analysis Links — One-click export to Lichess and Chess.com
  • Mobile Friendly — Responsive layout that adapts to any screen size
  • Dark Mode — Full support for Obsidian's dark theme

Screenshots

Game viewer

Game viewer

PGN game with move list, annotations, and navigation controls

Puzzle mode

Puzzle mode

Interactive puzzle with hint and solution buttons

Arrows and circles

Annotations

Board annotations using arrows and circle markers

Mobile view

Mobile

Responsive layout with move list below the board

Installation

From Obsidian Community Plugins (Recommended)

  1. Open SettingsCommunity PluginsBrowse
  2. Search for ChessView
  3. Click Install, then Enable

Manual Installation

  1. Download main.js, manifest.json, and styles.css from the latest release
  2. Create a folder .obsidian/plugins/chessview/ in your vault
  3. Copy the three files into that folder
  4. Restart Obsidian and enable the plugin in SettingsCommunity Plugins

Usage

Create a fenced code block with the language chessview. Place optional ChessView markers at the top, then your FEN or PGN below. You can optionally separate markers from chess data with a --- line.

Display a PGN game

```chessview
[Event "It (cat.17)"]
[White "Kasparov, Garry"]
[Black "Topalov, Veselin"]
[WhiteElo "2851"]
[BlackElo "2690"]
[Date "1999.??.??"]
[Result "1-0"]

1. e4 d6 2. d4 Nf6 3. Nc3 g6 4. Be3 Bg7 5. Qd2 c6 6. f3 b5 7. Nge2 Nbd7 8. Bh6
Bxh6 9. Qxh6 Bb7 10. a3 e5 11. O-O-O Qe7 12. Kb1 a6 13. Nc1 $6 O-O-O $2 14. Nb3 $6
exd4 15. Rxd4 c5 16. Rd1 Nb6 17. g3 $6 Kb8 $6 18. Na5 $6 Ba8 19. Bh3 d5 20. Qf4+
Ka7 21. Rhe1 d4 $1 22. Nd5 Nbxd5 23. exd5 Qd6 24. Rxd4 $1 cxd4 $2 25. Re7+ $3 Kb6 26.
Qxd4+ Kxa5 27. b4+ $1 Ka4 28. Qc3 $3 Qxd5 29. Ra7 $1 Bb7 30. Rxb7 $3 Qc4 31. Qxf6
Kxa3 $2 32. Qxa6+ $1 Kxb4 33. c3+ $1 Kxc3 34. Qa1+ $1 Kd2 35. Qb2+ $1 Kd1 36. Bf1 $3 Rd2
2. Rd7 $3 Rxd7 38. Bxc4 bxc4 39. Qxh8 Rd3 40. Qa8 c3 41. Qa4+ Ke1 42. f4 f5 43.
Kc1 Rd2 44. Qa7 1-0
```

Display a FEN position

```chessview
rnbqkbnr/pppppppp/8/8/4P3/8/PPPP1PPP/RNBQKBNR b KQkq - 0 1
```

Using the separator

The --- separator is optional. It lets you clearly separate markers from chess data. These two blocks are equivalent:

Without separator:

```chessview
[black]
[Event "My Game"]

1. e4 e5 2. Nf3 Nc6 3. Bb5
```

With separator:

```chessview
[black]
---
[Event "My Game"]

1. e4 e5 2. Nf3 Nc6 3. Bb5
```

Board orientation

```chessview
[black]
[Event "Sicilian Defense"]

1. e4 c5 2. Nf3 d6 3. d4 cxd4 4. Nxd4 Nf6 5. Nc3 a6
```
  • [white] — white at bottom (default)
  • [black] or [flip] — black at bottom

Static board (no interaction)

```chessview
[static]
---
rnbqkbnr/pppppppp/8/8/4P3/8/PPPP1PPP/RNBQKBNR b KQkq - 0 1
```

Non-editable board

Navigate moves but cannot make your own:

```chessview
[noeditable]
---
[Event "Italian Game"]

1. e4 e5 2. Nf3 Nc6 3. Bc4 Bc5
```

Arrows and circles

Using ChessView markers:

```chessview
[arrow: e2e4 green]
[arrow: d2d4 blue]
[circle: f3 red]
---
rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1
```

Using standard PGN comment annotations:

```chessview
1. e4 {[%cal Ge2e4,Rd7d5] [%csl Gd4,Re5]} e5 2. Nf3
```

Color codes: G = green, R = red, B = blue, Y = yellow, O = orange, P = purple

Move annotations (NAGs)

Inline annotations:

```chessview
1. e4! e5 2. Nf3!! Nc6? 3. Bb5?! a6!? 4. Ba4 Nf6??
```

PGN standard NAGs:

```chessview
1. e4 $1 e5 $2 2. Nf3 $3 Nc6 $4 3. Bb5 $5 a6 $6
```
SymbolNAGMeaning
!$1Good move
?$2Mistake
!!$3Brilliant move
??$4Blunder
!?$5Interesting move
?!$6Dubious move
X$9Miss

Comments

```chessview
1. e4 {The King's Pawn opening} e5 {A solid response}
2. Nf3 {Developing the knight toward the center} Nc6
```

Start at a specific position

Use [ply: N] to skip ahead N half-moves. In chess, a ply is one player's move — so 1.e4 is ply 1, 1…e5 is ply 2, 2.Nf3 is ply 3, and so on.

```chessview
[ply: 6]
---
[Event "Italian Game"]

1. e4 e5 2. Nf3 Nc6 3. Bc4 Bc5 4. c3 Nf6 5. d4 exd4
6. cxd4 Bb4+ 7. Nc3 Nxe4 8. O-O Bxc3 9. bxc3 d5
```

Puzzles

Add [puzzle] to enable puzzle mode. The position must include moves to solve:

```chessview
[puzzle]
[title: Scholar's Mate]
[rating: 1500]
---
[FEN "r1bqkb1r/pppp1ppp/2n2n2/4p2Q/2B1P3/8/PPPP1PPP/RNB1K1NR w KQkq - 4 4"]

1. Qxf7#
```

Puzzle with themes:

```chessview
[puzzle]
[rating: 2100]
[title: Find the winning combination]
[themes: sacrifice, fork]
---
[FEN "r2qr1k1/ppp2ppp/2np1n2/2b1p1B1/2B1P1b1/2NP1N2/PPP2PPP/R2QR1K1 w - - 0 1"]

1. Bxf7+ Kh8 2. Ng5
```

Puzzle without separator (also valid):

```chessview
[puzzle]
[title: Back rank mate]
[FEN "6k1/5ppp/8/8/8/8/5PPP/2R3K1 w - - 0 1"]

1. Rc8#
```

The board automatically orients to the solving side. Override with [white] or [black].

Marker reference

Display markers

These markers control how the board looks and behaves. They work in both game and puzzle mode.

MarkerDescription
[white]White at bottom (default)
[black] or [flip]Black at bottom
[static]No interaction, view only
[noeditable]Can navigate but cannot add moves
[ply: N]Start display at half-move N
[arrow: e2e4 color]Draw arrow (color optional)
[circle: e4 color]Draw circle (color optional)

Puzzle markers

These markers are only meaningful in puzzle mode.

MarkerDescription
[puzzle]Enable puzzle mode (required)
[rating: N]Puzzle difficulty rating
[title: text]Puzzle title
[themes: a, b, c]Puzzle themes (comma-separated)

Keyboard Shortcuts

KeyAction
Previous move
Next move
HomeFirst move
EndLast move
SpacePlay / Pause autoplay
FFlip board

Click on the board first to focus it for keyboard shortcuts.

Settings

Access via SettingsCommunity PluginsChessView → ⚙️

  • Board Theme — Brown, Blue, Green, Purple, Gray, Wood, Marble, or Custom
  • Board Size — Small (280px), Medium (360px), Large (480px), or Auto
  • Piece Set — 20 options including Cburnett (default), Merida, Alpha, California, and more
  • Notation Style — Figurine (♞f3) or Letter (Nf3)
  • Coordinates — Show/hide rank and file labels
  • Colors — Customize last move highlight, check highlight, arrows, circles
  • Animation Speed — 0–500ms
  • Autoplay Speed — 200–3000ms
  • Move List Position — Right of board or below
  • Analysis Links — Show/hide Lichess and Chess.com links
  • Default Orientation — White, Black, or Auto (based on side to move)
  • Puzzle Hints — Enable/disable hint button in puzzle mode

Compatibility

  • Obsidian — v1.1.9 and above
  • Platforms — Desktop (Windows, macOS, Linux) and Mobile (iOS, Android)
  • Themes — Works with both light and dark themes

Credits

License

MIT

For plugin developers

Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.