My personal Mac setup and configurations
-
Download code:
git clone https://github.com/bertini36/dotfiles.git ~/.dotfiles/ -
Brew packages installation:
brew bundle --file=mac/Brewfile
Package Description batcatwith syntax highlightingezaModern lsreplacementfzfFuzzy finder for the terminal ghGitHub CLI pre-commitGit hook manager graphvizGraph visualization tools jqJSON processor libmagicFile type detection library gotopTerminal system monitor gemini-cliGoogle Gemini AI CLI copilot-cliGitHub Copilot CLI (cask) molemacOS disk space cleaner and system optimizer postgresql@18PostgreSQL database pyenvPython version manager uvFast Python package manager python@3.14Python interpreter tldrSimplified man pages with practical examples karabiner-elementsKeyboard remapper (cask) fdFast findreplacementripgrepFast grepreplacementsemgrepStatic analysis (SAST) scanner gitleaksSecret detection in git commits nvmNode version manager pnpmFast Node package manager claudeAnthropic Claude desktop app (cask) claude-codeAnthropic Claude CLI (cask) rtkCLI proxy that reduces LLM token consumption by 60-90% handySpeech-to-text utility -
Extra configuration (not available through Brew):
bash mac/config_extras.sh
Config Description gitleakshookGlobal git pre-commit hook for secret detection -
Add fonts (
fonts/) toFont Book -
Configure Karabiner
- Change
Caps LocktoCMD + CTL + Option + Shift - Map F4 to
CMD + Space(Raycast)
- Change
-
Install Oh My ZSH
-
Link
shell/.zshrcto~/.zshrc:ln ~/.dotfiles/shell/.zshrc ~/.zshrc -
Install plugins
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions git clone https://github.com/agkozak/zsh-z ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-z
-
-
Install Raycast
- Disable Spotlight shortcut to enable Raycast one (System Preferences -> Keyboard -> Shortcuts -> Spotlight -> Uncheck
Show Spotlight search) - Configure shortcuts following keymap.md
- Disable Spotlight shortcut to enable Raycast one (System Preferences -> Keyboard -> Shortcuts -> Spotlight -> Uncheck
-
Install Iterm2
-
Install Docker
-
Install Jetbrains Toolbox and Pycharm
-
Install Visual Studio Code
-
Enable auto-focus:
defaults write com.apple.Terminal FocusFollowsMouse -bool true -
Link the rest of configuration files
ln -s ~/.dotfiles/git/.gitignore_global ~/.gitignore_global git config --global core.excludesfile ~/.gitignore_global ln -s ~/.dotfiles/editors/vim/.vimrc ~/.vimrc ln -s ~/.dotfiles/editors/claude/settings.json ~/.claude/settings.json ln -s ~/.dotfiles/editors/claude/statusline-command.sh ~/.claude/statusline-command.sh ln -s ~/.dotfiles/editors/claude/CLAUDE.md ~/.claude/CLAUDE.md ln -s ~/.dotfiles/editors/claude/skills ~/.claude/skills ln -s ~/.dotfiles/editors/claude/rules ~/.claude/rules ln -s ~/.dotfiles/editors/claude/agents ~/.claude/agents ln -s ~/.dotfiles/editors/claude/commands ~/.claude/commands
All Claude Code configuration lives under editors/claude/ and is symlinked into ~/.claude/.
See editors/claude/workflow.md for detailed documentation of the development workflow using Claude, Superpowers, and the custom skills, agents, rules, and commands defined in this repository.
Reusable AI agent skills that Claude invokes autonomously when a task matches their description.
| Skill | Description |
|---|---|
create-pull-request |
Create a GitHub PR following project conventions using gh CLI |
ddd-patterns |
DDD entities, aggregate roots, value objects, repositories, domain services, and specifications |
django-patterns |
Django architecture, REST APIs with Pydantic, ORM best practices, caching, and signals |
langchain-architecture |
LangChain 1.x and LangGraph for agents, memory, and tool integration |
production-code-audit |
Deep-scan a codebase and transform it to production-grade quality |
python-code-style |
Python type safety, generics, protocols, and advanced type annotations |
writing-clearly-and-concisely |
Clear prose for docs, commits, error messages, and UI text |
Each skill has an evals/evals.json file that defines test cases to measure skill effectiveness. To run the evals paste the following command your AI agent prompt.
- Read the eval definitions in
editors/claude/skills/<skill>/evals/evals.json - Generate outputs - run each eval prompt twice per skill (once with the skill loaded, once without) and save the results to
editors/claude/skills-workspace/iteration-1/<eval-id>/with_skill/outputs/andwithout_skill/outputs/ - Create
eval_metadata.json- record the assertions from each eval's expectations array alongside references to the output files - Compare outputs in
with_skill/outputs/vswithout_skill/outputs/ - Verify each assertion from
eval_metadata.jsonagainst the corresponding output
Specialized subagents that run in isolated context windows with restricted tools.
| Agent | Description |
|---|---|
code-reviewer |
Read-only production code audit with A-F graded report (architecture, security, performance, quality, testing) |
security-reviewer |
OWASP Top 10 and Django-specific security vulnerability scanner |
evaluator |
Quality gate that scores implementation plans on 7 criteria with GO/NO-GO verdict |
Path-scoped rules that load automatically only when working on matching files.
| Rule | Scope |
|---|---|
python |
**/*.py - Python 3.12+ conventions, ruff, uv, naming, imports |
django |
Django files (views, models, urls, admin, etc.) |
tests |
Test files - no comments, self-explanatory naming |
langchain |
LangChain/LangGraph files |
Custom slash commands for common workflows.
| Command | Usage |
|---|---|
/review |
Review current branch changes for quality and security |
/fix-issue <number> |
Fetch a GitHub issue and implement the fix |
/audit |
Run full production audit with both agents |
Install the following MCP server plugins in Claude:
| Plugin | Description |
|---|---|
superpowers |
Spec driven development (SDD) based on brainstorming, planning, subagent-driven execution, TDD, and code review skills |
context7 |
Up-to-date documentation and code examples for any library |
claude-mem |
Persistent cross-session memory database with smart search and timeline reports (localhost:37777) |
sentry-skills |
Sentry engineering skills: PR writing, code review, Django patterns, security review, and more |
caveman |
Caveman-speak mode that cuts ~75% of output tokens while keeping technical accuracy |
notion |
Read and manage Notion pages and databases |
figma |
Read Figma designs and generate code from them |
datadog-mcp |
Datadog observability: logs, metrics, traces, incidents, monitors, and dashboards |
Install Datadog MCP:
claude mcp add --transport http datadog-mcp https://mcp.datadoghq.eu/api/unstable/mcp-server/mcpInstall Caveman:
claude plugin marketplace add JuliusBrussee/caveman
claude plugin install caveman@cavemanActivate rtk:
rtk init -gBuilt with ❤️ from Mallorca