저장소를 clone한 뒤 설치할 그룹의 옵션을 지정해 실행한다. 인자 없이 실행하면 도움말을 표시하며, 옵션은 조합할 수 있다. --all은 모든 그룹을 설치한다.
./scripts/install.sh --help
./scripts/install.sh -h
./scripts/install.sh --cli
./scripts/install.sh --apps
./scripts/install.sh --fonts
./scripts/install.sh --agents
./scripts/install.sh --cli --agents
./scripts/install.sh --all그룹별 설치의 독립적인 항목이 실패해도 가능한 나머지 작업은 계속 진행하며, 마지막에 실패 정보와 재실행 명령을 출력한다. 링크 원본이 없거나 기존 설정과 충돌하면 변경 전에 안전하게 중단하며, 기존 파일이나 링크를 덮어쓰지 않는다.
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"brew install --cask 1password 1password-clibrew install gh
gh auth logingh repo clone ujuc/dotrc ${HOME}/.config/dotrc- CLI 테마
brew install starship
ln -sf ${DOTRCDIR}/starship.toml ${XDG_CONFIG_HOME}/starship.tomlbrew install zimfwln -sf ${HOME}/.config/dotrc/zshrc ${HOME}/.zshrc- xcode util에서 제공하는 라이브러리 말고 GNU 라이브러리를 사용하기 위해서 추가.
brew install coreutilsbrew install bat
mkdir -p ${XDG_CONFIG_HOME}/bat
ln -sf ${DOTRCDIR}/batrc ${XDG_CONFIG_HOME}/bat/configbrew install ezabrew install zoxidebrew install fzfbrew install vim- 할께 있으면 하는걸로...
- 따로 설치하지 않으면 xcode 에서 제공하는 git을 사용하게됨.
brew install git- User
git config --global user.email ""
git config --global user.name ""- Core
git config --global core.autocrlf input
git config --global core.whitespace cr-at-eol,fix,trailing-space,-indent-with-non-tab- Merge
git config --global merge.conflictstyle zdiff3- Init
git config --global init.defaultBranch main- Commit
git config --global commit.template ${DOTRCDIR}/gitmessage- Hooks (커밋 메시지 동사형
-다종결 검증)
git -C ${DOTRCDIR} config core.hooksPath .githooksbrew install git-delta
git config --global core.pager delta
git config --global interactive.diffFilter "delta --color-only"
git config --global delta.line-numbers true
git config --global delta.side-by-side true
git config --global delta.navigate true
git config --global delta.diff-so-fancy true
git config --global delta.hyperlinks truebrew install tig
mkdir -p ${XDG_CONFIG_HOME}/tig
ln -sf ${DOTRCDIR}/tigrc ${XDG_CONFIG_HOME}/tig/configcurl https://mise.run | sh
# Autocomplete
mise use -g uv
mise use -g node- YAML 파서. Claude 스킬 검증 스크립트에서 사용.
brew install yq에이전트 설정은 이 저장소의 agents/ 디렉터리에서 함께 관리합니다.
curl -fsSL https://claude.ai/install.sh | bash
ln -sf ${DOTRC_AGENTS_DIR}/claude ${HOME}/.claude이 저장소는 Claude만 관리한다. 예전 버전으로 설치한 기기에 ~/.codex, ~/.config/amp, ~/.pi가 agents/ 하위를 가리키는 심링크로 남아 있으면 깨진 링크이므로 직접 지운다([ -L ~/.codex ] && rm ~/.codex).
# Marketplaces
/plugin marketplace add anthropics/claude-plugins-official
/plugin marketplace add dietrichgebert/ponytail
/plugin marketplace add ayghri/i-have-adhd
/plugin marketplace add jarrodwatts/claude-hud
/plugin marketplace add typesafe-ai/skills
# Plugins
/plugin install superpowers@claude-plugins-official
/plugin install remember@claude-plugins-official
/plugin install ponytail@ponytail
/plugin install i-have-adhd@i-have-adhd
/plugin install claude-hud@claude-hud
/plugin install typesafe@typesafe-ai- superpowers — workflow skills 및 superpowers framework
- ponytail — 단순한 구현을 우선하는 개발 모드
- remember — 세션 기록 저장
- i-have-adhd — ADHD 친화 출력 형식
- claude-hud — 컨텍스트·에이전트·todo를 보여주는 상태줄 (아래
claude-hud절) - typesafe — TypeSafe 판단 프리미티브 스킬
~/.claude/settings.json은 추적하지 않는다(agents/.gitignore). /ultra-config 같은 mod와 /config가 수시로 고쳐 쓰는 파일이라
커밋 노이즈만 늘었기 때문이다. 마지막으로 추적했던 전체 내용은 git show a56ea6f:agents/claude/settings.json으로 볼 수 있다.
새 기기에서는 아래 내용을 ~/.claude/settings.json에 그대로 넣는다. enabledPlugins·extraKnownMarketplaces는 위 /plugin 명령이,
statusLine은 /claude-hud:setup이 써 주므로 뺐다. hooks·permissions·env·pluginConfigs를 바꿀 때는 이 블록도 함께 고친다.
{
"$schema": "https://json.schemastore.org/claude-code-settings.json",
"respectGitignore": true,
"skillListingBudgetFraction": 0.05,
"env": {
"CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1",
"CLAUDISH_MD_MODE": "sibling",
"MAX_MCP_OUTPUT_TOKENS": "10000"
},
"permissions": {
"allow": [
"Bash(git:*)",
"Bash(git -C:*)",
"Bash(gh:*)",
"Bash(find:*)",
"Bash(ls:*)",
"Bash(wc:*)",
"Bash(echo:*)",
"Bash(grep:*)",
"Bash(which:*)",
"Bash(command -v:*)",
"Bash(date:*)",
"Bash(uv:*)",
"Bash(brew bundle:*)",
"Bash(mise which:*)",
"Bash(ollama list:*)",
"Bash(waza:*)",
"Bash(yq:*)",
"Bash(mkdir:*)",
"Bash(ln:*)",
"Bash(cat:*)",
"Bash(jq:*)",
"Bash(mv:*)",
"Bash(rmdir:*)",
"Bash(cd:*)",
"WebFetch(domain:agents.md)",
"WebFetch(domain:github.com)",
"WebFetch(domain:github.blog)",
"WebFetch(domain:raw.githubusercontent.com)",
"WebSearch",
"mcp__acp__Write",
"mcp__acp__Edit",
"mcp__acp__Bash",
"Skill(commit)",
"Skill(commit:*)",
"Read(~/.claude/skills/egm/**)",
"Read(~/.config/dotrc/agents/claude/skills/egm/**)"
],
"ask": [],
"defaultMode": "auto",
"disableBypassPermissionsMode": "disable"
},
"worktree": {
"baseRef": "fresh"
},
"outputStyle": "explanatory-concise",
"language": "Korean",
"feedbackDrafts": "notify",
"spinnerTipsEnabled": false,
"modelSettings": {
"claude-opus-5-5": {
"effortLevel": "medium"
},
"claude-sonnet-5-5": {
"effortLevel": "low"
},
"claude-fable-5-2": {
"effortLevel": "high"
}
},
"advisorModel": "fable",
"ultracode": true,
"promptSuggestionEnabled": false,
"awaySummaryEnabled": false,
"askUserQuestionTimeout": "never",
"pluginConfigs": {
"agents-md@builtin": {
"options": {
"instructionFiles": "claude-md-and-agents-md"
}
},
"cc-plugin-agents-md@builtin": {
"options": {
"instructionFiles": "claude-md-and-agents-md"
}
},
"ponytail@ponytail": {
"options": {
"sendNames": true,
"ledger": true
}
}
},
"tui": "fullscreen",
"timeFormat": "24-hour",
"skipWorkflowUsageWarning": true,
"theme": "dark-ansi",
"editorMode": "normal",
"preferredNotifChannel": "auto",
"switchModelsOnFlag": true,
"autoContinueAtUsageLimit": true,
"showTurnDuration": true,
"terminalProgressBarEnabled": true,
"teammateMode": "auto",
"inputNeededNotifEnabled": true,
"agentPushNotifEnabled": true,
"skipAutoPermissionPrompt": true,
"useAutoModeDuringPlan": true
}hooks: 두지 않는다.ultracode: 모든 세션을 ultracode(상시 워크플로 오케스트레이션)로 시작한다./effort의 토글은 세션에만 적용되고 이 값을 저장하지 않는다./ultra-config apply baseline은 현재 쓰는 모델의modelSettings.<모델>.effortLevel과useAutoModeDuringPlan같은 프로필 값을 다시 맞춘다.advisorModel은 건드리지 않으므로 이 블록에서 직접 관리한다.
설치 후 /claude-hud:setup을 실행하면 statusLine이 ~/.claude/settings.json에 기록된다.
settings.json은 추적하지 않으므로(위 settings.json 절) 커밋할 것은 없다.
statusLine.command에 bun 경로(mise/installs/bun/<버전>)가 들어가므로 bun을 올리면 /claude-hud:setup을 다시 실행한다.
플러그인 업데이트에는 재설정이 필요 없다(런처가 최신 설치본을 실행).
표시 옵션은 /claude-hud:configure로 바꾸거나 ~/.claude/plugins/claude-hud/config.json을 직접 고친다.
agents/.gitignore가 claude/plugins/*를 제외하므로 이 파일은 추적되지 않는다. 새 환경에서는 아래 내용으로 만든다.
{
"lineLayout": "compact",
"showSeparators": false,
"display": {
"showTools": false,
"showAgents": true,
"showTodos": true,
"showSkills": true,
"showMcp": true,
"showEffortLevel": true,
"showDuration": true,
"showConfigCounts": true
}
}디렉터리별 덮어쓰기는 ~/.claude/claude-hud.json(같은 구조, 값이 우선)에 직접 쓴다. 나머지 옵션은 claude-hud README 참고.
직접 만든 스킬은 agents/claude/skills/ujuc/skills/<name>/에 둔다. ujuc/.claude-plugin/plugin.json
덕분에 Claude Code가 이 디렉터리를 ujuc@skills-dir 플러그인으로 제자리 로드하므로(별도 설치·마켓플레이스
없음), 각 스킬은 /ujuc:commit처럼 ujuc: 접두사로 호출된다. 같은 이름의 개인 스킬이 프로젝트
.claude/skills/ 스킬을 가리는 일을 막기 위한 구분이다. 외부에서 받아 오는 skill-diet·dual-brain(subtree),
ultra-config(mod), ego-browser(심링크)는 agents/claude/skills/ 바로 아래에 둔다.
Mods (claude-code-templates)
--mod는 현재 디렉터리의 .claude/skills/<name>/에 받는다. 상주시킬 mod는 홈에서 받아
agents/claude/skills/<name>/에 그대로 커밋하고(업스트림 plugin.json의 author·license 유지),
시험만 할 mod는 프로젝트 디렉터리에서 받아 저장소를 건드리지 않는다. 갱신은 같은 명령을 다시 실행한 뒤 diff를 리뷰한다.
cd ~ && npx claude-code-templates@latest --mod productivity/ultra-config- ultra-config —
/ultra-config로 설정 프로필(Baseline, Token saver, Fast flow, Max quality, Guarded, Autopilot) 전환.baseline은 이 저장소에서 추가한 내 기준값(Opus 기본 모델, effort high, ultracode, auto 모드)으로, 다른 프로필을 써 보다 흐트러진 설정을/ultra-config apply baseline으로 되돌린다.~/.claude/settings.json을 직접 고치므로 커밋 전 diff를 확인하고, 되돌릴 때는/ultra-config undo
업스트림 스킬 저장소를 git subtree --squash로 agents/claude/skills/<name>/에 넣는다. 본문은 원본 그대로 두고 로컬에서는 group: 한 줄만 더한다.
현재 버전은 squash 커밋의 git-subtree-split: 트레일러에 남는다. generate-skills Step 0과 skill-improver Phase 0이 upstream-check로 subtree·릴리스 플러그인의 새 릴리스 태그를 확인해 경고만 한다.
agents/claude/skills/ujuc/skills/generate-skills/scripts/upstream-check # skill-diet·dual-brain·egm 새 태그와 갱신 명령 확인
agents/claude/skills/ujuc/skills/generate-skills/scripts/skill-diet-upstream pull v0.2.0 # subtree pull --squash 후 링크·검증- skill-diet (MIT,
v0.2.0) — 스킬 편집 순서·크기 예산·before/after/none eval.generate-skills다이어트 모드와skill-improver의diet-recommended가 사용한다. 플러그인(skill-diet@skills-dir)이라skill-diet:skill-diet로 호출하며, 모델 간 성능 차이를 고치는/skill-diet:skill-model-gap은 직접 호출만 된다 - dual-brain (MIT,
v1.7.0) — 설계(Right)·구현(Left) 두 관점 검토./dual-brain으로 호출하며, 쓰기 작업이면 프로젝트 루트의.dual-brain/MEMORY.md에 바뀐 결정을 남긴다
업스트림이 Claude용 플러그인 zip을 릴리스 자산으로 배포하면, 검증한 zip을 agents/claude/skills/<name>/에 풀어 그대로 커밋한다.
.claude-plugin/plugin.json이 있으므로 <name>@skills-dir 플러그인으로 로드된다. marketplace로 같은 플러그인을 설치해 두면 이름이 겹쳐 이 사본은 로드되지 않는다.
cd "$(mktemp -d)" && gh release download v0.1.1 -R google/elephant-goldfish-model -p 'egm-claude-*.zip' -p SHA256SUMS
grep claude SHA256SUMS | shasum -a 256 -c - && gh attestation verify egm-claude-*.zip -R google/elephant-goldfish-model
rm -rf "$DOTRCDIR/agents/claude/skills/egm" && unzip -q egm-claude-*.zip -d "$DOTRCDIR/agents/claude/skills/egm"
git -C "$DOTRCDIR" status --short agents/claude/skills/egm- egm (Apache-2.0,
v0.1.1) — Elephant-Goldfish Model 설계 문서 작성·검토./egm:egm-brainstorm,/egm:egm-draft,/egm:egm-review로 직접 호출한다(자동 호출 꺼짐). 리뷰어는egm:egm-*에이전트이며, 헤드리스 실행에는~/.claude/skills/egm/{agents,docs,resources,skills}/**읽기 권한이 필요하다
agents/claude/evals/<skill>/의 스킬 평가 스위트를 실행하는 CLI다. scripts/install.sh --agents가
업스트림 설치 스크립트로 최신 릴리스 바이너리를 설치한다(/usr/local/bin이 쓰기 가능하면 그곳,
아니면 ~/bin; 둘 다 zshrc의 path에 있다).
curl -fsSL https://raw.githubusercontent.com/microsoft/waza/main/install.sh | bash바이너리만 설치되며 ~/.claude/data/waza-workspace/는 만들지 않는다. 워크스페이스 준비는
agents/claude/skills/ujuc/skills/waza/references/waza-install.md를 따른다. 평가 모델은 mise나 환경변수에
WAZA_ANTHROPIC_API_KEY가 있으면 Claude Haiku 5.5, 없으면 로컬 Ollama를 쓴다.
실행은 항상 waza 스킬의 scripts/waza-run.sh를 거치며, Claude Code에서는 격리 컨텍스트가 필요할 때 경량 워커가 같은 런처를 호출한다.
brew install --cask raycastbrew install --cask zed
ln -sf ${DOTRCDIR}/zed/settings.json ${XDG_CONFIG_HOME}/zed/settings.jsonbrew install --cask visual-studio-codebrew install ollama
ollama pull gemma3
ollama pull qwen3brew install --cask ghostty
mkdir -p ${XDG_CONFIG_HOME}/ghostty
ln -sf ${DOTRCDIR}/ghosttyrc ${XDG_CONFIG_HOME}/ghostty/config# google sans
brew install --cask font-google-sans-code
# MS cascdia code font https://github.com/microsoft/cascadia-code
brew install --cask font-cascadia-code
brew install --cask font-cascadia-code-nf
# D2 coding
brew install --cask font-d2coding-nerd-font
# ibm
brew install --cask font-ibm-plex-sans-kr
brew install --cask font-ibm-plex-serif
# noto
brew install --cask font-noto-color-emoji
brew install --cask font-noto-emoji
brew install --cask font-noto-sans-cjk
brew install --cask font-noto-serif-cjk
# nanum
brew install --cask font-nanum-square
brew install --cask font-nanum-square-neo
brew install --cask font-nanum-square-round- 업무용은
zshrc.work파일을 이용
sudo softwareupdate --install-rosetta --agree-to-license
brew install --cask fujitsu-scansnap-homebrew install --cask google-drivebrew install --cask adobe-creative-cloud