~ / rigs / pbhwheeler / claude-config

pbhwheeler/claude-config

Portable Claude Code config: settings.json, hooks, status line, and a bootstrap script for fresh dev machines

↗ GitHub ★ 0 no license updated today personal setup Claude Code
share on X
ARCHETYPE
Automator
Hooks on every lifecycle event: format, lint, notify, log.
CONTEXT TAX · EVERY TURN
~0 tokens
Featherweight · median rig: 2.3k · breakdown
GUARDRAILS
1/5
No YOLO mode · details

Copy this rig

# review before running: this installs third-party code
$ npx degit pbhwheeler/claude-config/commands ./rig-claude-config/commands

MCP servers are added to Claude Code at local scope; env vars are shown as YOUR_… placeholders — we never store values. Files are fetched with degit into a separate folder so you can review before merging.

This rig commits no guardrails. Here is the community baseline instead — the deny/ask rules most often found across all 7,204 rigs:

{
  "permissions": {
    "deny": [
      "Read(./.env)",
      "Read(**/.env)",
      "Read(~/.ssh/**)",
      "Bash(rm -rf *)",
      "Read(**/*.pem)",
      "Bash(rm -rf /)",
      "Bash(git push --force:*)",
      "Bash(sudo *)",
      "Read(.env)",
      "Bash(rm -rf /*)",
      "Read(./.env.*)",
      "Read(~/.aws/**)",
      "Bash(git push --force*)",
      "Bash(rm -rf:*)",
      "Read(**/*.key)",
      "Read(**/.env.*)",
      "Bash(sudo:*)",
      "Bash(git reset --hard*)",
      "Bash(git reset --hard:*)",
      "Read(.env.*)"
    ],
    "ask": [
      "Bash(git push:*)",
      "Bash(git push *)",
      "Bash(git commit:*)",
      "Bash(rm *)",
      "Bash(rm:*)",
      "Bash(git rebase *)",
      "Bash(wget *)",
      "Bash(npm publish:*)",
      "Bash(git commit *)",
      "Bash(gh pr merge *)"
    ]
  }
}

Hooks (6)

eventmatcherruns
PostToolUseWrite|Editf=$(jq -r '.tool_input.file_path // ""'); case "$f" in ~/.claude/projects/-home-em-development/memory/*) git -C ~/.claude/projects/-home-em-development/memory add -A && git -C ~/.claude/projects/-home-em-development/memory commit -m "update
PostToolUseWrite|Editf=$(jq -r '.tool_input.file_path // ""'); case "$f" in ~/.claude-config/*|~/.claude/settings.json|~/.claude/statusline.sh|~/.claude/session_start.sh) git -C ~/.claude-config add -A && git -C ~/.claude-config commit -m "update"; git -C ~/.cl
SessionStart*~/.claude/session_start.sh
SessionStart*python3 ~/.claude-config/scripts/memory_lint.py
Stop*~/.claude/session_end.sh
UserPromptSubmit*python3 ~/.claude-config/remote_write_hook.py

Slash commands (2)

/diagnose-sync/open

Similar rigs

copied ✓