{"id":50638480,"url":"https://github.com/te6-in/dotfiles","last_synced_at":"2026-06-07T05:31:02.626Z","repository":{"id":362458066,"uuid":"1226962729","full_name":"te6-in/dotfiles","owner":"te6-in","description":"An opinionated macOS web dev environment, powered by a custom Claude Code config.","archived":false,"fork":false,"pushed_at":"2026-06-04T08:35:24.000Z","size":42,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-04T10:13:11.952Z","etag":null,"topics":["claude-code","dotfiles","dotfiles-macos"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/te6-in.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"agents.md","dco":null,"cla":null}},"created_at":"2026-05-02T03:08:05.000Z","updated_at":"2026-06-04T08:35:28.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/te6-in/dotfiles","commit_stats":null,"previous_names":["te6-in/dotfiles"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/te6-in/dotfiles","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/te6-in%2Fdotfiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/te6-in%2Fdotfiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/te6-in%2Fdotfiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/te6-in%2Fdotfiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/te6-in","download_url":"https://codeload.github.com/te6-in/dotfiles/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/te6-in%2Fdotfiles/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34010556,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-07T02:00:07.652Z","response_time":124,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["claude-code","dotfiles","dotfiles-macos"],"created_at":"2026-06-07T05:30:59.394Z","updated_at":"2026-06-07T05:31:02.621Z","avatar_url":"https://github.com/te6-in.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# te6-in/dotfiles\n\nAn opinionated macOS web dev environment, powered by a custom Claude Code config.\n\n## Claude Code config\n\n### CLAUDE.md with habits Claude doesn't form on its own\n\nCovers how the agent investigates, edits, and asks, with each rule naming the failure it prevents.\n\n- Pipe expensive command output to `/tmp` once and grep locally.\n- Programmatic shell edits like `sed -i` require a clean git state and a dry-run first.\n- Lean on `AskUserQuestion` at any hint of ambiguity, not free-form chat questions.\n- ... and more\n\n### Hooks that catch agent footguns\n\n- `rm` calls go to macOS Trash and stay recoverable.\n- Lockfile edits are blocked.\n\n### MCP servers, ready out of the box\n\nEvery project picks up [Chrome DevTools for Agents](https://github.com/ChromeDevTools/chrome-devtools-mcp) and [SEED Design](https://seed-design.io/) Figma/Docs integration.\n\n### One workflow across Linear, Slack, and Notion\n\nDecisions, state changes, and findings move out of the private chat onto surfaces the team actually checks.\n\n- Sessions anchor to a Linear issue and auto-transition its status (Todo → In Progress → In Review).\n- `/comment` posts decisions back to the issue thread.\n- `/notion` promotes durable findings to a default Notion page.\n- Slack self-DMs are pre-approved for quick notes.\n\n## Quick access to iOS/Android simulators\n\nFish abbreviations expand inline to the real `xcrun` / `adb` command, so the URL stays editable. Swap it for any deep link like `myapp://route`.\n\n- `simsaf \u003cPORT\u003e` opens `localhost:\u003cPORT\u003e` in iOS Simulator Safari.\n- `emwv \u003cPORT\u003e` opens `10.0.2.2:\u003cPORT\u003e` in Android Emulator's WebView Shell.\n\n## Self-renaming cmux workspaces\n\n[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.\n\n## Warm-dark, agent and terminal\n\n`material-stone-dark` covers Ghostty(cmux), Fish, and Claude Code. One palette either side of the agent boundary.\n\n## Bootstrap\n\nInstall with [Homebrew](https://brew.sh/) and [GNU Stow](https://www.gnu.org/software/stow/).\n\n```sh\n# 1. Install Homebrew\n/bin/bash -c \"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)\"\n\n# 2. Clone\ngit clone \u003cthis-repo\u003e ~/Projects/dotfiles\ncd ~/Projects/dotfiles\n\n# 3. Install everything from Brewfile\nbrew bundle install\n\n# 4. Stow every package into $HOME\ncd packages \u0026\u0026 stow -t ~ */\n\n# Or selectively\nstow -t ~ fish git starship\n\n# 5. (Optional) Enable brew autoupdate\nbrew autoupdate start --upgrade --immediate --cleanup --sudo\n```\n\n## Per-machine overrides\n\nAnything matching `*.local.*` or `*.secret.*` is gitignored, so machine-specific values live next to their checked-in counterpart.\n\n```\npackages/fish/.config/fish/conf.d/\n├─ linear.fish.example   # checked in template\n└─ linear.local.fish     # ignored, real values\n```\n\n### When `.local` naming doesn't fit, fold / unfold\n\nWhen 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.\n\n```fish\nrm ~/\u003cpath\u003e \u0026\u0026 mkdir ~/\u003cpath\u003e\ncd ~/Projects/dotfiles/packages \u0026\u0026 stow -R -t ~ \u003cpackage\u003e\n```\n\n## Uninstall\n\n```fish\ncd ~/Projects/dotfiles/packages\nstow -D -t ~ \u003cpackage\u003e   # one package\nstow -D -t ~ */          # everything\n```\n\n## Notes\n\n- `~/.config/karabiner` must be symlinked as a whole directory ([Docs](https://karabiner-elements.pqrs.org/docs/manual/misc/configuration-file-path/)).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fte6-in%2Fdotfiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fte6-in%2Fdotfiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fte6-in%2Fdotfiles/lists"}