Help us improve
Share bugs, ideas, or general feedback.
Share bugs, ideas, or general feedback.
Share bugs, ideas, or general feedback.
Enforce git diff thresholds during AI agent coding sessions to promote disciplined code review and prevent large, unreviewed changes. Provides slash commands to configure thresholds, pause/resume enforcement, reset the diff baseline, and switch between visualization modes for tracking changes.
npx claudepluginhub kylesnowschwartz/claude-bumper-lanes --plugin claude-bumper-lanesSwitch to brackets visualization mode
Show or set bumper lanes threshold configuration
Switch to depth visualization mode
Switch to gauge visualization mode
Switch to hotpath visualization mode
Executes bash commands
Hook triggers when Bash tool is used
Modifies files
Hook triggers on file write and edit operations
Share bugs, ideas, or general feedback.
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge.
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge.
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
Git diff review integration for Claude Code with VSCode extension. Provides inline diff view, browser diff editor, and auto-open files.
Native diff review window (Monaco + Glimpse) for AI coding agents. Browse changes since the merge-base with your base branch (or last commit / uncommitted), leave inline + file-level + overall comments on the slop, and have the agent address each item.
Perform AI code review on Git diffs — supports workspace changes, branch ranges, and single commits with concurrent per-file analysis, codebase search, and deep context-aware review.
Backpressure code review that validates changes against REVIEW.md before commits and session completion.
Live API usage in Claude Code statusline - colored progress bars, Git info, tokens, session metrics, device tracking, and more
Git safety hooks for Claude Code. Blocks force-push, protects main/master branch, prevents hard-reset, guards interactive rebase, and blocks git clean -fd.
Skills and agents for diagrams, codebase patterns, hypothesis testing, Socratic thinking, file querying, frontend design, image generation, and command creation
Unified review, refactoring, and cleanup workflows with specialized analysis agents
Core SimpleClaude framework with intent-based commands and specialized agents
Learn Claude Code by building real things, one level at a time
Kanban board agent orchestration — hooks, roles, and lifecycle management for Claude Code sessions
Bumper lanes gives you two features native to Claude-Code:


Bumper-Lanes tracks how much code Claude has written or edited, blocking further edits when a threshold is exceeded. 600 points corresponds roughly to that many lines of code added, depending on the mix of new files vs edits.
When the threshold is exceeded:
/bumper-reset) restores the budget after you reviewclaude plugin marketplace add kylesnowschwartz/claude-bumper-lanes
claude plugin install claude-bumper-lanes
Requirements: Go 1.21+ (binaries are built automatically on first session start)
Work normally with Claude. If the configurable threshold is exceeded:
git add -u && git commit -m "message" (resets the baseline automatically)/bumper-reset| Command | Description |
|---|---|
/bumper-reset | Reset baseline after reviewing changes |
/bumper-pause | Pause threshold enforcement (session only) |
/bumper-resume | Resume threshold enforcement |
/bumper-config | Show current configuration |
/bumper-config <n> | Set repo threshold (0=disabled, 50-2000) |
| Command | Description |
|---|---|
/bumper-tree | Indented file tree with +/- stats |
/bumper-smart | Multi-column table sorted by magnitude |
/bumper-sparkline-tree | Rainbow sidebar tree with sparkline bars |
/bumper-hotpath | Hot trail view (follows largest child) |
/bumper-icicle | Horizontal area chart |
/bumper-brackets | Nested [dir file] single-line |
/bumper-gauge | Progress gauge showing change magnitude |
/bumper-depth | Nested gauges by depth level |
/bumper-stat | Native git diff --stat output |
Status line is auto-configured on first session. No manual setup needed, though you may want to tweak if you use a custom setup.
If you need to configure manually:
Auto-setup writes this to ~/.claude/settings.json:
{
"statusLine": {
"type": "command",
"command": "/path/to/.claude/plugins/cache/.../bumper-lanes status",
"padding": 0
}
}
The path is versioned and changes on plugin updates—auto-setup handles this automatically.
Want just the diff visualization? Install diff-viz globally:
go install github.com/kylesnowschwartz/diff-viz/v2/cmd/git-diff-tree@latest
Then use git-diff-tree directly in your custom status line scripts. This optionally gives you the tree visualization without the threshold enforcement as well.
To prevent bumper-lanes from modifying your statusline script, add this comment anywhere in your script:
# BUMPER_HANDS_OFF
This tells bumper-lanes to leave your configuration alone. The plugin will not wrap, update, or regenerate any script containing this marker.
Config files (in precedence order):
.bumper-lanes.json at repo root (highest priority)~/.config/bumper-lanes/config.json (global fallback){
"threshold": 400,
"default_view_mode": "tree",
"default_view_opts": "--width 80 --depth 3",
"show_diff_viz": true
}
| Field | Description |
|---|---|
threshold | Points limit. 0 = disabled, 50-2000 = active (default: 600) |
default_view_mode | Visualization mode (default: tree) |
default_view_opts | Options passed to diff-viz renderer (e.g., --width 80 --depth 3) |
show_diff_viz | Show diff visualization in status line (default: true) |
Available view modes: tree, smart, sparkline-tree, hotpath, icicle, brackets, gauge, depth, stat
Want the diff visualization without threshold enforcement? Create a global config:
mkdir -p ~/.config/bumper-lanes
echo '{"threshold": 0}' > ~/.config/bumper-lanes/config.json
This disables enforcement across all repos while keeping the status line diff visualization. Individual repos can override with their own .bumper-lanes.json.
Run /bumper-config to see which config files are active.
Disabling per-repo: Set "threshold": 0 in .bumper-lanes.json to disable for a specific repo.