An open API service indexing awesome lists of open source software.

https://github.com/raphaelchpprt/dotfiles


https://github.com/raphaelchpprt/dotfiles

Last synced: 3 days ago
JSON representation

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
```