https://github.com/wastelandsys/nodiffier
Lightweight Linux terminal tool for safely applying AI-generated unified diff patches using git apply.
https://github.com/wastelandsys/nodiffier
ai-tools automation chatgpt cli codex developer-tools diff git git-apply kali-linux linux linux-tools patch productivity python raspberry-pi terminal terminal-tool unified-diff workflow
Last synced: 3 days ago
JSON representation
Lightweight Linux terminal tool for safely applying AI-generated unified diff patches using git apply.
- Host: GitHub
- URL: https://github.com/wastelandsys/nodiffier
- Owner: WastelandSYS
- License: gpl-3.0
- Created: 2026-05-12T22:25:32.000Z (20 days ago)
- Default Branch: main
- Last Pushed: 2026-05-29T22:37:55.000Z (3 days ago)
- Last Synced: 2026-05-29T23:14:46.501Z (3 days ago)
- Topics: ai-tools, automation, chatgpt, cli, codex, developer-tools, diff, git, git-apply, kali-linux, linux, linux-tools, patch, productivity, python, raspberry-pi, terminal, terminal-tool, unified-diff, workflow
- Language: Python
- Homepage:
- Size: 81.1 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README

# noDIFFier
An AI-assisted patch workflow tool for Linux terminals. noDIFFier validates and applies Codex-generated unified diffs directly to your project, then immediately waits for the next patch so development never has to stop.
---
# FEATURES
### v0.5.0 Workflow Improvements
- Boxed session summary with patches applied, files modified, backups created, failures, validation failures, and session duration
- Lightweight patch history logging under `.nodiffier-history/` after every successful patch
- Rollback helpers for listing backups, restoring a chosen snapshot, restoring the newest backup, and interactive rollback
- Dry run mode that validates patch safety, checks `git apply --check`, lists affected files, and makes no changes
- Patch preview prompts that show only affected file paths before applying changes
- Dirty Git worktree warning with `--force` / `--allow-dirty` overrides
- Git root detection when launched from a repository subdirectory, while preserving patch-file paths relative to the launch directory
- Batch patch mode for applying multiple `.patch` / `.diff` files sequentially with per-patch results
### AI Patch Workflow
- Paste Codex-generated unified diffs directly into the terminal
- Apply multiple patches continuously within a single session
- No manual patch files required
- No manual file editing required
- Designed specifically for AI-assisted development workflows
### Safe Patch Application
- Validates patches using `git apply --check`
- Blocks unsafe paths, absolute paths, and directory traversal attempts
- Creates automatic backups before modifying files
- Warns before applying patches over uncommitted Git changes
- Shows a concise patch preview before changes are applied
- Supports dry runs, rollback from backups, and patch history logging
- Clear success and failure reporting
- Detects the nearest Git repository root while still allowing current-directory mode
### Linux Terminal Tooling
- Applies unified diffs from pasted terminal input or patch files
- Works directly in your current directory with no hardcoded target folder
- Provides both `noDIFFier` and `nodiffier` global launcher commands
- Installer avoids `sudo pip` and Python package mutation
- Designed for Linux environments including Raspberry Pi OS, Kali, Debian, and Ubuntu
- Minimal footprint: one Python tool script plus install/uninstall scripts
---
# SCREENSHOTS

---
# INSTALLATION
```bash
git clone https://github.com/WastelandSYS/noDIFFier.git
cd noDIFFier
chmod +x install.sh nodiffier.py
sudo ./install.sh
```
Launch with:
```bash
nodiffier
```
---
# UNINSTALLATION
```bash
cd noDIFFier
chmod +x uninstall.sh
sudo ./uninstall.sh
```
Optional manual cleanup:
```bash
sudo rm -f /usr/local/bin/nodiffier
sudo rm -f /usr/local/bin/noDIFFier
sudo rm -rf /usr/local/share/nodiffier
```
The uninstaller removes the global `nodiffier` and `noDIFFier` shortcuts and the installed `/usr/local/share/nodiffier` directory.
---
# USAGE
Default launch:
```bash
nodiffier
```
Paste mode (from Codex chat diff):
```bash
cd /path/to/your/project
nodiffier
# paste full diff, then press CTRL+D
```
Primary AI-assisted workflow:
```text
cd /path/to/your/project
nodiffier
paste Codex-generated patch
CTRL+D
patch is validated and applied
paste next patch
CTRL+D
patch is validated and applied
```
Continue pasting patches until the development task is complete. noDIFFier keeps the session open after each patch, so you can apply a sequence of AI-generated changes without restarting the application.
File mode examples:
```bash
cd /path/to/your/project
nodiffier changes.patch
nodiffier changes.diff
nodiffier *.patch
```
Dry run mode validates a patch and lists affected files without changing anything:
```bash
nodiffier --dry-run changes.patch
```
Rollback helpers use the existing `.nodiffier-backups/` snapshots and never delete backup history automatically:
```bash
nodiffier --list-backups
nodiffier --rollback-last
nodiffier --rollback
nodiffier --restore-backup 20260529T120000Z
```
Workflow safety prompts can be bypassed for trusted automation:
```bash
nodiffier --yes changes.patch
nodiffier --force changes.patch
nodiffier --allow-dirty changes.patch
```
Successful patch applications are logged under `.nodiffier-history/` with the timestamp, patch content, affected files, and result status for a lightweight audit trail.
Alias command:
```bash
noDIFFier
```
Version check:
```bash
nodiffier --version
```
# COMPATIBILITY
Designed primarily for Linux systems.
Tested/targeted on:
- Raspberry Pi OS
- Kali Linux
- Debian
- Ubuntu
Notes:
- Requires `git` for patch validation and application.
- Uses system Python 3 without installing global Python packages.
- Avoids `externally-managed-environment` issues by not using `sudo pip`.
- Defaults to the nearest Git repository root when launched from a subdirectory, unless you decline the prompt.
---
# WHY NODIFFIER?
AI coding assistants can generate useful unified diffs, but applying each patch manually adds repetitive work to the development loop.
Traditional workflow:
```text
Copy patch
Create patch file
Run patch command
Verify changes
Repeat
```
noDIFFier workflow:
```text
Paste patch
CTRL+D
Patch applied
Paste next patch
CTRL+D
Patch applied
Paste next patch
CTRL+D
Patch applied
```
The goal is to remove friction from AI-assisted development so developers can focus on building instead of managing patch files and repeating terminal commands. noDIFFier turns patch application into a continuous workflow: launch it once inside the project directory, paste each Codex-generated diff, press `CTRL+D`, review the result, and continue with the next patch.
The tool focuses on:
- rapid AI-generated patch application
- safe patch preflight checks
- minimal setup complexity
- Linux-friendly installation
- predictable current-directory behavior
- practical Codex and AI coding assistant workflows
---
# LICENSE
GNU GPL v3 License
---
# AUTHOR
[WastelandSYS](https://github.com/WastelandSYS)