🔓 unclaimed — this page was auto-generated from GitHub. Are you the creator?
Claim this page →
gitgud
Keep your coding skills sharp in the age of AI
git clone https://github.com/MissingPackage/gitgud
GitGud
Keep your coding skills sharp while using AI. A Claude Code plugin that periodically assigns manual coding challenges with gamification features.
Why GitGud?
AI assistants like Claude Code make us incredibly productive, but there's a risk: if we never write code ourselves, our skills atrophy. GitGud ensures you practice regularly while still benefiting from AI assistance.
Features
- Periodic Challenges: Every N requests, you'll get a coding task related to your current work
- Smart Categorization: Tasks match your context (API, auth, testing, database, etc.)
- Gamification:
- Streaks: Track consecutive days of completed tasks
- Achievements: Unlock badges as you progress
- Skip System: Skip tasks when you're in a hurry (limited per day)
- Persistent Progress: Your data is stored in
~/.gitgud/and persists across plugin updates - Fully Configurable: Adjust frequency, difficulty, and daily skips
Installation
Claude Code
From Marketplace (recommended)
/plugin marketplace add MissingPackage/gitgud
/plugin install gitgud
From local folder (for development)
claude --debug --plugin-dir /path/to/gitgud
Cursor IDE
GitGud now supports Cursor IDE! The same repository works for both Claude Code and Cursor, with shared data between them.
Requirements
- Node.js 14+ installed
- Cursor IDE 1.7+ (with hook support)
- Git (for cloning the repository)
macOS/Linux
# Clone and run installer
git clone https://github.com/MissingPackage/gitgud.git ~/.gitgud-cursor
cd ~/.gitgud-cursor
./install-cursor.sh
Notes for multi-shell setups (bash + zsh, etc.)
The installer adds command aliases (e.g. gg-stats) to your primary/login shell config file:
- zsh →
~/.zshrc - bash →
~/.bashrc - fish →
~/.config/fish/config.fish - other →
~/.profile
If you want to override the target file explicitly:
GITGUD_SHELL_RC="$HOME/.zshrc" ./install-cursor.sh
Windows
# Run in PowerShell
git clone https://github.com/MissingPackage/gitgud.git $env:USERPROFILE\.gitgud-cursor
cd $env:USERPROFILE\.gitgud-cursor
.\install-cursor.ps1
How Cursor Support Works
Unlike Claude Code which can inject context directly, Cursor's beforeSubmitPrompt hook only supports { continue: boolean }. Therefore, GitGud for Cursor uses a different approach:
- Hook: Processes prompts and writes task state to files
- Cursor Rule: Reads task state and instructs the AI to enforce training mode
- Shared Data: Both Claude Code and Cursor use
~/.gitgud/for data storage
This means your streak, achievements, and settings are synchronized between both IDEs!
⚠️ IMPORTANT: Cursor Rules Configuration
Cursor does NOT support global rules that apply automatically across all projects. You must manually configure GitGud rules for each project where you want to use it.
📖 Official documentation: Cursor Rules
Step 1: Copy the Rule File
For each project where you want GitGud active:
# From your project root:
mkdir -p .cursor/rules
cp ~/.gitgud-cursor/cursor/rules/gitgud.mdc .cursor/rules/
Or append to an existing .cursorrules file:
cat ~/.gitgud-cursor/cursor/rules/gitgud.cursorrules >> .cursorrules
Step 2: Enable the Rule in Cursor Settings
⚠️ Copying the file is not enough! You must also enable the rule in Cursor:
The GitGud rule should always be active, but sometimes you may need to enable it once, the first time you want to activate GitGud in a project.
- Open the project in Cursor
- Open the Command Palette (
Cmd+Shift+P/Ctrl+Shift+P) - Run "Reload Window" to detect new rules
- Go to Cursor Settings → Rules (or open the Context panel → Rules)
- Verify that the GitGud rule appears and is enabled (toggle ON)
Without enabling the rule, Cursor's AI will not enforce training mode even if tasks are assigned!
Verifying the Setup
To check if GitGud is working in Cursor:
- Open a project with the rule configured and enabled
- Run
node ~/.gitgud-cursor/cursor/validate-cursor.jsto verify setup - Check if pending tasks appear when you interact with Cursor AI
Uninstalling from Cursor
# macOS/Linux
~/.gitgud-cursor/uninstall-cursor.sh
# Windows (PowerShell)
~\.gitgud-cursor\uninstall-cursor.ps1
The uninstaller will ask if you want to keep your data for future reinstallation.
Commands
| Command | Description |
|---|---|
/gg-complete | Mark current task as completed |
/gg-stats | View statistics, achievements, and streak |
/gg-reset [counter|stats|all] | Reset data |
/gg-config | View current configuration |
/gg-config <setting> <value> | Change a setting |
How It Works
- Every N requests (default: 10), you'll receive a coding challenge
- The task is related but not identical to your request
- Claude guides you but won't write the code for you
- Complete the task and run
/gg-completeto update your stats - Or type "skip" to use a skip (limited per day)
Task Categories
Tasks are automatically matched to your work context:
| Category | Triggered by |
|---|---|
| Security | auth, login, password, jwt, token, oauth |
| API | endpoint, route, request, response, http, graphql |
| Database | query, sql, model, schema, migration, orm |
| Debug | bug, fix, error, problem, crash, issue |
| Test | test, spec, assert, pytest, jest, mock |
| Architecture | refactor, pattern, structure, interface |
| Frontend | component, react, vue, css, form, modal |
| Function | implement, create, add, write, build |
Configuration
/gg-config # View current configuration
/gg-config frequency 15 # Set task frequency to every 15 requests
/gg-config daily_skips 5 # Allow 5 skips per day
/gg-config difficulty hard # Set difficulty to hard
/gg-config enabled false # Disable the plugin
Settings
| Setting | Description | Options | Default |
|---|---|---|---|
frequency | Requests between tasks | Any number | 10 |
daily_skips | Max skips per day | Any number | 3 |
difficulty | Task complexity | easy, medium, hard, adaptive | adaptive |
enabled | Plugin active | true, false | true |
Data Storage
Your progress is stored in ~/.gitgud/ (cross-platform):
- Windows:
C:\Users\<username>\.gitgud\ - macOS:
/Users/<username>/.gitgud/ - Linux:
/home/<username>/.gitgud/
This ensures your achievements and streaks persist even when updating the plugin.
Achievements
Task Milestones
- 🎯 First Steps - Complete your first task
- ✋ Getting Hands Dirty - Complete 5 tasks
- 📚 Apprentice - Complete 10 tasks
- 🔨 Craftsman - Complete 25 tasks
- 🎓 Master - Complete 50 tasks
- 🏆 Legend - Complete 100 tasks
Streak Achievements
- 🔥 Three in a Row - 3 day streak
- 📅 Perfect Week - 7 day streak
- 💪 Two Weeks Strong - 14 day streak
- 🥇 Golden Month - 30 day streak
Tips for Success
- Don't skip too often - The challenges are designed to keep your skills sharp
- Take your time - Quality practice beats rushing through tasks
- Use hints wisely - Ask Claude for conceptual help, but write the code yourself
- Build a streak - Consistency is key to maintaining skills
Current Limitations
This is v1.0, built in a couple hours on a Friday night. It works, but has room for improvement. Most of these limitations can be overcome with a much higher token usage but this would make no-sense for this kind of plugins:
- Keyword matching is basic - Categories are detected via simple regex patterns, not semantic understanding
- Tasks are generic - They don't deeply analyze your specific code context, but are rather based on the conversation context.
- No difficulty progression - Tasks don't automatically become more difficult but if you select the adaptive difficulty, Claude will assign them based on what it thinks is your skill level
- Limited task variety - 3 tasks per category, could use more
- English only - Tasks and achievements are only in English
Contributing
This plugin was built to scratch my own itch - I wanted to keep my skills sharp while using AI. If you have ideas for improvements, I'd love your help!
Areas that need love:
- Better task categorization (maybe using embeddings?)
- More diverse and specific tasks
- Difficulty progression system
- Localization support
- More achievements and gamification features
- Better integration with specific frameworks/agents
Feel free to open issues, submit PRs, or fork and make your own version!
Author
Built with ❤️ (and some AI assistance) by MissingPackage
License
MIT
// compatibility
| Platforms | api, web |
|---|---|
| Operating systems | — |
| AI compatibility | claude |
| License | MIT |
| Pricing | open-source |
| Language | JavaScript |
// faq
What is gitgud?
Keep your coding skills sharp in the age of AI. It is open-source on GitHub.
Is gitgud free to use?
gitgud is open-source under the MIT license, so it is free to use.
What category does gitgud belong to?
gitgud is listed under plugins in the Claudeers registry of Claude-compatible tools.
// embed badge
[](https://claudeers.com/gitgud)
// retro hit counter
[](https://claudeers.com/gitgud)
// reviews
// guestbook
// related in Claude Plugins
A single CLAUDE.md file to improve Claude Code behavior, derived from Andrej Karpathy's observations on LLM coding pitfalls.
Claude Code is an agentic coding tool that lives in your terminal, understands your codebase, and helps you code faster by executing routine tasks, explainin…
"CLI-Anything: Making ALL Software Agent-Native" -- CLI-Hub: https://clianything.cc/
A Claude Code plugin that shows what's happening - context usage, active tools, running agents, and todo progress