Metadata-Version: 2.4
Name: difflicious
Version: 0.12.0
Summary: A sleek web-based git diff visualization tool for developers
Project-URL: Homepage, https://github.com/insipid/difflicious
Project-URL: Repository, https://github.com/insipid/difflicious
Project-URL: Issues, https://github.com/insipid/difflicious/issues
Project-URL: Documentation, https://github.com/insipid/difflicious#readme
Project-URL: Changelog, https://github.com/insipid/difflicious/blob/main/CHANGELOG.md
Author: Drew
License: MIT
License-File: LICENSE
Keywords: development,diff,git,visualization,web
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Web Environment
Classifier: Framework :: Flask
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Version Control :: Git
Classifier: Topic :: Text Processing :: General
Requires-Python: >=3.9
Requires-Dist: click<9.0,>=8.0.0
Requires-Dist: flask<3.0,>=2.3.0
Requires-Dist: gitpython<4.0,>=3.1.40
Requires-Dist: jinja-partials<1.0,>=0.2.0
Requires-Dist: markupsafe<3.0,>=2.1.0
Requires-Dist: pygments<3.0,>=2.17.0
Requires-Dist: unidiff<1.0,>=0.7.5
Requires-Dist: waitress>=3.0.0
Requires-Dist: watchdog<4.0,>=3.0.0
Description-Content-Type: text/markdown

# Difflicious

[![PyPI version](https://img.shields.io/pypi/v/difflicious.svg)](https://pypi.org/project/difflicious/)
[![Python versions](https://img.shields.io/pypi/pyversions/difflicious.svg)](https://pypi.org/project/difflicious/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

A local web application for reviewing git diffs. Run it in your working directory and view your changes in a browser with side-by-side visualization, syntax highlighting, and context expansion.

## Screenshots

| Light mode | Dark mode |
|------------|-----------|
| ![Light mode](docs/screenshots/light.png) | ![Dark mode](docs/screenshots/dark.png) |

> To regenerate: `uv run python scripts/screenshot.py`
> Prerequisites: `uv add --dev playwright && uv run playwright install chromium`

## Installation

```bash
pip install difflicious
difflicious
```

Open `http://localhost:5000` in your browser.

See [INSTALLATION.md](INSTALLATION.md) for Docker, source installation, and full configuration options.

## Features

- 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

## Configuration

Set environment variables to configure behavior:

| Variable | Default | Description |
|----------|---------|-------------|
| `DIFFLICIOUS_PORT` | `5000` | Port to listen on |
| `DIFFLICIOUS_HOST` | `127.0.0.1` | Host to bind to |
| `DIFFLICIOUS_FONT` | `jetbrains-mono` | Code font (see `--list-fonts`) |
| `DIFFLICIOUS_DISABLE_GOOGLE_FONTS` | `false` | Use system fonts only |
| `DIFFLICIOUS_AUTO_RELOAD` | `true` | Auto-reload on file changes |
| `DIFFLICIOUS_DEBUG` | `false` | Verbose debug logging |

See [INSTALLATION.md](INSTALLATION.md) for full configuration details.

## Technology

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

## Documentation

- [INSTALLATION.md](INSTALLATION.md) — installation options, configuration, environment variables
- [DEVELOPING.md](DEVELOPING.md) — development setup, testing, code conventions
- [CHANGELOG.md](CHANGELOG.md) — version history
- [docs/CSS-STYLE-GUIDE.md](docs/CSS-STYLE-GUIDE.md) — CSS conventions and design tokens
- [docs/TROUBLESHOOTING.md](docs/TROUBLESHOOTING.md) — common issues

## Contributing

See [CONTRIBUTING.md](CONTRIBUTING.md).

## License

MIT License — see [LICENSE](LICENSE) file for details.
