Skip to content

Instantly share code, notes, and snippets.

@justinmoon
Created February 26, 2026 03:20
Show Gist options
  • Select an option

  • Save justinmoon/95b49eedd86ad33009757534f9c3b971 to your computer and use it in GitHub Desktop.

Select an option

Save justinmoon/95b49eedd86ad33009757534f9c3b971 to your computer and use it in GitHub Desktop.
Fossil VCS Feature Overview

Fossil VCS Feature Overview

Beyond the basics of version control and issue/ticket tracking, Fossil packs a surprising number of features into a single binary.

Built-in Real-time Chat

There's a full chatroom baked into the binary. It uses long-polling for real-time updates (works even behind CGI), supports Markdown, file/image attachments, and audio notification sounds (WAV files compiled into the binary). Messages are ephemeral -- they auto-delete after a configurable period (default 7 days) and never sync between repos. There's even a bot that can announce timeline events (commits, ticket changes) into chat.

Discussion Forum

A full threaded forum with hierarchical replies, post editing with revision history, moderator approval workflow, and thread closing/reopening. Forum posts are versioned artifacts that sync across clones. Designed as a mailing-list replacement.

Wiki

A full wiki engine with revision history, supporting both Fossil's native wiki markup and Markdown. Special wiki pages named branch/BRANCHNAME or checkin/HASH automatically attach notes to branches or commits. Any .md, .wiki, or .html file in the repo is also servable as rendered documentation via /doc/ URLs.

Technotes (Blog/Announcements)

Wiki-like documents pinned to a specific point in time that show up on the timeline. Used for blog posts, milestones, release notes, or announcements. Fully versioned artifacts.

Pikchr Diagram Language

A complete PIC-like diagram markup language that compiles to SVG, usable inline in wiki, forum, tickets, technotes, and check-in comments. There's even a /pikchrshow interactive playground page with client-side WebAssembly rendering for live preview.

Built-in Web Server with Rich UI

fossil ui launches a local web server and opens your browser. fossil server serves over the network. The entire fossil-scm.org website is just a running Fossil instance. Supports direct TLS (no reverse proxy needed), CGI, SCGI, and SSH tunneling. There's a full skinning/theming system with 12 built-in themes, a sitemap, timeline graph visualization with configurable colors/shapes, and even in-browser file editing with commit capability.

Email Alert/Notification System

Users can subscribe to check-ins, forum posts, ticket changes, wiki edits, and announcements. Supports instant or daily digest delivery. Includes a full SMTP client implementation with DNS MX record lookup for direct mail delivery without a relay.

JSON REST API

A comprehensive JSON API (15+ endpoint groups) providing programmatic access to virtually everything: timeline, branches, tags, diffs, wiki, tickets, users, artifacts, and more. Works via both HTTP and CLI.

FUSE Filesystem

Mount the entire repository history as a filesystem. Browse any check-in's files at DIRECTORY/checkins/VERSION/PATH. Linux only.

Anti-Bot/Robot Defense

A sophisticated proof-of-work cookie system to prevent botnets from consuming server resources, plus a /honeypot endpoint to trap bots.

Other Notable Features

  • TH1 Scripting -- a built-in Tcl-like language for customizing skins, ticket pages, and hooking into commands/web pages
  • CGI Extensions -- mount external CGI programs under /ext that inherit Fossil's auth system
  • Bundle files -- offline artifact exchange for sneakernet transfer
  • Unversioned files -- content that syncs between repos but only keeps the latest version (no history), for build artifacts/downloads
  • Patch command -- transfer uncommitted working changes between machines without going through the repo
  • Login Groups -- shared authentication across multiple Fossil repositories
  • Interwiki links -- cross-repository linking with Code:PageName syntax
  • Full-text search across all content types (commits, wiki, tickets, forum, technotes)
  • Encrypted repositories via SQLite Encryption Extension
  • Interactive shell (fossil shell) -- a REPL for fossil commands
  • Embedded SQLite shell (fossil sql) -- drop directly into the repo database
  • Security audit page -- automated vulnerability scanning of your configuration
  • RSS feeds -- filterable by content type
  • "This Day in History" page -- what happened on this calendar date in past years
  • Backoffice -- on-demand background task processing (email queues, hooks, auto-sync) without needing a daemon

The whole thing is a single ~5MB self-contained binary backed by a single SQLite database file. It's essentially an entire project management platform in one executable.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment