Sign inSign up

insipid/difflicious

By insipid

•Updated 2 months ago

Image
0

2.6K

insipid/difflicious repository overview

⁠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 variableCLI flagDefaultDescription
DIFFLICIOUS_PORT--port, -p5000Port to listen on
DIFFLICIOUS_HOST--host, -h127.0.0.1Host to bind to
DIFFLICIOUS_FONT—jetbrains-monoCode font (--list-fonts to browse)
DIFFLICIOUS_DISABLE_GOOGLE_FONTS—falseUse system fonts only
DIFFLICIOUS_AUTO_RELOAD--auto-reload / --no-auto-reloadtrueAuto-reload on file changes
DIFFLICIOUS_WATCH_DEBOUNCE--watch-debounce1.0File watcher debounce delay (seconds)
DIFFLICIOUS_DEBUG--debugfalseVerbose 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

Tag summary

Content type

Image

Digest

sha256:bb89c53db…

Size

41.5 MB

Last updated

2 months ago

docker pull insipid/difflicious