Skip to main content

Difflicious

Difflicious

A local diff viewer for comparing your working directory to any branch, not just HEAD.
No forge, no push — just run it in your repo.


Screenshots

Light mode Dark mode

Usage

The quickest way — no install required:

uvx difflicious

Or with Docker:

docker run -it --rm -v "$PWD:/workspace" -p 5000:5000 insipid/difflicious

Then open http://localhost:5000 in your browser.

Installation

For regular use, install from PyPI:

pip install difflicious
difflicious

See INSTALLATION.md for Docker, source installation, and full configuration options.

If you prefer not to install globally, add one of these to your shell profile:

# via uvx
difflicious() { uvx difflicious "$@"; }

# via Docker (uses DIFFLICIOUS_PORT if set, otherwise 5000)
difflicious() { docker run -it --rm -v "$PWD:/workspace" -p "${DIFFLICIOUS_PORT:-5000}:${DIFFLICIOUS_PORT:-5000}" insipid/difflicious "$@"; }

Features

Like your favourite forge, and then some:

  • Side-by-side diff view with line numbering
  • Syntax highlighting for 100+ languages (via Pygments)
  • Context expansion to see more surrounding code
  • Search and filter across files
  • Light and dark themes
  • Live auto-reload on file changes (SSE)
  • Font customization via DIFFLICIOUS_FONT environment variable
  • Compare against any branch — defaults to remote HEAD, configurable per session
  • Toggle staged and unstaged changes independently
  • UI state is persistent — collapsed files, hidden files, and view settings are remembered in the browser across sessions

Configuration

All options can be set via environment variable or CLI flag:

Environment variable CLI flag Default Description
DIFFLICIOUS_PORT --port, -p 5000 Port to listen on
DIFFLICIOUS_HOST --host, -h 127.0.0.1 Host to bind to
DIFFLICIOUS_FONT — jetbrains-mono Code font (--list-fonts to browse)
DIFFLICIOUS_DISABLE_GOOGLE_FONTS — false Use system fonts only
DIFFLICIOUS_AUTO_RELOAD --auto-reload / --no-auto-reload true Auto-reload on file changes
DIFFLICIOUS_WATCH_DEBOUNCE --watch-debounce 1.0 File watcher debounce delay (seconds)
DIFFLICIOUS_DEBUG --debug false Verbose debug logging

See INSTALLATION.md for full configuration details.

Technology

  • Backend: Flask, GitPython, Pygments, unidiff
  • Frontend: Alpine.js, Tailwind CSS
  • Real-time: Server-Sent Events

Documentation

Contributing

See CONTRIBUTING.md.


PyPI version Python versions License: MIT

Metadata

Release files for difflicious 0.15.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for difflicious 0.15.0
File Size Uploaded
difflicious-0.15.0.tar.gz 3.4 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for difflicious 0.15.0
File Interpreter ABI Platform
difflicious-0.15.0-py3-none-any.whl Python 3 none any Details

Total release size: 3.5 MB

Release files / difflicious-0.15.0.tar.gz

Download URL difflicious-0.15.0.tar.gz
Size 3.4 MB
Tags Source
SHA-256 checksum
How to use checksums
0e6a5f902e26cbbd4ce97b39d9a1aab4b55a07372de613e02179e0942fcd08ea
BLAKE2b-256 checksum
How to use checksums
66555f4dc2f4d0c5c937d070f60041ee54d0a5d73c921e514df82301c387a3d3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 25, 2026.

Transparency log

Release files / difflicious-0.15.0-py3-none-any.whl

Download URL difflicious-0.15.0-py3-none-any.whl
Size 142.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
dccd260ecd55a4d67562229989fa55bcce0cf6506a7c9f42e30b57c5c4d6d812
BLAKE2b-256 checksum
How to use checksums
3195da62e24fd8e3080d9342cc8ba2abf6d6ced86667b5497369cc93cb6f2c03
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 25, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.15.0 This release

2 release files

0.14.0

2 release files

0.13.0

2 release files

0.12.0

2 release files

0.11.0

2 release files

0.10.0

2 release files

0.9.2

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page