AI 코딩 어시스턴트 설정 동기화 도구 glooit
요약
glooit은 Claude Code, Cursor, Codex 등 다양한 AI 코딩 어시스턴트의 설정을 중앙에서 동기화하는 도구입니다. 이 도구를 사용하면 규칙(Rules), 명령어(Commands), 기술(Skills) 등을 한 곳에 정의하여 여러 환경과 팀원에게 일관되게 적용할 수 있습니다.
핵심 포인트
- 다양한 AI 코딩 어시스턴트 설정을 통합 관리합니다.
- 규칙을 중앙에서 작성하고 모든 도구에 동기화 가능합니다.
- 모노레포 및 CI/CD 파이프라인 환경에 유용합니다.
- 설정 변경 시 재작업할 필요가 없어 개발 효율성이 높아집니다.
Claude Code, Cursor, Codex, OpenCode, Roo Code/Cline 전반에 걸쳐 AI 코딩 어시스턴트 설정을 동기화합니다.
규칙 (Rules) - 에이전트 지침 및 가이드라인
명령어 (Commands) - 사용자 지정 슬래시 명령어
기술 (Skills) - 재사용 가능한 에이전트 기능
에이전트 (Agents) - 사용자 지정 에이전트 정의
MCP 서버 (MCP Servers) - Model Context Protocol 설정
에이전트 훅 (Agent Hooks) - Claude Code 및 Cursor를 위한 생명 주기 훅
설정 병합 (Settings Merge) - 공유 환경 변수/권한을 제공업체 네이티브 설정 파일로 병합합니다.
오늘날 팀들은 다양한 AI 코딩 어시스턴트를 사용합니다. 어떤 팀은 Claude Code를 선호하고, 다른 팀은 Cursor, OpenCode를 사용하며, CI/CD는 Codex에서 실행될 수 있습니다. 각 도구는 자체적인 구성 형식과 위치를 가지고 있습니다:
- Claude Code는
CLAUDE.md를 읽고, 명령어는.claude/commands/에, 기술은.claude/skills/에 저장합니다. - Cursor는 프론트매터(frontmatter)와 함께
.cursor/rules/*.mdc를 사용하고, 명령어는.cursor/commands/에 저장합니다. - OpenCode는
AGENTS.md를 기대하며, 명령어는.opencode/command/에, 에이전트는.opencode/agent/에 저장합니다. - Codex는
AGENTS.md를 기대합니다. - Roo Code/Cline은
.roo/rules/에서 찾습니다.
glooit을 사용하면 규칙을 한 번 작성하여 모든 곳에 동기화할 수 있습니다. 다음 경우에 완벽합니다:
다중 에이전트 팀 (Multi-agent teams) - 모두가 선호하는 AI 어시스턴트를 일관된 규칙으로 사용할 수 있습니다.
모노레포 (Monorepos) - 패키지별로 다른 규칙을 설정하고, 이를 중앙에서 관리할 수 있습니다.
CI/CD 파이프라인 (CI/CD pipelines) - 개발 환경과 자동화 환경에 동일한 규칙을 적용할 수 있습니다.
진화하는 도구 체인 (Evolving tooling) - 설정을 다시 작성하지 않고도 AI 어시스턴트를 전환하거나 추가할 수 있습니다.
# Homebrew (macOS/Linux)
brew tap nikuscs/glooit https://github.com/nikuscs/glooit
brew install glooit
...
glooit init # 구성 생성
glooit sync # 모든 에이전트에 규칙 동기화
규칙을 포함하는 .agents/main.md를 작성한 다음, glooit.config.ts를 설정합니다:
:
레거시 지원:
.glooit도 여전히 지원됩니다. 만약 configDir이 설정되지 않았다면, glooit은 존재하는 경우 .agents를 사용하고, 그렇지 않으면 .glooit로 폴백(fallback)합니다.
import { defineRules } from 'glooit';
export default defineRules({
rules: [
...
glooit sync (또는 bunx glooit sync / npx glooit sync)를 실행하면 다음 파일이 생성됩니다:
CLAUDE.md
for Claude Code.cursor/rules/main.mdc
for CursorAGENTS.md
for Codex
| Agent | Output Path | Format |
|---|---|---|
claude | CLAUDE.md | Markdown |
cursor | .cursor/rules/{name}.mdc | Frontmatter |
codex | AGENTS.md | Markdown |
opencode | AGENTS.md | Markdown |
factory | AGENTS.md | Markdown |
roocode | .roo/rules/{name}.md | Markdown |
generic | {name}.md | Markdown |
| Feature | Claude | Cursor | OpenCode | Codex | Factory | Roo Code/Cline | Generic |
|---|---|---|---|---|---|---|
| Rules | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| ... |
*Codex는 .codex/prompts를 사용합니다
for commands
**OpenCode는 Claude와 호환되는 스킬 경로 (.claude/skills/)를 사용합니다
***Factory는 에이전트를 위해 "droids" (.factory/droids/)를 사용합니다
에이전트별 출력 위치 재정의:
{file: '.agents/backend.md',
to: './',
...
최상위 레벨에서 명령, 스킬 및 에이전트 디렉토리 동기화:
export default defineRules({
rules: [...],
// 간단한 문자열 경로 (기본값은 claude, cursor, opencode)
...
출력 매핑:
commands
→.claude/commands
,.cursor/commands
,.opencode/command
,.codex/prompts
skills
→.claude/skills
,.cursor/skills
,.codex/skills
,.factory/skills
(OpenCode는 .claude/skills를 사용합니다)
agents
→.claude/agents
,.cursor/agents
,.opencode/agent
,.factory/droids
복사 대신 심볼릭 링크(symlink)를 사용하세요. 이렇게 하면 진실의 원천(source of truth)이 .agents에 유지되고 대상(targets)이 즉시 업데이트됩니다.
export default defineRules({
mode: 'symlink', // 또는 'copy'
rules: [
...
심볼릭 링크 모드를 사용해야 하는 이유?
- 소스 파일의 변경 사항이 모든 에이전트 설정에 즉시 반영됩니다 (
glooit sync를 실행할 필요 없음) - 단일 진실의 원천(Single source of truth) - 한 번 편집하면 모든 에이전트가 업데이트된 내용을 확인합니다
- 빠른 반복 및 개발에 유용합니다
제한 사항:
심볼릭 링크는 소스 파일에 직접 연결되므로 변환을 적용할 수 없습니다:
- 규칙별 훅(Per-rule hooks) 및 전역 변환(global transforms)은 건너뜁니다 (훅/변환은 소스 파일을 수정함)
- 병합 규칙 (
file: string[])
) 자동으로 복사 모드로 폴백(fallback)합니다 (여러 파일에 심볼릭 링크 불가) - 에이전트별 포맷팅이 적용되지 않습니다 (각 에이전트는 다른 버전이 필요함)
제한 사항이 적용될 때, glooit은 경고를 표시하고 지침을 제공합니다. glooit unlink을 사용하여 심볼릭 링크를 일반 파일로 변환하세요.
여러 파일을 하나의 출력으로 결합:
{
file: [
'.agents/coding-standards.md',
...
제한 규칙 범위를 특정 파일로 제한:
{
file: '.agents/frontend.md',
to: './apps/frontend',
...
소스 파일의 플레이스홀더를 사용하여 동기화 중 콘텐츠 변환을 수행합니다.
소스 파일 (.agents/main.md):
# Project Guidelines
Last updated: __TIMESTAMP__
## Project Structure
...
설정 파일 (glooit.config.ts):
import { defineRules, transforms } from 'glooit';
export default defineRules({
rules:
...
내장 변환(Built-in transforms):
| 변환 | 플레이스홀더 | 설명 |
|---|---|---|
addTimestamp | __TIMESTAMP__ | 현재 날짜/시간으로 대체 |
replaceEnv | __ENV_VAR__ | process.env.ENV_VAR 값으로 대체 |
replaceStructure | __STRUCTURE__ | 프로젝트 디렉토리 트리로 대체 |
compact | - | 마크다운 정리 (채우기 단어, 추가 새 줄 제거) |
사용법:
- 규칙별 변환: 개별 규칙에
hooks: ['transformName']을 추가합니다. - 전역 변환: 모든 규칙에 실행되도록transforms.after배열에 추가합니다.
AI가 도구를 사용할 때 Claude Code와 Cursor 내부에서 실행되는 라이프사이클 훅(lifecycle hooks)을 구성할 수 있습니다.
export default defineRules({
rules: [...],
hooks:
...
지원 이벤트:
| 이벤트 | Claude Code | Cursor | 설명 |
|---|---|---|---|
PreToolUse | ✓ | - | 도구 실행 전 (차단 가능) |
PostToolUse | ✓ | - | 도구 완료 후 |
beforeShellExecution | ✓ | ✓ | 셸 명령어 실행 전 |
afterFileEdit | ✓ | ✓ | 파일 수정 후 |
Stop | ✓ | ✓ | 에이전트 종료 시 |
스크립트 유형:
.ts 파일을 bun run으로 실행합니다.
.js 파일을 node로 실행합니다.
.sh 파일을 직접 실행합니다.
공유 설정(shared settings)을 제공업체 네이티브 설정 파일에 병합합니다:
export default defineRules({
rules: [...],
settings: {
...
해상도 및 우선순위 규칙 (Resolution and precedence rules):
merge
default는 true입니다.
(병합 대신 덮어쓰려면 merge: false로 설정합니다.)
envFiles
은 선택 사항이며, 기본 조회 경로는 ['.env.agents', '.env.local', '.env']입니다.
settings.env의 각 키에 대해,envFiles순서에서 가장 먼저 일치하는 파일이 적용됩니다..env.agents가 가장 먼저 확인되어 에이전트별 비밀(secrets)을 위한 전용 파일을 제공합니다.- 만약 어떤 환경 파일에서도 키를 찾지 못하면,
process.env가 폴백(fallback)으로 사용됩니다 (CI 및 셸 내보내기 변수에 유용합니다). - 안전 장치: 만약 환경 변수 값들이 git 추적 설정 파일(
claude/codex용)에 쓰여질 경우, 비밀을 커밋하는 것을 방지하기 위해 경고와 함께 동기화가 실패합니다.
기본 설정 출력 파일 (Default settings output files):
claude → .claude/settings.local.json
cursor → .cursor/cli.json
codex → .codex/config.toml
opencode → opencode.json
모델 컨텍스트 프로토콜(Model Context Protocol, MCP) 서버 구성:
export default defineRules({
rules: [...],
mcps: [
...
동기화 전 자동 백업 (Automatic backups before sync):
export default defineRules({
rules: [...],
backup: {
...
glooit init # 설정을 초기화합니다
glooit sync # 규칙 및 MCP를 동기화합니다
glooit link # 제로-설정 심볼릭 링크 동기화 (설정 파일 불필요)
...
link 명령어는 설정 파일을 요구하지 않고도 제로-설정 기반의 심볼릭 링크 동기화를 제공합니다:
glooit link # .agents/ 또는 .glooit/를 자동 감지하고 모든 에이전트로 동기화합니다
glooit link .my-rules # 사용자 지정 소스 디렉토리를 사용합니다
glooit link -t claude,cursor # 특정 에이전트만 동기화합니다
이는 다음 항목들을 자동으로 발견하고 심볼릭 링크를 생성합니다:
CLAUDE.md → Claude Code AGENTS.md → Codex, OpenCode, Factory commands/ → 명령어를 지원하는 모든 에이전트 skills/ → 스킬을 지원하는 모든 에이전트 agents/ → 에이전트/드로이드(droids)를 지원하는 모든 에이전트
upgrade 명령어는 패키지 관리자를 자동 감지하고 glooit가 로컬 또는 전역으로 설치되었는지 여부를 확인합니다:
glooit upgrade # 자동 감지 및 업그레이드
glooit upgrade -g # 강제 전역(global) 업그레이드
glooit upgrade -l # 강제 로컬(local) 업그레이드
모든 명령어는 npx,
bunx,
또는 pnpx와 함께 작동합니다:
npx glooit sync
bunx glooit sync
pnpx glooit sync
전체 기능이 포함된 설정은 examples/full.config.ts를 참조하세요.
# 의존성 설치
bun install
# 테스트 실행
...
bun run release
이는 검사를 실행하고, 버전 증가(version bump)를 요청하며, git 태그를 생성하고 푸시합니다. CI는 npm publish 및 GitHub 릴리스를 자동으로 처리합니다.
이 놀라운 프로젝트들 없이는 이 프로젝트 자체가 불가능했을 것입니다.
- Antfu의 멋진 패키지들
- Ruler Inspiration: 프로젝트 및 아이디어
- Claude: 몇 시간 만에 이 프로젝트를 가능하게 만든 멋진 AI.
MIT
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub Claude Ecosystem의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기