lanej/dotfiles
My doots. Changes are frequent, stability not guaranteed. Supports Arch, CentOS and Darwin.
ARCHETYPE
YOLO Cowboy
Permissions? Never heard of 'em. Ships at the speed of `--dangerously-skip-permissions`.
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)
azbugfix-dispatcherclaude-cliclaude-config-versioningclaude-taildata-pipelinedispatcherdistillduckdbgcpgh-pr-stackgitgithub-actionsgojavascriptjosh-email-voicejqjustlooker-developmentmatplotlibmethodologyoperating-lessonsorg-announcepresentermpythonqmd-mathquartoreport-infra-workreport-tool-workresearchrusttrimui-reviewxlsxxsvbigquerygspacejiralancerphabqmd
Hooks (14)
| event | matcher | runs |
|---|---|---|
| SessionStart | startup|clear|compact|resume | command -v python3 >/dev/null 2>&1 && "$HOME/.files/bin/claude-session-start-hook" || true |
| Notification | * | $HOME/.files/bin/claude-notification-hook |
| PreToolUse | EnterWorktree | $HOME/.files/bin/claude-worktree-create-hook |
| PreToolUse | ExitWorktree | $HOME/.files/bin/claude-worktree-remove-hook |
| PreToolUse | Edit|Write | $HOME/.files/bin/claude-sibling-doc-check-hook |
| PreToolUse | Bash | $HOME/.files/bin/claude-git-stash-guard-hook |
| PreToolUse | Bash | $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 |
| PostToolUse | Agent | $HOME/.files/bin/claude-agent-model-narration-hook |
| PostToolUse | Bash | $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
christian-deleon/dotfiles
My personal .dotfiles repository.
Skill Collector 5.2k tok ·
base58ed/claude_code_files
Select files from my claude-code config.
Skill Collector 3.4k tok ·
dean0x/devflow
The most advanced agentic development meta-harness for generating production-grade code. Ambient Orchestration, Working memory that never forgets. Self-learning workflows. Install once, forget about it. Your code gets better automatically.
Skill Collector 6.5k tok ·
jtrv/dotfiles
A repository for all my configurations
Fort Knox 5.1k tok ·