~ / rigs / lanej / dotfiles

lanej/dotfiles

My doots. Changes are frequent, stability not guaranteed. Supports Arch, CentOS and Darwin.

↗ GitHub ★ 41 no license updated 5d ago personal setup Claude CodeCodex
share on X
ARCHETYPE
YOLO Cowboy
Permissions? Never heard of 'em. Ships at the speed of `--dangerously-skip-permissions`.
CONTEXT TAX · EVERY TURN
~7.9k tokens
Heavy · median rig: 2.3k · breakdown
GUARDRAILS
4/5
Blocks destructive commands · Protects secrets · Pre-tool screening hook · Sandbox or ask-first rules · details

Copy this rig

# review before running: this installs third-party code
$ npx degit lanej/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.

$ npx degit lanej/dotfiles/claude/skills/az .claude/skills/az
$ npx degit lanej/dotfiles/claude/skills/bugfix-dispatcher .claude/skills/bugfix-dispatcher
$ npx degit lanej/dotfiles/claude/skills/claude-cli .claude/skills/claude-cli
$ npx degit lanej/dotfiles/claude/skills/claude-config-versioning .claude/skills/claude-config-versioning
$ npx degit lanej/dotfiles/claude/skills/claude-tail .claude/skills/claude-tail
$ npx degit lanej/dotfiles/claude/skills/data-pipeline .claude/skills/data-pipeline
$ npx degit lanej/dotfiles/claude/skills/dispatcher .claude/skills/dispatcher
$ npx degit lanej/dotfiles/claude/skills/distill .claude/skills/distill
$ npx degit lanej/dotfiles/claude/skills/duckdb .claude/skills/duckdb
$ npx degit lanej/dotfiles/claude/skills/gcp .claude/skills/gcp
$ npx degit lanej/dotfiles/claude/skills/gh-pr-stack .claude/skills/gh-pr-stack
$ npx degit lanej/dotfiles/claude/skills/git .claude/skills/git
$ npx degit lanej/dotfiles/claude/skills/github-actions .claude/skills/github-actions
$ npx degit lanej/dotfiles/claude/skills/go .claude/skills/go
$ npx degit lanej/dotfiles/claude/skills/javascript .claude/skills/javascript
$ npx degit lanej/dotfiles/claude/skills/josh-email-voice .claude/skills/josh-email-voice
$ npx degit lanej/dotfiles/claude/skills/jq .claude/skills/jq
$ npx degit lanej/dotfiles/claude/skills/just .claude/skills/just
$ npx degit lanej/dotfiles/claude/skills/looker-development .claude/skills/looker-development
$ npx degit lanej/dotfiles/claude/skills/matplotlib .claude/skills/matplotlib
$ npx degit lanej/dotfiles/claude/skills/methodology .claude/skills/methodology
$ npx degit lanej/dotfiles/claude/skills/operating-lessons .claude/skills/operating-lessons
$ npx degit lanej/dotfiles/claude/skills/org-announce .claude/skills/org-announce
$ npx degit lanej/dotfiles/claude/skills/presenterm .claude/skills/presenterm
$ npx degit lanej/dotfiles/claude/skills/python .claude/skills/python
$ npx degit lanej/dotfiles/claude/skills/qmd-math .claude/skills/qmd-math
$ npx degit lanej/dotfiles/claude/skills/quarto .claude/skills/quarto
$ npx degit lanej/dotfiles/claude/skills/report-infra-work .claude/skills/report-infra-work
$ npx degit lanej/dotfiles/claude/skills/report-tool-work .claude/skills/report-tool-work
$ npx degit lanej/dotfiles/claude/skills/research .claude/skills/research
$ npx degit lanej/dotfiles/claude/skills/rust .claude/skills/rust
$ npx degit lanej/dotfiles/claude/skills/trim .claude/skills/trim
$ npx degit lanej/dotfiles/claude/skills/ui-review .claude/skills/ui-review
$ npx degit lanej/dotfiles/claude/skills/xlsx .claude/skills/xlsx
$ npx degit lanej/dotfiles/claude/skills/xsv .claude/skills/xsv
$ npx degit lanej/dotfiles/gemini/skills/bigquery .claude/skills/bigquery
$ npx degit lanej/dotfiles/gemini/skills/gspace .claude/skills/gspace
$ npx degit lanej/dotfiles/gemini/skills/jira .claude/skills/jira
$ npx degit lanej/dotfiles/gemini/skills/lancer .claude/skills/lancer
$ npx degit lanej/dotfiles/gemini/skills/phab .claude/skills/phab

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

{
  "permissions": {
    "deny": [
      "Bash(rm:-rf /)",
      "Bash(rm:-rf:/ *)",
      "Bash(sudo:rm:*)",
      "Bash(sudo:dd:*)",
      "Bash(mkfs:*)",
      "Bash(fdisk:*)",
      "Bash(parted:*)",
      "Bash(wipefs:*)",
      "Bash(diskutil:eraseDisk:*)",
      "Bash(diskutil:eraseVolume:*)",
      "Bash(diskutil:zeroDisk:*)",
      "Bash(diskutil:partitionDisk:*)",
      "Bash(asr:restore:*)",
      "Bash(dd*of=/dev/disk*)",
      "Bash(dd*of=/dev/rdisk*)",
      "Bash(csrutil:disable*)",
      "Bash(spctl:--master-disable*)",
      "Bash(security dump-keychain*)",
      "Bash(security find-generic-password*)",
      "Bash(security find-internet-password*)",
      "WebSearch",
      "WebFetch"
    ]
  },
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "EnterWorktree",
        "hooks": [
          {
            "type": "command",
            "command": "$HOME/.files/bin/claude-worktree-create-hook"
          }
        ]
      },
      {
        "matcher": "ExitWorktree",
        "hooks": [
          {
            "type": "command",
            "command": "$HOME/.files/bin/claude-worktree-remove-hook"
          }
        ]
      },
      {
        "matcher": "Edit|Write",
        "hooks": [
          {
            "type": "command",
            "command": "$HOME/.files/bin/claude-sibling-doc-check-hook"
          }
        ]
      },
      {
        "matcher": "Bash",
        "hooks": [
          {
            "type": "command",
            "command": "$HOME/.files/bin/claude-git-stash-guard-hook"
          },
          {
            "type": "command",
            "command": "$HOME/.files/bin/claude-pr-gate-hook"
          }
        ]
      },
      {
        "matcher": "*",
        "hooks": [
          {
            "type": "command",
            "command": "$HOME/.files/bin/claude-tmux-state-hook"
          }
        ]
      }
    ]
  },
  "sandbox": {
    "enabled": true
  }
}

Skills (41)

Hooks (14)

eventmatcherruns
SessionStartstartup|clear|compact|resumecommand -v python3 >/dev/null 2>&1 && "$HOME/.files/bin/claude-session-start-hook" || true
Notification*$HOME/.files/bin/claude-notification-hook
PreToolUseEnterWorktree$HOME/.files/bin/claude-worktree-create-hook
PreToolUseExitWorktree$HOME/.files/bin/claude-worktree-remove-hook
PreToolUseEdit|Write$HOME/.files/bin/claude-sibling-doc-check-hook
PreToolUseBash$HOME/.files/bin/claude-git-stash-guard-hook
PreToolUseBash$HOME/.files/bin/claude-pr-gate-hook
PreToolUse*$HOME/.files/bin/claude-tmux-state-hook
Stop*command -v python3 >/dev/null 2>&1 && "$HOME/.files/bin/claude-autoname-hook" || true
Stop*$HOME/.files/bin/claude-stop-hook
SessionEnd*$HOME/.files/bin/claude-tmux-state-hook
UserPromptSubmit*$HOME/.files/bin/claude-tmux-state-hook
PostToolUseAgent$HOME/.files/bin/claude-agent-model-narration-hook
PostToolUseBash$HOME/.files/bin/claude-sandbox-bypass-narration-hook

Plugins (12)

gopls-lsp@claude-plugins-officialtypescript-lsp@claude-plugins-officiallua-lsp@claude-plugins-officialplaywright@claude-plugins-officialclaude-md-management@claude-plugins-officialclaude-mem@thedotmackfrontend-design@claude-plugins-officialskill-creator@claude-plugins-officialsecurity-guidance@claude-plugins-officialfeature-dev@claude-plugins-officialviewrule@viewrulelooker@easypost-sandbox

Permissions

deny (22)
Bash(rm:-rf /)
Bash(rm:-rf:/ *)
Bash(sudo:rm:*)
Bash(sudo:dd:*)
Bash(mkfs:*)
Bash(fdisk:*)
Bash(parted:*)
Bash(wipefs:*)
Bash(diskutil:eraseDisk:*)
Bash(diskutil:eraseVolume:*)
Bash(diskutil:zeroDisk:*)
Bash(diskutil:partitionDisk:*)
Bash(asr:restore:*)
Bash(dd*of=/dev/disk*)
Bash(dd*of=/dev/rdisk*)
Bash(csrutil:disable*)
Bash(spctl:--master-disable*)
Bash(security dump-keychain*)
Bash(security find-generic-password*)
Bash(security find-internet-password*)
WebSearch
WebFetch
ask (0)
—
allow (1)
Bash

Similar rigs

copied ✓