MCPcopy Index your code
hub / github.com/emad-elsaid/xlog

github.com/emad-elsaid/xlog @v2.1.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v2.1.0 ↗ · + Follow
4,804 symbols 22,408 edges 313 files 1,255 documented · 26% updated 1d agov1.7.12 · 2026-05-07★ 2251 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

XLog

Fast, Git-native framework for building knowledge bases

Go Report Card GoDoc

XLog is a static site generator optimized for digital gardens and personal wikis. Written in Go with 37 built-in extensions for backlinks, hashtags, search, and more.

Features

  • Fast - Written in Go, renders large knowledge bases in seconds
  • Live Preview - Embedded web server with hot-reload shows changes instantly
  • Interconnected - Automatic backlinks and bidirectional page relationships
  • Extensible - 37 built-in extensions for photos, todos, search, and more
  • Git-Native - Filesystem-based, works with any text editor and version control
  • Flexible Output - Serve locally or generate static sites for deployment

Quick Start

go install github.com/emad-elsaid/xlog/cmd/xlog@latest
mkdir my-notes
cd my-notes
echo "# Hello World" > index.md
xlog
# => Browse to http://localhost:3000

Use Cases

  • Personal Wiki - Interconnected notes with automatic backlinks
  • Research Notes - Organize papers, citations, and ideas
  • Documentation - Team knowledge bases and project docs
  • Learning Journal - Study notes with hashtags and search
  • Digital Garden - Public or private knowledge sharing

How It Works

  1. Write - Create markdown files in any text editor (Vim, Emacs, VS Code)
  2. Preview - Run xlog to start the live preview server with hot-reload
  3. Enhance - XLog automatically adds backlinks, hashtags, and search
  4. Deploy - Generate static site with xlog -build output/

XLog runs a web server that watches your markdown files. When you click "Edit" in the browser, it opens the file in your configured editor. Save the file, and the browser automatically refreshes to show your changes.

Why XLog?

vs Other Static Generators: XLog adds knowledge-base features (backlinks, hashtags, search) out of the box

vs Cloud Tools: XLog is free, self-hosted, privacy-focused, and works offline

vs Obsidian Publish: XLog is open source, customizable via extensions, and Git-native

vs Notion: XLog is local-first, markdown-based, and integrates with your existing workflow

Documentation

Extensions (37 Built-in)

XLog includes 37 extensions that enhance your knowledge base:

Knowledge Base: - Backlinks - Automatic bidirectional links between pages - Hashtags - Tag pages and browse by topic - Search - Full-text search across all notes - Recent - Activity tracking for recently modified pages

Content: - Photos - EXIF data extraction for photo albums - Todos - Task lists with checkboxes - Mermaid - Diagrams and flowcharts - MathJax - Mathematical notation

And 29 more... View all extensions

Shell Completion

# Bash
eval "$(xlog -completion bash)"

# Zsh
eval "$(xlog -completion zsh)"

# Fish
xlog -completion fish | source

Contributing

  • Create new extensions
  • Improve the core codebase
  • Report issues or suggest features

See CONTRIBUTING.md for details.

Vendored Packages

XLog vendors some dependencies for more control and stability. We thank the original authors:

License

XLog is released under the MIT license

Extension points exported contracts — how you extend this code

Core symbols most depended-on inside this repo

Shape

Function 2,300
Method 2,004
Struct 370
Interface 47
Class 36
TypeAlias 32
FuncType 15

Languages

Go80%
TypeScript20%
C1%

Modules by API surface

extensions/mathjax/js/tex-chtml-full.js763 symbols
public/htmx.min.js188 symbols
markdown/parser/parser.go144 symbols
extensions/hashtags/hashtags_test.go103 symbols
markdown/text/reader.go77 symbols
markdown/util/util.go76 symbols
markdown/renderer/html/html_test.go72 symbols
markdown/highlighting/highlighting.go71 symbols
markdown/ast/inline.go71 symbols
markdown/ast/ast.go71 symbols
markdown/renderer/html/html.go70 symbols
markdown/ast/block.go70 symbols

For agents

$ claude mcp add xlog \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page