https://github.com/raphaelchpprt/dotfiles
https://github.com/raphaelchpprt/dotfiles
Last synced: 3 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/raphaelchpprt/dotfiles
- Owner: raphaelchpprt
- Created: 2026-05-06T14:27:45.000Z (about 2 months ago)
- Default Branch: main
- Last Pushed: 2026-05-06T16:12:43.000Z (about 2 months ago)
- Last Synced: 2026-05-06T17:13:49.409Z (about 2 months ago)
- Language: Shell
- Size: 22.5 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# dotfiles
macOS setup — Node/React/TypeScript stack with Cursor, Claude Code and cmux.
## Bootstrap
On a new machine, one command:
```bash
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/raphaelchpprt/dotfiles/main/install.sh)"
```
Or if the repo is already cloned:
```bash
bash ~/dotfiles/install.sh
```
## What the install does automatically
- Xcode CLT → Homebrew → packages (Brewfile)
- Symlinks via `stow`: `~/.zshrc`, `~/.gitconfig`, `~/.gitignore`
- Oh My Zsh + zsh-syntax-highlighting plugin
- `mise`: Node 22.12.0 + pnpm 10.6.4
- npm globals: `vercel`
- Cursor extensions (from `cursor/extensions.txt`)
- Claude Code: `settings.json`, `CLAUDE.md`, `cmux-notify.sh` hook
- macOS defaults (Dock, Finder, keyboard, trackpad...)
- Clone work repos into `~/Documents/DEV/`
## Manual steps after install
```bash
# 1. GitHub auth (required for ghtoken + gh CLI)
gh auth login
# 2. Git identity
git config --global user.name "Your Name"
git config --global user.email "you@email.com"
# 3. Create ~/.zshrc.local (secrets, not versioned)
touch ~/.zshrc.local
# 4. Add Obsidian API key to ~/.claude.json
# Replace METTRE_ICI_TA_CLÉ in mcpServers.obsidian.env.OBSIDIAN_API_KEY
# Key is in Obsidian > Community Plugins > Local REST API
# 5. Reload shell
source ~/.zshrc
```
## Structure
```
dotfiles/
├── install.sh # full bootstrap
├── clone.sh # clone work repos
├── mise.toml # node + pnpm versions
│
├── zsh/
│ └── .zshrc # shell config, aliases, cmux, ghtoken
│
├── git/
│ ├── .gitconfig # git aliases, global options
│ └── .gitignore # .DS_Store, .env, node_modules...
│
├── homebrew/
│ └── Brewfile # all packages
│
├── cursor/
│ └── extensions.txt # extensions to install
│
├── claude/
│ ├── CLAUDE.md # global Claude Code instructions
│ ├── settings.json # permissions, hooks, plugins
│ ├── mcp_servers.json # MCP template (no secrets)
│ └── hooks/
│ └── cmux-notify.sh # cmux notifications on session end
│
└── macos/
└── defaults.sh # system preferences
```
## Not versioned
`~/.zshrc.local` — create manually on each machine:
```zsh
# Git identity
git config --global user.name "Raphaël"
git config --global user.email "you@email.com"
# Phase (if needed on this machine)
# export PHASE_SERVICE_TOKEN="..."
```
The Obsidian MCP key lives in `~/.claude.json` directly — never in this repo.
## Manual installs (not on Homebrew)
| App | How |
|---|---|
| **cmux** | Ask your team for the install link — native app at `/Applications/cmux.app` |
## MCP Servers
| Server | Purpose | Secret |
|---|---|---|
| `context7` | Up-to-date lib docs in Claude Code | none |
| `playwright` | Browser automation in Claude Code | none |
| `obsidian` | Access Obsidian notes | key in `~/.claude.json` |
`context7` and `playwright` auto-install on first Claude Code launch (via `npx`).
For Obsidian: install the **Local REST API** plugin in Obsidian, copy the generated key, then add it to `~/.claude.json` under `mcpServers.obsidian.env.OBSIDIAN_API_KEY`.
## Useful commands
```bash
# Generate GitHub token for Claude Code (run before launching CC)
ghtoken
# Refresh symlinks after editing dotfiles
cd ~/dotfiles && stow --restow --target="$HOME" zsh git
# Update Homebrew packages
brew bundle --file=~/dotfiles/homebrew/Brewfile
# Check active node/pnpm versions
mise list
```