Skip to main content

AI wrote your code. FixMySlop fixes it.

Project description

FixMySlop

License: MIT Python 3.10+ Platform GitHub Stars

FixMySlop โ€” The free, 100% local AI-powered code janitor that finds and fixes bugs, security holes, and AI slop in your projects. No cloud, no API keys, no BS.

  • Cleans messy AI-generated code (hallucinations, bad patterns, weak security)
  • Gives a clear Slop Score, detailed audit report, and one-click fix generation
  • Works offline with Ollama, llama.cpp, or vLLM so your code stays private

Visual Tour

Scan panel (Search.png) Report panel (report1.png) Fix panel with diff (fix.png) CLI output (cli.png)

Screenshot Guide

Screenshot File What It Shows
screenshots/Search.png Scan setup flow (project selection + scan controls)
screenshots/report1.png Report view with issue list and quality insights
screenshots/fix.png Fix workflow and diff-style patch review
screenshots/cli.png CLI scan output for terminal-first users

Features

  • โšก Turbo + Deep scan modes for speed vs depth
  • ๐Ÿ” Full repository scanning with .gitignore awareness
  • ๐Ÿ›ก๏ธ Security checks (Bandit + LLM context analysis)
  • ๐Ÿงน AI smell detection (hallucinated imports, weak validation, broad exception handling)
  • ๐Ÿ“Š Slop Score (0-100) to summarize code health
  • ๐Ÿ”ง LLM-powered fix generation with unified diffs
  • ๐Ÿ“„ Report export in Markdown, HTML, JSON, CSV, and PDF
  • ๐ŸŽจ Polished PyQt5 desktop GUI with dark/light themes
  • ๐Ÿ’ป Full CLI for automation and CI-friendly usage
  • ๐Ÿค– Auto model fallback when configured model is missing
  • ๐ŸชŸ Windows-safe terminal output handling
  • ๐Ÿ  100% local-first architecture

Why FixMySlop?

FixMySlop combines static analysis + LLM reasoning + local privacy in one workflow.

Compared To Typical Limitation FixMySlop Advantage
Ruff/Pylint-only workflows Strong syntax/style checks, limited semantic AI context Adds LLM-based deep reasoning on top of static tools
Cloud AI code reviewers Code leaves your machine, subscription cost 100% local and private
IDE-only assistants Great inline help, weaker full-repo audit/report flow Full-repo scans, report panel, Slop Score, fix workflow

Installation

Prerequisites

  • Python 3.10+
  • A local OpenAI-compatible backend (Ollama recommended): https://ollama.ai

Quick Start

# Clone
git clone https://github.com/MrSpideyNihal/FixMySlop.git
cd FixMySlop

# Install dependencies
pip install -r requirements.txt

# Pull a local model (example)
ollama pull qwen2.5-coder:3b

# Launch GUI
python main.py

# Or run CLI
python main.py scan ./your-project --mode turbo

FixMySlop can auto-detect an available model, so manual model config is optional.

Optional Static Tools

pip install ruff bandit
pip install semgrep

Troubleshooting

  • Backend not reachable: run ollama serve first
  • Model not found: run ollama pull qwen2.5-coder:7b (or another installed coder model)
  • Windows terminal shows garbled Unicode: switch to UTF-8 code page (chcp 65001) or use Windows Terminal/CMD

Usage

GUI

python main.py

Main sections:

  • Home
  • Scan
  • Report
  • Fix
  • Settings

CLI Recipes

# Quick scan
python main.py scan ./myproject

# Turbo mode (fast top issues)
python main.py scan ./myproject --mode turbo

# Deep mode (full pass)
python main.py scan ./myproject --mode deep

# Deep static-only
python main.py scan ./backend --mode deep --no-llm --output json

# Save report
python main.py scan ./myproject --save slop-report.md --output markdown

# Use explicit model
python main.py scan ./myproject --model qwen2.5-coder:3b --mode turbo

# List backend models
python main.py models

Scan Modes

Mode Focus Typical per-file estimate
turbo Prioritize high-impact findings quickly ~20-40s per file
deep Broader and more exhaustive finding coverage ~15-30s per file
--no-llm Static analysis only < 1s per file

Configuration

Config file path: ~/.fixmyslop/config.yaml

model: ""
base_url: http://localhost:11434/v1
api_key: ollama
temperature: 0.2
theme: dark
font_size: 14
use_ruff: true
use_bandit: true
use_semgrep: false
auto_backup: true

If model is empty, FixMySlop auto-selects the best available model from your running local backend.


Supported Languages

Python, JavaScript, TypeScript, Go, Rust, Java, C++, C, C#, Ruby, PHP, Swift, Kotlin


Architecture

FixMySlop/
โ”œโ”€โ”€ macros.py
โ”œโ”€โ”€ main.py
โ”œโ”€โ”€ core/
โ”‚   โ”œโ”€โ”€ scanner.py
โ”‚   โ”œโ”€โ”€ analyzer.py
โ”‚   โ”œโ”€โ”€ llm_client.py
โ”‚   โ”œโ”€โ”€ fix_engine.py
โ”‚   โ””โ”€โ”€ ...
โ”œโ”€โ”€ ui/
โ”‚   โ”œโ”€โ”€ panels/
โ”‚   โ”œโ”€โ”€ widgets/
โ”‚   โ””โ”€โ”€ assets/
โ”œโ”€โ”€ cli/
โ”œโ”€โ”€ utils/
โ””โ”€โ”€ tests/

Design rules:

  • core/ never imports ui/
  • Constants are centralized in macros.py
  • Heavy work runs in QThread
  • Path handling uses pathlib.Path

Running Tests

pytest tests/ -v

Contributing

Contributions are welcome.

  1. Open an issue for bugs or feature ideas
  2. Fork and create a branch
  3. Add tests for behavior changes
  4. Run pytest tests/ -q
  5. Open a PR with a clear summary

Roadmap

  • More language-specific rules and higher-quality fix templates
  • Better safe auto-apply for low-risk fixes
  • Pre-commit and CI integration helpers
  • Optional richer report visualizations

Acknowledgments

  • Ollama
  • llama.cpp
  • vLLM
  • Ruff
  • Bandit
  • Semgrep
  • PyQt5
  • fpdf2

License

MIT โ€” free forever and open source.


Loved this project? Please star the repo.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fixmyslop-0.2.0.tar.gz (63.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fixmyslop-0.2.0-py3-none-any.whl (79.3 kB view details)

Uploaded Python 3

File details

Details for the file fixmyslop-0.2.0.tar.gz.

File metadata

  • Download URL: fixmyslop-0.2.0.tar.gz
  • Upload date:
  • Size: 63.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for fixmyslop-0.2.0.tar.gz
Algorithm Hash digest
SHA256 b45f844e82d43b4794b98e09b138071ff66da0f0f340c9952b2616dc9fdfb69d
MD5 b7d2993c2b3bca36bc1223058eb4a7fa
BLAKE2b-256 1c3dcce842bb2fcdc2add2e93cc8b993e34ef3bb22da1926ae3ecb14d3d8a7d2

See more details on using hashes here.

Provenance

The following attestation bundles were made for fixmyslop-0.2.0.tar.gz:

Publisher: publish.yml on MrSpideyNihal/FixMySlop

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fixmyslop-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: fixmyslop-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 79.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for fixmyslop-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 fab1ee77c6922d7d3d7b31de87bd6384d95ebb799b9f6a5d2998a3a10582d706
MD5 b2e84977765be143c50e93d5cabd67dd
BLAKE2b-256 0658c96d0b20bb78140a7ce2ea09e0d625cb548daef86ed3e77c3561efdad6ea

See more details on using hashes here.

Provenance

The following attestation bundles were made for fixmyslop-0.2.0-py3-none-any.whl:

Publisher: publish.yml on MrSpideyNihal/FixMySlop

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page