Skip to content

Latest commit

 

History

8 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

CraftCoding

CraftCoding

Monitor your coding sessions. Prove every line is yours.

Python Platform License Built with AI

Yes, this anti-AI tool was built with AI. The irony is very much intentional.


What is CraftCoding?

CraftCoding is a desktop application that runs silently while you code. It watches your windows, browser tabs, and running processes every second. The moment it spots an AI tool — ChatGPT, Cursor, Copilot, or anything else — it fires an alert, docks your score, and in Strict Mode redirects you.

When you finish a project you get a certificate PNG with your stats and one of three seals:

  • 🥇 Artisan Coder — 0 detections, score ≥ 90%
  • 🥈 Hybrid Coder — used hints or had some detections
  • Vibe Coder — score below 50%

Why does this exist?

During my second year of cross-platform application development studies, I started noticing a worrying pattern: students were handing their problem-solving over to AI entirely — often without understanding what came back.

AI is a powerful tool. The issue is unconscious dependency. CraftCoding makes the choice deliberate. You can still ask for help — it just costs you points and downgrades your seal.

The certificate is not a judgment. It is a record.


Features

  • Project sealing: name your project, seal it, and the timer only runs while you're actively coding
  • Live timer: pauses and resumes, everything saves automatically to a local SQLite database
  • 4-layer AI detection: window titles, browser process arguments, running executables (Cursor, Copilot, Tabnine…), and live Edge/Chrome session files
  • Two modes: Friendly (warnings only) or Strict (closes the AI tab and redirects to Stack Overflow)
  • Human Score: starts at 100%, −5 per detection, −10 for using the emergency hint
  • Emergency mode: if you're completely stuck you can request a hint, but it downgrades your seal
  • Certificate export: generates a styled PNG with your medal image, stats, and a unique ID
  • Project library: manage all your past projects, filter by status, reopen or delete them

Installation

Prerequisites

  • Python 3.10 or higher
  • Windows 10 / 11 (detection layers 2–4 are Windows-specific)

1 — Clone the repo

git clone https://github.com/yourusername/craftcoding.git
cd craftcoding

2 — Install dependencies

pip install customtkinter pygetwindow pyautogui psutil Pillow
Optional: Firefox session detection
pip install lz4

3 — Add your medal images

Place the three medal PNGs in an img/ folder next to the script:

craftcoding/
├── craftcoding.py
├── craftcoding.db        ← created automatically on first run
└── img/
    ├── artisancoder.png
    ├── hybridprogramer.png
    └── vibecoder.png

4 — Run

python craftcoding.py

How to use it

1. Type your project name  ──▶  Press Enter or click SELLAR
                                        │
2. Choose your mode  ────────────────▶  Amable (warnings) or Estricto (closes tabs)
                                        │
3. Click ▶ INICIAR FORJA  ────────────▶  Timer starts. CraftCoding watches.
                                        │
4. Code.                                │
                                        │
5. Click ⏸ PAUSAR  ─────────────────▶  Progress saves automatically.
                                        │
6. Click 🏆 CERTIFICAR  ─────────────▶  Get your seal. Export your certificate.

Your project library is always accessible from the sidebar with 📂 Mis Proyectos. You can close and reopen the app at any time — everything is saved.


Detection accuracy

Scenario Result
ChatGPT open with a renamed chat title ✅ Detected — window title scan
Claude in an Edge tab in the background ✅ Detected — session file scan
Cursor IDE running ✅ Detected — process scan
GitHub Copilot active in VS Code ✅ Detected — process scan
ChatGPT visited 20 min ago, tab now closed ✅ Not detected — history scan intentionally removed
Edge closed, old session file on disk ✅ Not detected — 5-minute freshness check
Ollama running locally ✅ Detected — process scan

Project structure

craftcoding.py        Entry point and full application
craftcoding.db        SQLite database (auto-created, auto-migrated)
img/                  Medal images used in certificate generation

The database stores: project name · total seconds · Human Score · AI detection count · status · start/end dates · seal type. Schema migrations run automatically — old databases update without data loss.


Tech stack

Library Role
CustomTkinter Modern dark-mode desktop UI
psutil Process monitoring
PyGetWindow Window title scanning
PyAutoGUI Tab redirection in Strict mode
Pillow Certificate PNG generation
SQLite3 Local project database (stdlib)

CraftCoding — because the best code is the code you actually understand.

About

Application developed to promote the non-use of AI in programming, a tool to focus on and avoid using AI during code development.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages