PRB's personal Claude Code config, mounted at ~/.claude.
git clone git@github.com:PaulRBerg/dot-claude.git ~/.claude
cd ~/.claude
just install
ccc # Make your first commit with the claude wrapperSee Installation for full setup and Configuration for customization.
- Bun: JS dependencies and Husky/lint-staged automation (
bun install) - Just: command runner for build scripts (
brew install just) - Python 3.13+ and uv: Python package/project manager
git clone git@github.com:PaulRBerg/dot-claude.git ~/.claude
cd ~/.claude
just install # JS deps, Python deps, and CLI utilitiesjust full-check # Run all code checks
just test-hooks # Run hook tests
claude # Run ClaudeAll JSONC files in settings/* merge into settings.json on commit via Husky + lint-staged, and after any pull, merge,
or rebase that changes settings/ (Husky post-merge and post-rewrite).
Edit only settings/**/*.jsonc (never settings.json directly). Merging happens automatically, or run
just merge-settings manually.
Settings layout:
basics.jsonc: core config, env vars, status linehooks.jsonc: event hooksplugins.jsonc: enabled pluginspermissions/*.jsonc: permission rules (additional-dirs, bash, read)
CLAUDE.md is user-level context loaded by Claude Code across all projects. It is generated from
PaulRBerg/dot-agents's AGENTS.md — the canonical source — via that repo's
Husky + lint-staged pre-commit hook; do not hand-edit it here. Keep repo-specific guidance in project CLAUDE.md /
AGENTS.md files.
Use just for common tasks like just full-check, just merge-settings, and just test. See justfile for the full
command list.
commands/ contains thin entry points that invoke skills. Commands still matter because they support directory nesting,
which enables namespaced patterns like /yeet:issue-cc and /agents-brain:maintain.
Skills are authored in ~/projects/agent-skills and installed by its publish-skills workflow into ~/.agents/skills,
with ~/.claude/skills/<name> symlinked to those installs — except Claude-only skills, which are installed as real
directories here. External skills (e.g. find-skills) come from ~/.agents.
Examples: agents-brain, commit, vitest, effect-ts, cli-gh, tool-finder, yeet.
agents/ can hold specialized subagents invoked via the Task tool (currently none).
MCP servers are user-scope entries in ~/.claude.json (currently chrome-devtools and serena), not tracked here.
Hooks provide event-driven Claude Code automation. See hooks/README.md.
Active hooks from settings/hooks.jsonc:
- add_plan_frontmatter.py: add YAML frontmatter to plan files (
PostToolUse) - ai-coord: agent coordination via the external
ai-coord CLI (
PostToolBatch,PostToolUse,PostToolUseFailure,SessionEnd,SessionStart,Stop,SubagentStart,SubagentStop,UserPromptSubmit) - ai-notify: desktop notifications via the external
ai-notify CLI (
Notification,PermissionRequest,PreToolUse,Stop,StopFailure,UserPromptSubmit) - copy_prompt_to_clipboard.py: copy submitted prompts to the macOS clipboard (
UserPromptSubmit) - git_guard.py: deny shared-worktree git sweeps and ask before force pushes, with options in any order
(
PreToolUse) - guard_rm.py: ask before recursive
rmof home-level entries and git repositories (PreToolUse)
No plugins are enabled in settings/plugins.jsonc. plugins/ stores marketplace metadata and caches.
Shell utilities are maintained in the chezmoi-managed ~/.config/prb/agents.sh module and loaded automatically by
~/.zshrc:
ccc [args]: streamlined commits via/commit(defaults to--all)cccp: commit and push (feature branches)ccs [args]: commit only staged changesccsp [args]: commit staged changes and pushccbump [args]: quick release bumping via/release-bumperccta [args]: archive TODOs by running thetodo-archiveskill'sarchive_todo.pydirectly
MIT. See LICENSE.md.