~ / rigs / asmeurer / dotfiles

asmeurer/dotfiles

A collection of a bunch of my .files

↗ GitHub ★ 35 NOASSERTION updated 2mo ago personal setup Claude CodeCodexGemini CLI
share on X
ARCHETYPE
Fort Knox
Deny lists, pre-tool hooks, sandboxing. Nothing touches prod without a signature.
CONTEXT TAX · EVERY TURN
~834 tokens
Featherweight · median rig: 2.3k · breakdown
GUARDRAILS
4/5
Blocks destructive commands · Pre-tool screening hook · No YOLO mode · Sandbox or ask-first rules · details

Copy this rig

# review before running: this installs third-party code
$ npx degit asmeurer/dotfiles/.claude ./rig-dotfiles  # inspect, then merge into .claude/

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.

Merge into .claude/settings.json (project) or ~/.claude/settings.json (user). Hook commands reference scripts in the source repo — copy those too.

{
  "permissions": {
    "ask": [
      "Bash(~/.claude/bin/cc-run:*)",
      "Bash(cc-run:*)"
    ]
  },
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "*",
        "hooks": [
          {
            "type": "command",
            "command": "~/.config/iterm2/cc-status"
          }
        ]
      },
      {
        "matcher": "AskUserQuestion|ExitPlanMode",
        "hooks": [
          {
            "type": "command",
            "command": "python3 ~/.claude/hooks/claude-notify.py PreToolUse"
          }
        ]
      }
    ]
  }
}

Hooks (24)

eventmatcherruns
Notification*~/.config/iterm2/cc-status
Notification*python3 ~/.claude/hooks/claude-notify.py Notification
PermissionRequest*~/.config/iterm2/cc-status
PostToolUse*~/.config/iterm2/cc-status
PostToolUse*python3 ~/.claude/hooks/auto-swap-on-low-usage.py
PreCompactautopython3 ~/.claude/hooks/auto-swap-on-low-usage.py
PreCompactmanualpython3 ~/.claude/hooks/auto-swap-on-low-usage.py
PreToolUse*~/.config/iterm2/cc-status
PreToolUseAskUserQuestion|ExitPlanModepython3 ~/.claude/hooks/claude-notify.py PreToolUse
SessionEnd*~/.config/iterm2/cc-status
SessionEnd*python3 ~/.claude/hooks/claude-notify.py SessionEnd
SessionStart*~/.config/iterm2/cc-status
SessionStart*python3 ~/.claude/hooks/cc-session-name.py
Stop*~/.config/iterm2/cc-status
Stop*python3 ~/.claude/hooks/auto-swap-on-low-usage.py
Stop*python3 ~/.claude/hooks/claude-notify.py Stop
StopFailure*~/.config/iterm2/cc-status
StopFailure*python3 ~/.claude/hooks/auto-swap-on-low-usage.py
SubagentStop*python3 ~/.claude/hooks/auto-swap-on-low-usage.py
SubagentStop*~/.config/iterm2/cc-status
UserPromptSubmit*~/.config/iterm2/cc-status
UserPromptSubmit*python3 ~/.claude/hooks/cc-session-name.py
UserPromptSubmit*python3 ~/.claude/hooks/auto-swap-on-low-usage.py
UserPromptSubmit*python3 ~/.claude/hooks/claude-notify.py UserPromptSubmit

Plugins (1)

swift-lsp@claude-plugins-official

Permissions

deny (0)
—
ask (2)
Bash(~/.claude/bin/cc-run:*)
Bash(cc-run:*)
allow (15)
WebSearch
WebFetch(domain:data-apis.org)
WebFetch(domain:dmlc.github.io)
WebFetch(domain:stackoverflow.com)
Bash(cat:*)
Bash(gh run:*)
WebFetch(domain:cibuildwheel.pypa.io)
Bash(git rev-parse:*)
Bash(git tag:*)
Bash(git log:*)
Bash(gh pr list:*)
Bash(gh pr view:*)
Bash(asv:*)
WebFetch(domain:asv.readthedocs.io)
Bash(pip index:*)

Similar rigs

copied ✓