Skip to content

bertini36/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

244 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

bertini36/dotfiles 

My personal Mac setup and configurations

🚀 Setup

  • Download code:

    git clone https://github.com/bertini36/dotfiles.git ~/.dotfiles/
  • Brew packages installation:

    brew bundle --file=mac/Brewfile
    Package Description
    bat cat with syntax highlighting
    eza Modern ls replacement
    fzf Fuzzy finder for the terminal
    gh GitHub CLI
    pre-commit Git hook manager
    graphviz Graph visualization tools
    jq JSON processor
    libmagic File type detection library
    gotop Terminal system monitor
    copilot-cli GitHub Copilot CLI (cask)
    mole macOS disk space cleaner and system optimizer
    postgresql@18 PostgreSQL database
    pyenv Python version manager
    uv Fast Python package manager
    python@3.14 Python interpreter
    tldr Simplified man pages with practical examples
    karabiner-elements Keyboard remapper (cask)
    fd Fast find replacement
    ripgrep Fast grep replacement
    semgrep Static analysis (SAST) scanner
    gitleaks Secret detection in git commits
    nvm Node version manager
    pnpm Fast Node package manager
    claude Anthropic Claude desktop app (cask)
    claude-code Anthropic Claude CLI (cask)
    granola AI meeting notepad that captures and summarizes meetings (cask)
    rtk CLI proxy that reduces LLM token consumption by 60-90%
    handy Speech-to-text utility
  • Extra configuration (not available through Brew):

    bash mac/config_extras.sh
    Config Description
    gitleaks hook Global git pre-commit hook for secret detection
  • Add fonts (fonts/) to Font Book

  • Configure Karabiner

    • Change Caps Lock to CMD + CTL + Option + Shift
    • Map F4 to CMD + Space (Raycast)
  • Install Oh My ZSH

    • Source shell/.zshrc from ~/.zshrc so installer appends and machine-specific aliases stay out of the repo:
    echo 'source ~/.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 Chrome

  • Install Youtube Music (as browser pwa)

  • Install WhatsApp

  • Install Telegram

  • Install Slack

  • Install Claude

  • Install Notion

  • Install Notion Calendar

  • Install Obsidian

  • Install Jetbrains Toolbox and Pycharm

  • Install Visual Studio Code

  • Install Iterm2

  • Install Docker

  • Install Raycast

    • Disable Spotlight shortcut to enable Raycast one (System Preferences -> Keyboard -> Shortcuts -> Spotlight -> Uncheck Show Spotlight search)
    • Configure shortcuts following keymap.md
  • Install Amphetamine and set it to keep the computer awake indefinitely

  • Enable auto-focus: defaults write com.apple.Terminal FocusFollowsMouse -bool true

  • Link the rest of configuration files (install Claude Code first so ~/.claude/ exists)

    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/.claude/settings.json ~/.claude/settings.json
    ln -s ~/.dotfiles/.claude/statusline-command.sh ~/.claude/statusline-command.sh
    ln -s ~/.dotfiles/.claude/CLAUDE.md ~/.claude/CLAUDE.md
    ln -s ~/.dotfiles/.claude/RTK.md ~/.claude/RTK.md
    ln -s ~/.dotfiles/.claude/skills ~/.claude/skills
    ln -s ~/.dotfiles/.claude/rules ~/.claude/rules
    ln -s ~/.dotfiles/.claude/agents ~/.claude/agents

🧠 Claude Configuration

All Claude Code configuration lives under .claude/ and is symlinked into ~/.claude/.

Note

Remote control is enabled via remoteControlAtStartup in the global settings. Each session auto-starts the bridge, so it can be driven from claude.ai/code or the Claude mobile app.

Workflow

See the start-feature skill (.claude/skills/start-feature/SKILL.md) for detailed documentation of the development workflow using Claude, Superpowers, and the custom skills, agents, and rules defined in this repository.

Skills

Reusable AI agent skills that Claude invokes autonomously when a task matches their description. Any skill can also be invoked explicitly as a slash command (/skill-name).

Skill Description
audit Run a full production audit with the code-reviewer and security-reviewer agents
create-pull-request Create a GitHub PR following project conventions using gh CLI
end-feature Finalize a merged PR: switch to main, pull, and remove the merged feature branch
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
fix-until-green Loop project checks and pre-commit, dispatching a fixer subagent per failure, until green or 5 iterations
grill-me Stress-test a plan or design by interviewing one question at a time across the decision tree
investigate-sentry Investigate a Sentry exception down to root cause and propose a fix
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
review-branch Review current branch changes for quality and security
save-session Save a high-density summary of the current session to .claude_sessions.md
start-feature Start the feature development pipeline
wiki-karpathy Initialize, ingest, query, and lint a Karpathy-style personal wiki inside an Obsidian vault
writing-clearly Clear prose for docs, commits, error messages, and UI text

Evals

Most skills have an evals/evals.json file that defines test cases to measure skill effectiveness. To run the evals, paste the following steps into your AI agent prompt.

  1. Read the eval definitions in .claude/skills/<skill>/evals/evals.json
  2. Generate outputs - run each eval prompt twice per skill (once with the skill loaded, once without) and save the results to .claude/skills-workspace/iteration-1/<eval-id>/with_skill/outputs/ and without_skill/outputs/
  3. Create eval_metadata.json - record the assertions from each eval's expectations array alongside references to the output files
  4. Compare outputs in with_skill/outputs/ vs without_skill/outputs/
  5. Verify each assertion from eval_metadata.json against the corresponding output

Agents

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
plan-evaluator Quality gate that scores implementation plans on 7 criteria with GO/NO-GO verdict
pr-reviewer End-to-end PR review: audits diff, fetches open comments, applies fixes, commits, pushes, replies, resolves threads, and verifies CI

Rules

Path-scoped rules that load automatically only when working on matching files.

Rule Scope
python **/*.py - Python 3.12+ conventions, ruff, uv, naming, imports
performance **/*.py - N+1 prevention, batch writes, query-count guards, no premature caching
django Django files (views, models, urls, admin, etc.)
tests Test files - no comments, self-explanatory naming
langchain LangChain/LangGraph files

🔌 Claude Plugins

Plugins are split into two tiers to keep session context lean: a small global set enabled for every session, and domain-specific plugins enabled only in the projects that need them. All marketplaces are registered globally in extraKnownMarketplaces of .claude/settings.json.

Global plugins

Enabled in enabledPlugins of the global settings:

Plugin Description
superpowers Spec driven development (SDD) based on brainstorming, planning, subagent-driven execution, TDD, and code review skills
skill-creator Create, modify, and benchmark custom skills, including eval runs and description optimization
context7 Up-to-date documentation and code examples for any library
caveman Caveman-speak mode that cuts ~75% of output tokens while keeping technical accuracy
last30days Research any topic across Reddit, X, YouTube, HN, Polymarket, and the web, scored by upvotes, likes, and real money

Per-project plugins

Enable these in the project's .claude/settings.json:

Plugin Description
sentry-skills Sentry engineering skills: PR writing, code review, Django patterns, security review, and more
notion Read and manage Notion pages and databases
figma Read Figma designs and generate code from them
atlassian Jira and Confluence: issues, backlogs, status reports, and knowledge search
datadog-mcp Datadog observability: logs, metrics, traces, incidents, monitors, and dashboards
{
  "enabledPlugins": {
    "figma@claude-plugins-official": true,
    "sentry-skills@sentry-skills": true
  }
}

Installing and updating

On a fresh machine, install the third-party plugins (the marketplaces are already registered through the tracked settings):

claude plugin marketplace add JuliusBrussee/caveman
claude plugin install caveman@caveman

claude plugin marketplace add mvanhorn/last30days-skill
claude plugin install last30days@last30days-skill

datadog-mcp is an MCP server rather than a plugin; install it with:

claude mcp add --transport http datadog-mcp https://mcp.datadoghq.eu/api/unstable/mcp-server/mcp

Granola (installed via the Brewfile cask) also ships an official MCP server that exposes meeting notes and transcripts. Register it globally; the first connection opens an OAuth flow in the browser, no API key needed. Requires a signed-in Granola app (macOS 12+, Google or Microsoft account, microphone permission):

claude mcp add --transport http --scope user granola https://mcp.granola.ai/mcp

To update everything, ask Claude in a session: Update installed plugins.

🧰 Companion Tools

CLI tools that complement Claude Code. They are installed outside the plugin system but configured from this repository.

rtk

rtk proxies common dev commands and strips their output down to what the model needs (60-90% token savings). A PreToolUse hook in the global settings rewrites Bash commands through it transparently. Activate with:

rtk init -g

Built with ❤️ from Mallorca

About

My personal Mac setup and configurations

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors