# 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) es un espacio de trabajo empresarial para codificación con múltiples agentes. Integra agentes locales de codificación con IA (Claude Code, Codex CLI, OpenCode, Gemini CLI, OpenClaw, Cline, etc.) en una aplicación de escritorio, servidor independiente o contenedor Docker — permitiendo el desarrollo remoto desde cualquier navegador — con agregación de conversaciones, desarrollo paralelo con `git worktree`, gestión de MCP/Skills, interacción con canales de chat (Telegram, Lark, etc.) y flujos integrados de Git/archivos/terminal. ## Interfaz principal ![Codeg Light](../images/main-light.png#gh-light-mode-only) ![Codeg Dark](../images/main-dark.png#gh-dark-mode-only) ## Configuración | Agentes | MCP | Skills | Control de versiones | Servicio web | | :---: | :---: | :---: | :---: | :---: | | ![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) | ## Puntos destacados - Espacio de trabajo unificado para múltiples agentes en el mismo proyecto - Ingesta local de conversaciones con renderizado estructurado - Desarrollo paralelo con flujos integrados de `git worktree` - **Inicio de Proyecto** — crea nuevos proyectos visualmente con vista previa en tiempo real - **Canales de Chat** — conecta Telegram, Lark (Feishu) y más a tus agentes de codificación para notificaciones en tiempo real y comandos interactivos - Gestión de MCP (escaneo local + búsqueda/instalación desde registro) - Gestión de Skills (ámbito global y por proyecto) - Gestión de cuentas remotas de Git (GitHub y otros servidores Git) - Modo de servicio web — accede a Codeg desde cualquier navegador para trabajo remoto - Despliegue como servidor independiente — ejecuta codeg-server en cualquier servidor Linux/macOS, accede desde el navegador - **Soporte Docker** — `docker compose up` o `docker run`, con token/puerto personalizables, persistencia de datos y montaje de directorios de proyecto - Ciclo de ingeniería integrado (árbol de archivos, diff, cambios git, commit, terminal) ## Inicio de Proyecto Crea nuevos proyectos visualmente con una interfaz de panel dividido: configura a la izquierda, vista previa en tiempo real a la derecha. ![Project Boot Light](../images/project-boot-light.png#gh-light-mode-only) ![Project Boot Dark](../images/project-boot-dark.png#gh-dark-mode-only) ### Qué ofrece - **Configuración visual** — selecciona estilo, tema de color, biblioteca de iconos, fuente, radio de borde y más desde menús desplegables; la vista previa se actualiza instantáneamente - **Vista previa en vivo** — visualiza el aspecto elegido renderizado en tiempo real antes de crear nada - **Creación con un clic** — presiona "Crear proyecto" y el launcher ejecuta `shadcn init` con tu preset, plantilla de framework (Next.js / Vite / React Router / Astro / Laravel) y gestor de paquetes (pnpm / npm / yarn / bun) - **Detección de gestores de paquetes** — verifica automáticamente qué gestores están instalados y muestra sus versiones - **Integración fluida** — el proyecto recién creado se abre directamente en el workspace de Codeg Actualmente soporta scaffolding de proyectos **shadcn/ui**, con un diseño basado en pestañas preparado para más tipos de proyectos en el futuro. ## Canales de Chat Conecta tus aplicaciones de mensajería favoritas — Telegram, Lark (Feishu) y más — a tus agentes de codificación IA. Recibe notificaciones en tiempo real cuando los agentes completen tareas o encuentren errores, consulta el historial de conversaciones desde tu teléfono y obtén informes diarios automatizados — todo sin salir de tu aplicación de chat. ### Canales soportados | Canal | Protocolo | Estado | | --- | --- | --- | | Telegram | Bot API (HTTP long-polling) | Integrado | | Lark (Feishu) | WebSocket + REST API | Integrado | > Se planean más canales (Discord, Slack, WeChat, DingTalk, etc.) para futuras versiones. ### Características principales - **Notificaciones de eventos** — las finalizaciones de turno y errores de los agentes se envían a todos los canales habilitados en tiempo real - **Comandos interactivos** — envía comandos (`/recent`, `/search`, `/detail`, `/today`, `/status`, `/help`) desde tu app de chat y obtén respuestas instantáneas; prefijo de comando configurable. Los comandos relacionados con conversaciones (inicio, parada, aprobación) están planificados para próximas versiones - **Informes diarios** — resumen diario automatizado a una hora programada, incluyendo recuento de conversaciones, desglose por tipo de agente y actividad del proyecto - **Multi-idioma** — plantillas de mensajes en 10 idiomas (inglés, chino simplificado/tradicional, japonés, coreano, español, alemán, francés, portugués, árabe) - **Credenciales seguras** — los tokens se almacenan en el llavero del SO, nunca se exponen en archivos de configuración ni logs - **Mensajes enriquecidos** — formato Markdown para Telegram, diseño basado en tarjetas para Lark; respaldo en texto plano para todas las plataformas ### Configuración 1. Crea un canal en **Configuración → Canales de Chat** (elige Telegram o Lark) 2. Introduce tu token de bot (Telegram) o credenciales de la app (Lark) — almacenados de forma segura en el llavero del SO 3. Configura los filtros de eventos y la programación opcional del informe diario 4. Conecta — los mensajes empiezan a fluir cuando los agentes emiten eventos ## Agentes compatibles | Agente | Ruta de variable de entorno | Ruta por defecto en macOS / Linux | Ruta por defecto en 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` | > Nota: las variables de entorno tienen prioridad sobre las rutas de respaldo. ## Inicio rápido ### Requisitos - Node.js `>=22` (recomendado) - pnpm `>=10` - Rust stable (2021 edition) - Dependencias de compilación de Tauri 2 (solo modo escritorio) Ejemplo para Linux (Debian/Ubuntu): ```bash sudo apt-get update sudo apt-get install -y \ libwebkit2gtk-4.1-dev \ libayatana-appindicator3-dev \ librsvg2-dev \ patchelf ``` ### Desarrollo ```bash pnpm install # Exportación estática del frontend a out/ pnpm build # Aplicación de escritorio completa (Tauri + Next.js) pnpm tauri dev # Solo frontend pnpm dev # Compilación de escritorio pnpm tauri build # Servidor independiente (sin Tauri/GUI necesario) pnpm server:dev # Compilar binario de servidor para producción pnpm server:build # Lint pnpm eslint . # Verificaciones de Rust (ejecutar en src-tauri/) cargo check cargo clippy cargo build ``` ### Despliegue del servidor Codeg puede ejecutarse como un servidor web independiente sin entorno de escritorio. #### Opción 1: Instalación en una línea (Linux / macOS) ```bash curl -fsSL https://raw.githubusercontent.com/xintaofei/codeg/main/install.sh | bash ``` Instalar una versión específica o en un directorio personalizado: ```bash curl -fsSL https://raw.githubusercontent.com/xintaofei/codeg/main/install.sh | bash -s -- --version v0.5.2 --dir ~/.local/bin ``` Luego ejecutar: ```bash codeg-server ``` #### Opción 2: Instalación en una línea (Windows PowerShell) ```powershell irm https://raw.githubusercontent.com/xintaofei/codeg/main/install.ps1 | iex ``` O instalar una versión específica: ```powershell .\install.ps1 -Version v0.5.2 ``` #### Opción 3: Descargar desde GitHub Releases Los binarios precompilados (con recursos web incluidos) están disponibles en la página de [Releases](https://github.com/xintaofei/codeg/releases): | Plataforma | Archivo | | --- | --- | | 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 # Ejemplo: descargar, extraer y ejecutar tar xzf codeg-server-linux-x64.tar.gz cd codeg-server-linux-x64 CODEG_STATIC_DIR=./web ./codeg-server ``` #### Opción 4: Docker ```bash # Usando Docker Compose (recomendado) docker compose up -d # O ejecutar directamente con Docker docker run -d -p 3080:3080 -v codeg-data:/data ghcr.io/xintaofei/codeg:latest # Con token personalizado y directorio de proyecto montado 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 ``` La imagen Docker utiliza una compilación multi-etapa (Node.js + Rust → runtime Debian slim) e incluye `git` y `ssh` para operaciones con repositorios. Los datos se persisten en el volumen `/data`. Opcionalmente, puedes montar directorios de proyecto para acceder a repositorios locales desde el contenedor. #### Opción 5: Compilar desde el código fuente ```bash pnpm install && pnpm build # compilar frontend cd src-tauri cargo build --release --bin codeg-server --no-default-features CODEG_STATIC_DIR=../out ./target/release/codeg-server ``` #### Configuración Variables de entorno: | Variable | Valor por defecto | Descripción | | --- | --- | --- | | `CODEG_PORT` | `3080` | Puerto HTTP | | `CODEG_HOST` | `0.0.0.0` | Dirección de enlace | | `CODEG_TOKEN` | *(aleatorio)* | Token de autenticación (se imprime en stderr al iniciar) | | `CODEG_DATA_DIR` | `~/.local/share/codeg` | Directorio de base de datos SQLite | | `CODEG_STATIC_DIR` | `./web` o `./out` | Directorio de exportación estática de Next.js | ## Arquitectura ```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) ``` ## Restricciones - El frontend usa exportación estática (`output: "export"`) - Sin rutas dinámicas de Next.js (`[param]`); se usan parámetros de consulta en su lugar - Parámetros de comandos Tauri: `camelCase` en frontend, `snake_case` en Rust - TypeScript en modo estricto ## Privacidad y seguridad - Enfoque local por defecto para análisis, almacenamiento y operaciones de proyecto - El acceso a la red solo ocurre mediante acciones iniciadas por el usuario - Soporte de proxy del sistema para entornos empresariales - El modo de servicio web utiliza autenticación basada en tokens ## Licencia Apache-2.0. Ver `LICENSE`.