Skip to content

Latest commit

 

History

History
315 lines (238 loc) · 13.5 KB

File metadata and controls

315 lines (238 loc) · 13.5 KB

Codeg

Release License Tauri Next.js Docker

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

Codeg(Code Generation)는 엔터프라이즈급 멀티 Agent 코딩 워크스페이스입니다. Claude Code, Codex CLI, OpenCode, Gemini CLI, OpenClaw, Cline 등 로컬 AI 코딩 Agent를 데스크톱 앱, 독립형 서버 또는 Docker 컨테이너로 통합하여 — 브라우저만으로 어디서든 원격 개발이 가능하며 — 대화 집계, 병렬 git worktree 개발, MCP/Skills 관리, 채팅 채널 연동(Telegram, Lark, iLink 등), Git/파일/터미널 통합 워크플로를 제공합니다.

gallery

메인 인터페이스

Codeg Light Codeg Dark

설정

에이전트 MCP Skills 버전 관리 웹 서비스
Agents Agents MCP MCP Skills Skills Version Control Version Control Web Service Web Service

하이라이트

  • 동일 프로젝트에서 멀티 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 Project Boot Dark

주요 기능

  • 시각적 설정 — 드롭다운에서 스타일, 색상 테마, 아이콘 라이브러리, 글꼴, 테두리 반경 등을 선택하면 미리보기가 즉시 업데이트
  • 실시간 미리보기 — 프로젝트 생성 전에 선택한 룩앤필을 실시간으로 확인
  • 원클릭 생성 — "프로젝트 생성"을 클릭하면 프리셋 설정, 프레임워크 템플릿(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) 예시:

sudo apt-get update
sudo apt-get install -y \
  libwebkit2gtk-4.1-dev \
  libayatana-appindicator3-dev \
  librsvg2-dev \
  patchelf

개발

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)

curl -fsSL https://raw.githubusercontent.com/xintaofei/codeg/main/install.sh | bash

특정 버전 또는 사용자 지정 디렉토리에 설치:

curl -fsSL https://raw.githubusercontent.com/xintaofei/codeg/main/install.sh | bash -s -- --version v0.5.2 --dir ~/.local/bin

실행:

codeg-server

옵션 2: 원라인 설치 (Windows PowerShell)

irm https://raw.githubusercontent.com/xintaofei/codeg/main/install.ps1 | iex

또는 특정 버전 설치:

.\install.ps1 -Version v0.5.2

옵션 3: GitHub Releases에서 다운로드

사전 빌드된 바이너리(웹 에셋 포함)는 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
# 예시: 다운로드, 압축 해제, 실행
tar xzf codeg-server-linux-x64.tar.gz
cd codeg-server-linux-x64
CODEG_STATIC_DIR=./web ./codeg-server

옵션 4: Docker

# 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 런타임)를 사용하며, 저장소 작업을 위한 gitssh가 포함되어 있습니다. 데이터는 /data 볼륨에 영속적으로 저장됩니다. 선택적으로 프로젝트 디렉토리를 마운트하여 컨테이너 내에서 로컬 저장소에 접근할 수 있습니다.

옵션 5: 소스에서 빌드

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 정적 내보내기 디렉토리

아키텍처

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 모드

개인정보 보호 및 보안

  • 파싱, 저장, 프로젝트 작업은 기본적으로 로컬 우선
  • 네트워크 접근은 사용자가 명시적으로 작업을 실행할 때만 발생
  • 엔터프라이즈 환경을 위한 시스템 프록시 지원
  • 웹 서비스 모드에서는 토큰 기반 인증 사용

감사의 말

  • LinuxDO — 모든 것이 시작된 커뮤니티
  • ACP — Agent Client Protocol (ACP)은 codeg가 여러 에이전트와 연결할 수 있는 기반입니다

라이선스

Apache-2.0. LICENSE 참고.