https://github.com/te6-in/dotfiles
An opinionated macOS web dev environment, powered by a custom Claude Code config.
https://github.com/te6-in/dotfiles
claude-code dotfiles dotfiles-macos
Last synced: 17 days ago
JSON representation
An opinionated macOS web dev environment, powered by a custom Claude Code config.
- Host: GitHub
- URL: https://github.com/te6-in/dotfiles
- Owner: te6-in
- Created: 2026-05-02T03:08:05.000Z (about 2 months ago)
- Default Branch: main
- Last Pushed: 2026-06-04T08:35:24.000Z (20 days ago)
- Last Synced: 2026-06-04T10:13:11.952Z (20 days ago)
- Topics: claude-code, dotfiles, dotfiles-macos
- Language: Shell
- Homepage:
- Size: 41 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Agents: agents.md
Awesome Lists containing this project
README
# te6-in/dotfiles
An opinionated macOS web dev environment, powered by a custom Claude Code config.
## Claude Code config
### CLAUDE.md with habits Claude doesn't form on its own
Covers how the agent investigates, edits, and asks, with each rule naming the failure it prevents.
- Pipe expensive command output to `/tmp` once and grep locally.
- Programmatic shell edits like `sed -i` require a clean git state and a dry-run first.
- Lean on `AskUserQuestion` at any hint of ambiguity, not free-form chat questions.
- ... and more
### Hooks that catch agent footguns
- `rm` calls go to macOS Trash and stay recoverable.
- Lockfile edits are blocked.
### MCP servers, ready out of the box
Every project picks up [Chrome DevTools for Agents](https://github.com/ChromeDevTools/chrome-devtools-mcp) and [SEED Design](https://seed-design.io/) Figma/Docs integration.
### One workflow across Linear, Slack, and Notion
Decisions, state changes, and findings move out of the private chat onto surfaces the team actually checks.
- Sessions anchor to a Linear issue and auto-transition its status (Todo → In Progress → In Review).
- `/comment` posts decisions back to the issue thread.
- `/notion` promotes durable findings to a default Notion page.
- Slack self-DMs are pre-approved for quick notes.
## Quick access to iOS/Android simulators
Fish abbreviations expand inline to the real `xcrun` / `adb` command, so the URL stays editable. Swap it for any deep link like `myapp://route`.
- `simsaf ` opens `localhost:` in iOS Simulator Safari.
- `emwv ` opens `10.0.2.2:` in Android Emulator's WebView Shell.
## Self-renaming cmux workspaces
[cmux](https://cmux.com/) runs coding agents in parallel tabs. The agent updates its own tab title whenever focus shifts, so you can find the right session at a glance.
## Warm-dark, agent and terminal
`material-stone-dark` covers Ghostty(cmux), Fish, and Claude Code. One palette either side of the agent boundary.
## Bootstrap
Install with [Homebrew](https://brew.sh/) and [GNU Stow](https://www.gnu.org/software/stow/).
```sh
# 1. Install Homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# 2. Clone
git clone ~/Projects/dotfiles
cd ~/Projects/dotfiles
# 3. Install everything from Brewfile
brew bundle install
# 4. Stow every package into $HOME
cd packages && stow -t ~ */
# Or selectively
stow -t ~ fish git starship
# 5. (Optional) Enable brew autoupdate
brew autoupdate start --upgrade --immediate --cleanup --sudo
```
## Per-machine overrides
Anything matching `*.local.*` or `*.secret.*` is gitignored, so machine-specific values live next to their checked-in counterpart.
```
packages/fish/.config/fish/conf.d/
├─ linear.fish.example # checked in template
└─ linear.local.fish # ignored, real values
```
### When `.local` naming doesn't fit, fold / unfold
When the filename itself is meaningful (e.g. Claude Code's `commands/X.md`, where the filename _is_ the slash command), the per-machine file has to live outside the repo, directly under `~/...`. But if stow has _folded_ that directory into a single symlink back to the repo, new files inside it will land in the repo instead. Unfold once first.
```fish
rm ~/ && mkdir ~/
cd ~/Projects/dotfiles/packages && stow -R -t ~
```
## Uninstall
```fish
cd ~/Projects/dotfiles/packages
stow -D -t ~ # one package
stow -D -t ~ */ # everything
```
## Notes
- `~/.config/karabiner` must be symlinked as a whole directory ([Docs](https://karabiner-elements.pqrs.org/docs/manual/misc/configuration-file-path/)).