gnugo.el (et al)

(zz.sgf screenshot)

To donate to the gnugo.el author, click here:



For other ways to donate, see patronage.


The GNU project includes a program to play the game of Go named (unsurprisingly) GNU Go.  It provides various user interfaces, graphical and textual, and since version 2.6 (released February 2000), has included an Emacs mode I wrote and contributed, so that people can "play GNU Go in a buffer".

This Emacs Lisp code co-evolved with GNU Go over the years, achieving high stability, good portability and acceptable performance, with a modest but cohesive feature set. 

The last "old" version was 2.2.14 (released March 2008).


The official Emacs Lisp interface to GNU Go -- gnugo.el (et al) -- is now part of ELPA (the GNU Emacs Lisp Package Archive).  Unbundling gnugo.el (et al) from GNU Go allows for faster turnaround and more public review and testing by interested (and adventurous :-D) people.

Latest release: 3.1.2 (2021-12-19)

Here are a couple screenshots that highlight features of release 3.1.0.

(‘C-c C-p’ screenshot)

When you type ‘C-c C-p’ (gnugo-describe-internal-properties), Emacs now displays in the output buffer property names and values in the first column (flush left) with a blank line preceding the property name. 

(zz-seki.sgf screenshot)

At the end of a game, Emacs indicates seki stones.  Here we see 65 seki stones altogether (17 black, 48 white), as well as 8 dead stones (all white).  When you type ‘C-u F’ (gnugo-display-final-score), this information is also recorded in the gametree, along with black and white territory. 

New user?  See also newbie-setup.el (to be loaded from ~/.emacs or ~/.emacs.d/init.el). 


Aside from the current development, there are still some code enhancement opportunities, i.e., infelicities to address, features to add, fit and trim to finesse, etc. 

If you'd like to encourage me on these (or related) endeavors, please navigate to the top of the page and click in good conscience. 

Copyright (C) 2014-2022 Thien-Thi Nguyen