An excerpt from the repository, fetched Nov 13, 2026.
Read the project’s introduction
CLOG - The Common Lisp Omnificent GUI
David Botton david@botton.com
License BSD 3-Clause License
Learn to program Common Lisp and CLOG here - LEARN.md
The Common Lisp Omnificent GUI, CLOG for short, uses web technology to
produce graphical user interfaces for applications locally or remotely.
CLOG can take the place, or work alongside, most cross-platform GUI
frameworks and website frameworks. The CLOG package starts up the
connectivity to the browser or other websocket client (often a browser
embedded in a native application.)
CLOG - Reference Manual
STATUS: CLOG and CLOG Builder 2.3 released. CLOG API Stable 4 years
The CLOG Builder is in 100% portable Common Lisp using the CLOG Framework.
CLOG tech was invented (first in Ada) and has been running in commercial
production code and products since 2013 and in Common Lisp since 2022. CLOG
is used in commerical products, websites, and other opensource projects.
CLOG is being actively extended, the core API is stable and proven,
the CLOG Builder is rich in features and is a full featured general purpose
IDE for Common Lisp and web development (including support for working on
JavaScript, HTML and more) and includes a GUI Builder for the CLOG Framework.
Check the github discussion boards for the latest on the project and support.
Consider sponsoring work on CLOG at https://github.com/sponsors/rabbibotton
it really does help!
Some potential applications for CLOG:
Cross-platform GUIs and Reports
Secure websites and complex interactive web applications
Desktop business software (CLOG Runs native on Windows, Mac and Linux)
Mobile software (CLOG Runs native on Android and iOS)
Massive multiplayer online games
Monitoring software for embedded systems
A fun way to teach programming and advanced multi-tasking
parallel programming techniques. (CLOG is a parallel GUI)
And the list goes on
The key to CLOG is the relationship it forms with a browser window
or browser control compiled to native code. CLOG uses websockets
for communications and the browser to render a GUI that maintains
an active soft realtime connection. For most CLOG applications all
programming logic, events and decisions are done on the server
which can be local, or remote over the web.
CLOG is developed with ECL, CCL and SBCL, it is tested fairly
regulary on Linux, Windows, Android, Rasperry Pi, and Mac. It
is also know to work with the commercial Common Lisps as well.
CLOG works with QuickLisp and with OCICL distribution for builds.
To install Common Lisp with QuikLisp:
Install Common-Lisp for MacOS
Install Common-Lisp for Linux
Install Common-Lisp For Android (Termux)
Install Common-Lisp for Win64
For more advanced users:
Install and Using OCICL on all platforms
For those new to Common Lisp or just want to quickly try CLOG use ther
simple EZ standalone versions:
https://github.com/rabbibotton/clog-win64-ez/releases
https://github.com/rabbibotton/clog-linux-ez/releases
https://github.com/rabbibotton/clog-linux-arm-ez/releases
https://github.com/rabbibotton/clog-mac-ez/releases
Unzip, double click setup.bat or ./setup
Run builder.exe or ./builder
Update (almost daily :) use update.bat or ./update
As QuickLisp most frequently used - here are instructions:
CLOG v1 is in QuickLisp (ql:quickload :clog), therefore one should
add the UltraLisp distribution to use CLOG v2 (alternatively use git)
To add UltraLisp to QuickLisp:
(ql-dist:install-dist "http://dist.ultralisp.org/"
:prompt nil)
You still need to update often the UltraLisp and QuickLisp distros with:
(ql:update-all-dists)
If using the CLOG Builder Options -> Update CLOG Builder will do this for you.
Q U I C K S T A R T
To get started load CLOG and then can load and run the builder:
sbcl --eval "(ql:quickload :clog/tools)" --eval "(clog-tools:clog-builder)"
or if using OCICL see Install and Using OCICL on all platforms
or if using emacs M-x slime then (ql:quickload :clog/tools)(clog-tools:clog-builder)
In a REPL in the builder Tools -> CLOG Builder REPL
(can also do all in the slime/sly REPL in emacs)
CL-USER> (clog:run-tutorial 1)
Tips for Windows WSL linux Install "sudo apt install xdg-utils wslu" to
install xdg-open so that run-tutorial uses the windows browser. Also create
or add to your %UserProfile% (home dir) a file .wslconfig with
[wsl2]
networkingMode=mirrored
To see where the source, tutorial and demo files are:
CL-USER> (clog:clog-install-dir)
Also in CLOG Builder use HELP -> Tutorials Dir
You can the run the demos with:
CL-USER> (clog:run-demo 1)
You can also open a "clog-repl" browser window to play
from the common-lisp repl:
CL-USER> (in-package clog-user)
CLOG-USER> (clog-repl)
CLOG-USER> (setf (background-color *body*) "beige")
CLOG-USER> (create-div *body* :content "Hello World!")
The clog-repl URL is http://127.0.0.1:8080/repl *body* will always refer
to the last access of that URL.
To open the CLOG manual (or in the builder it is under Help):
CL-USER> (clog:open-manual)
Work your way through the tutorials. You will see how quick and easy it is
to be a CLOGer.
F i r s t C L O G A p p
** 1 Smallest CLOG App - in a REPL
(ql:quickload :clog)
(in-package :clog-user)
(initialize (lambda (body) (create-div body :content "Hello World")))
Open browser to http://127.0.0.1:8080/
Or launch with (open-browser)
** 2 Minimal CLOG App - Quick Lisp
(in common-lisp or another asdf reachable location)
cd ~/common-lisp
mkdir agui
cd agui
Create a project file agui.asd
(asdf:defsystem #:agui
:description "Hello World"
:author "some@one.com"
:license "BSD"
:version "0.0.0"
:serial t
:depends-on (#:clog)
:components ((:file "agui")))
Create the agui.lisp file
(defpackage #:agui
(:use #:cl #:clog)
(:export start-app))
(in-package :agui)
(defun on-new-window (body)
(create-div body :content "Hello World"))
(defun start-app ()
(initialize 'on-new-window)
(open-browser))
** 3 Minimal CLOG App - OCICL - Best Method
To install ocicl -
https://docs.google.com/
Read the full README on GitHub