# Codeg [![Release](https://img.shields.io/github/v/release/xintaofei/codeg)](https://github.com/xintaofei/codeg/releases) [![License](https://img.shields.io/github/license/xintaofei/codeg)](../../LICENSE) [![Tauri](https://img.shields.io/badge/Tauri-2.x-24C8DB)](https://tauri.app/) [![Next.js](https://img.shields.io/badge/Next.js-16-black)](https://nextjs.org/) [![Docker](https://img.shields.io/badge/Docker-ready-2496ED)](../../Dockerfile)

English | 简体中文 | 繁體中文 | 日本語 | 한국어 | Español | Deutsch | Français | Português | العربية

Codeg(Code Generation)는 엔터프라이즈급 멀티 Agent 코딩 워크스페이스입니다. Claude Code, Codex CLI, OpenCode, Gemini CLI, OpenClaw 등 로컬 AI 코딩 Agent를 데스크톱 앱, 독립형 서버 또는 Docker 컨테이너로 통합하여 — 브라우저만으로 어디서든 원격 개발이 가능하며 — 대화 집계, 병렬 `git worktree` 개발, MCP/Skills 관리, 채팅 채널 연동(Telegram, Lark, iLink 등), Git/파일/터미널 통합 워크플로를 제공합니다. ## 메인 인터페이스 ![Codeg Light](../images/main-light.png#gh-light-mode-only) ![Codeg Dark](../images/main-dark.png#gh-dark-mode-only) ## 설정 | 에이전트 | MCP | Skills | 버전 관리 | 웹 서비스 | | :---: | :---: | :---: | :---: | :---: | | ![Agents](../images/1-light.png#gh-light-mode-only) ![Agents](../images/1-dark.png#gh-dark-mode-only) | ![MCP](../images/2-light.png#gh-light-mode-only) ![MCP](../images/2-dark.png#gh-dark-mode-only) | ![Skills](../images/3-light.png#gh-light-mode-only) ![Skills](../images/3-dark.png#gh-dark-mode-only) | ![Version Control](../images/4-light.png#gh-light-mode-only) ![Version Control](../images/4-dark.png#gh-dark-mode-only) | ![Web Service](../images/5-light.png#gh-light-mode-only) ![Web Service](../images/5-dark.png#gh-dark-mode-only) | ## 하이라이트 - 동일 프로젝트에서 멀티 Agent 통합 워크스페이스 - 로컬 대화 수집 및 구조화 렌더링 - 내장 `git worktree` 플로를 통한 병렬 개발 - **프로젝트 부트** — 시각적 설정과 실시간 미리보기로 새 프로젝트 생성 - **채팅 채널** — Telegram, Lark(Feishu), iLink(Weixin) 등을 코딩 에이전트에 연결하여 전체 세션 상호작용 및 원격 작업 제어 - MCP 관리 (로컬 스캔 + 레지스트리 검색/설치) - Skills 관리 (글로벌 및 프로젝트 범위) - Git 원격 계정 관리 (GitHub 및 기타 Git 서버) - Web 서비스 모드 — 브라우저에서 Codeg에 접속하여 원격 작업 가능 - **독립형 서버 배포** — 모든 Linux/macOS 서버에서 `codeg-server`를 실행하고 브라우저로 접속 - **Docker 지원** — `docker compose up` 또는 `docker run` 지원, 사용자 정의 토큰/포트, 데이터 영속화 및 프로젝트 디렉토리 마운트 지원 - 통합 엔지니어링 루프 (파일 트리, Diff, Git 변경사항, 커밋, 터미널) ## 프로젝트 부트 분할 패널 인터페이스로 새 프로젝트를 시각적으로 생성: 왼쪽에서 설정, 오른쪽에서 실시간 미리보기. ![Project Boot Light](../images/project-boot-light.png#gh-light-mode-only) ![Project Boot Dark](../images/project-boot-dark.png#gh-dark-mode-only) ### 주요 기능 - **시각적 설정** — 드롭다운에서 스타일, 색상 테마, 아이콘 라이브러리, 글꼴, 테두리 반경 등을 선택하면 미리보기가 즉시 업데이트 - **실시간 미리보기** — 프로젝트 생성 전에 선택한 룩앤필을 실시간으로 확인 - **원클릭 생성** — "프로젝트 생성"을 클릭하면 프리셋 설정, 프레임워크 템플릿(Next.js / Vite / React Router / Astro / Laravel), 패키지 매니저(pnpm / npm / yarn / bun)로 `shadcn init` 실행 - **패키지 매니저 감지** — 설치된 패키지 매니저를 자동으로 감지하고 버전 표시 - **원활한 통합** — 새로 생성된 프로젝트가 Codeg 워크스페이스에서 바로 열림 현재 **shadcn/ui** 프로젝트 스캐폴딩을 지원하며, 탭 기반 디자인으로 향후 더 많은 프로젝트 유형을 지원할 준비가 되어 있습니다. ## 채팅 채널 즐겨 사용하는 메신저 앱 — Telegram, Lark(Feishu), iLink(Weixin) 등 — 을 AI 코딩 에이전트에 연결하세요. 채팅에서 직접 작업을 생성하고, 후속 메시지를 보내고, 권한을 승인하고, 세션을 재개하고, 활동을 모니터링할 수 있습니다 — 도구 호출 상세 정보, 권한 프롬프트, 완료 요약이 포함된 실시간 에이전트 응답을 브라우저를 열지 않고도 받을 수 있습니다. ### 지원 채널 | 채널 | 프로토콜 | 상태 | | --- | --- | --- | | Telegram | Bot API (HTTP 롱폴링) | 내장 | | Lark (Feishu) | WebSocket + REST API | 내장 | | iLink (Weixin) | WebSocket + REST API | 내장 | > 추가 채널(Discord, Slack, DingTalk 등)은 향후 릴리스에서 지원 예정입니다. ### 주요 기능 - **세션 상호작용** — 전체 에이전트 세션 실행: `/folder`로 프로젝트 선택, `/agent`로 에이전트 선택, `/task <설명>`으로 작업 시작, 일반 텍스트로 후속 메시지 전송. `/resume`으로 이전 세션 재개, `/cancel`로 중단, `/sessions`로 활성 세션 목록 확인 - **권한 제어** — 에이전트가 채팅에서 도구 실행 권한을 요청; `/approve`(또는 `/approve always`로 자동 승인) 및 `/deny`로 응답 - **이벤트 알림** — 에이전트 턴 완료, 도구 호출, 오류가 리치 포맷으로 실시간 푸시 - **조회 명령어** — `/search <키워드>`, `/today`, `/status`, `/help`로 빠른 조회; 명령 접두사 설정 가능 - **일일 리포트** — 예약된 시간에 자동 일일 요약 생성(대화 수, 에이전트 유형별 분석, 프로젝트 활동 포함) - **다국어 지원** — 10개 언어의 메시지 템플릿(영어, 간체/번체 중국어, 일본어, 한국어, 스페인어, 독일어, 프랑스어, 포르투갈어, 아랍어) - **보안 자격증명** — 토큰은 OS 키링에 저장되며 설정 파일이나 로그에 노출되지 않음 - **리치 메시지** — Telegram은 Markdown 포맷, Lark은 카드 기반 레이아웃, iLink은 리치 텍스트 메시지; 모든 플랫폼에서 일반 텍스트 폴백 지원 ### 설정 1. **설정 → 채팅 채널**에서 채널 생성(Telegram, Lark 또는 iLink 선택) 2. 봇 토큰(Telegram), 앱 자격증명(Lark) 또는 QR 코드로 로그인(iLink) — OS 키링에 안전하게 저장 3. 이벤트 필터 및 선택적 일일 리포트 일정 설정 4. 연결 — 에이전트가 이벤트를 발생시키면 메시지가 흐르기 시작 ## 지원 에이전트 | Agent | 환경 변수 경로 | macOS / Linux 기본값 | Windows 기본값 | | --- | --- | --- | --- | | Claude Code | `$CLAUDE_CONFIG_DIR/projects` | `~/.claude/projects` | `%USERPROFILE%\\.claude\\projects` | | Codex CLI | `$CODEX_HOME/sessions` | `~/.codex/sessions` | `%USERPROFILE%\\.codex\\sessions` | | OpenCode | `$XDG_DATA_HOME/opencode/opencode.db` | `~/.local/share/opencode/opencode.db` | `%USERPROFILE%\\.local\\share\\opencode\\opencode.db` | | Gemini CLI | `$GEMINI_CLI_HOME/.gemini` | `~/.gemini` | `%USERPROFILE%\\.gemini` | | OpenClaw | — | `~/.openclaw/agents` | `%USERPROFILE%\\.openclaw\\agents` | | Cline | `$CLINE_DIR` | `~/.cline/data/tasks` | `%USERPROFILE%\\.cline\\data\\tasks` | > 참고: 환경 변수가 기본 경로보다 우선합니다. ## 빠른 시작 ### 요구 사항 - Node.js `>=22` (권장) - pnpm `>=10` - Rust stable (2021 edition) - Tauri 2 빌드 의존성 (데스크톱 모드만 해당) Linux (Debian/Ubuntu) 예시: ```bash sudo apt-get update sudo apt-get install -y \ libwebkit2gtk-4.1-dev \ libayatana-appindicator3-dev \ librsvg2-dev \ patchelf ``` ### 개발 ```bash pnpm install # 프론트엔드 정적 내보내기 (out/) pnpm build # 전체 데스크톱 앱 (Tauri + Next.js) pnpm tauri dev # 프론트엔드만 pnpm dev # 데스크톱 빌드 pnpm tauri build # 독립형 서버 (Tauri/GUI 불필요) pnpm server:dev # 서버 릴리스 바이너리 빌드 pnpm server:build # Lint pnpm eslint . # Rust 검사 (src-tauri/에서 실행) cargo check cargo clippy cargo build ``` ### 서버 배포 Codeg는 데스크톱 환경 없이 독립형 웹 서버로 실행할 수 있습니다. #### 옵션 1: 원라인 설치 (Linux / macOS) ```bash curl -fsSL https://raw.githubusercontent.com/xintaofei/codeg/main/install.sh | bash ``` 특정 버전 또는 사용자 지정 디렉토리에 설치: ```bash curl -fsSL https://raw.githubusercontent.com/xintaofei/codeg/main/install.sh | bash -s -- --version v0.5.2 --dir ~/.local/bin ``` 실행: ```bash codeg-server ``` #### 옵션 2: 원라인 설치 (Windows PowerShell) ```powershell irm https://raw.githubusercontent.com/xintaofei/codeg/main/install.ps1 | iex ``` 또는 특정 버전 설치: ```powershell .\install.ps1 -Version v0.5.2 ``` #### 옵션 3: GitHub Releases에서 다운로드 사전 빌드된 바이너리(웹 에셋 포함)는 [Releases](https://github.com/xintaofei/codeg/releases) 페이지에서 다운로드할 수 있습니다: | 플랫폼 | 파일 | | --- | --- | | Linux x64 | `codeg-server-linux-x64.tar.gz` | | Linux arm64 | `codeg-server-linux-arm64.tar.gz` | | macOS x64 | `codeg-server-darwin-x64.tar.gz` | | macOS arm64 | `codeg-server-darwin-arm64.tar.gz` | | Windows x64 | `codeg-server-windows-x64.zip` | ```bash # 예시: 다운로드, 압축 해제, 실행 tar xzf codeg-server-linux-x64.tar.gz cd codeg-server-linux-x64 CODEG_STATIC_DIR=./web ./codeg-server ``` #### 옵션 4: Docker ```bash # Docker Compose 사용 (권장) docker compose up -d # 또는 Docker로 직접 실행 docker run -d -p 3080:3080 -v codeg-data:/data ghcr.io/xintaofei/codeg:latest # 사용자 정의 토큰 및 프로젝트 디렉토리 마운트 docker run -d -p 3080:3080 \ -v codeg-data:/data \ -v /path/to/projects:/projects \ -e CODEG_TOKEN=your-secret-token \ ghcr.io/xintaofei/codeg:latest ``` Docker 이미지는 멀티 스테이지 빌드(Node.js + Rust → 경량 Debian 런타임)를 사용하며, 저장소 작업을 위한 `git`과 `ssh`가 포함되어 있습니다. 데이터는 `/data` 볼륨에 영속적으로 저장됩니다. 선택적으로 프로젝트 디렉토리를 마운트하여 컨테이너 내에서 로컬 저장소에 접근할 수 있습니다. #### 옵션 5: 소스에서 빌드 ```bash pnpm install && pnpm build # 프론트엔드 빌드 cd src-tauri cargo build --release --bin codeg-server --no-default-features CODEG_STATIC_DIR=../out ./target/release/codeg-server ``` #### 구성 환경 변수: | 변수 | 기본값 | 설명 | | --- | --- | --- | | `CODEG_PORT` | `3080` | HTTP 포트 | | `CODEG_HOST` | `0.0.0.0` | 바인드 주소 | | `CODEG_TOKEN` | *(랜덤)* | 인증 토큰 (시작 시 stderr에 출력) | | `CODEG_DATA_DIR` | `~/.local/share/codeg` | SQLite 데이터베이스 디렉토리 | | `CODEG_STATIC_DIR` | `./web` 또는 `./out` | Next.js 정적 내보내기 디렉토리 | ## 아키텍처 ```text Next.js 16 (Static Export) + React 19 | | invoke() (desktop) / fetch() + WebSocket (web) v ┌─────────────────────────┐ │ Transport Abstraction │ │ (Tauri IPC or HTTP/WS) │ └─────────────────────────┘ | v ┌─── Tauri Desktop ───┐ ┌─── codeg-server ───┐ │ Tauri 2 Commands │ │ Axum HTTP + WS │ │ (window management) │ │ (standalone mode) │ └──────────┬───────────┘ └──────────┬──────────┘ └──────────┬───────────────┘ v Shared Rust Core |- AppState |- ACP Manager |- Parsers (conversation ingestion) |- Chat Channels |- Git / File Tree / Terminal |- MCP marketplace + config |- SeaORM + SQLite | ┌───────┼───────┐ v v v Local Filesystem Git Chat Channels / Git Repos Repos (Telegram, Lark, iLink) ``` ## 제약 사항 - 프론트엔드는 정적 내보내기 사용 (`output: "export"`) - Next.js 동적 라우트 (`[param]`) 불가; 대신 쿼리 파라미터 사용 - Tauri 명령 파라미터: 프론트엔드 `camelCase`, Rust `snake_case` - TypeScript strict 모드 ## 개인정보 보호 및 보안 - 파싱, 저장, 프로젝트 작업은 기본적으로 로컬 우선 - 네트워크 접근은 사용자가 명시적으로 작업을 실행할 때만 발생 - 엔터프라이즈 환경을 위한 시스템 프록시 지원 - 웹 서비스 모드에서는 토큰 기반 인증 사용 ## 라이선스 Apache-2.0. `LICENSE` 참고.