Works with Any Text Editor - XLog doesn’t include a built-in editor. Instead, it works with your favorite text editor (Vim, Emacs, VS Code, Sublime, etc.). You edit markdown files locally, and XLog provides live preview in your browser.
docs
Installation| modified | Saturday 9 May 2026 |
|---|
The fastest way to get started:
1go install github.com/emad-elsaid/xlog/cmd/xlog@latest
Then create your first note:
1mkdir my-notes
2cd my-notes
3echo "# Hello World" > index.md
4xlog
5# => Browse to http://localhost:3000
GitHub releases include binaries for Windows, Linux, and macOS across multiple architectures.
Download the latest version: https://github.com/emad-elsaid…
1git clone git@github.com:emad-elsaid/xlog.git
2cd xlog
3go run ./cmd/xlog # to run it
4go install ./cmd/xlog # to install it to Go bin.
Xlog is published to AUR: https://aur.archlinux.org/pack…
Using yay:
1yay -S xlog-git
Releases are packaged as docker images and pushed to GitHub Container Registry:
1docker pull ghcr.io/emad-elsaid/xlog:latest
2docker run -p 3000:3000 -v ~/.xlog:/files ghcr.io/emad-elsaid/xlog:latest
1git clone git@github.com:emad-elsaid/xlog.git
2cd xlog
3docker-compose build
4docker-compose run
After installation, configure your preferred text editor. XLog will use the editor specified in the -editor flag or fall back to your $EDITOR environment variable.
Set VS Code as your default editor:
1export EDITOR="code"
2xlog -editor "code"
Or in your shell config (~/.bashrc, ~/.zshrc):
1export EDITOR="code --wait"
1export EDITOR="vim"
1export EDITOR="emacs"
1export EDITOR="subl -w"
1export EDITOR="nano"
After installation, verify XLog is working:
1# Check version
2xlog -version
3
4# Start server (creates index.md if missing)
5xlog
6
7# Open browser to http://localhost:3000
You should see XLog’s web interface. Click “Edit” on any page to open it in your configured text editor.
If XLog can’t find your editor:
Set the EDITOR environment variable:
1export EDITOR="vim" # or your preferred editor
Or specify it when running XLog:
1xlog -editor vim
Make sure the editor is in your PATH:
1which vim # should show the editor path
Change the bind address:
1xlog -bind :3001 # Use port 3001 instead
If installing with Go:
1# Ensure Go bin is in your PATH
2export PATH=$PATH:$(go env GOPATH)/bin
To upgrade to the latest version:
1go install github.com/emad-elsaid/xlog/cmd/xlog@latest
Or download the latest binary from the releases page.
See Upgrading for version-specific migration notes.