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

Install from PyPI

# Base install (CLI + core engine)
pip install fixmyslop

# Install with GUI support
pip install fixmyslop[gui]

# Install with static analysis tools
pip install fixmyslop[analysis]

# Install everything
pip install fixmyslop[gui,analysis]

After install, run:

fixmyslop scan ./your-project --mode turbo

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.2.tar.gz (65.3 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.2-py3-none-any.whl (72.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: fixmyslop-0.2.2.tar.gz
  • Upload date:
  • Size: 65.3 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.2.tar.gz
Algorithm Hash digest
SHA256 c6a9b84a63404b1139030465ba3bba0fbc6e95b59bd53a57d928ed3d553e3493
MD5 a22a0bb42e83d7562504836a40689bad
BLAKE2b-256 48c00642892954ebd62b873f6551148f89a71932d4d635a31205f046c3da2af1

See more details on using hashes here.

Provenance

The following attestation bundles were made for fixmyslop-0.2.2.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.2-py3-none-any.whl.

File metadata

  • Download URL: fixmyslop-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 72.7 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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 eead5edb32a6a721f6fd468cfff6a7a39f8d636edb12930cb82d533af96236af
MD5 49712526c9b8686a9464c2d24bb6bd79
BLAKE2b-256 af4565850a24041cc8249a53001d67b16b53614042ebaf4f0758a983ea95e091

See more details on using hashes here.

Provenance

The following attestation bundles were made for fixmyslop-0.2.2-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