[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-75016":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":25,"hasPages":23,"topics":26,"createdAt":10,"pushedAt":10,"updatedAt":41,"readmeContent":42,"aiSummary":43,"trendingCount":16,"starSnapshotCount":16,"syncStatus":44,"lastSyncTime":45,"discoverSource":46},75016,"codeg","xintaofei\u002Fcodeg","xintaofei","Collaborative multi-agent AI coding workspace: aggregate sessions from Claude Code, Codex, Gemini CLI, etc. Desktop app, self-hosted server, or Docker.","",null,"Rust",1597,177,5,69,0,77,159,448,231,19.75,"Apache License 2.0",false,"main",true,[27,28,29,30,31,32,33,34,35,36,37,38,39,40],"acp","agent","claude-code","code-generation","codex","gemini-cli","git","gui","ilink","lark","openclaw","opencode","telegram","worktree","2026-06-12 02:03:31","# Codeg\n\n[![Release](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fv\u002Frelease\u002Fxintaofei\u002Fcodeg)](https:\u002F\u002Fgithub.com\u002Fxintaofei\u002Fcodeg\u002Freleases)\n[![License](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002Fxintaofei\u002Fcodeg)](.\u002FLICENSE)\n[![Tauri](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FTauri-2.x-24C8DB)](https:\u002F\u002Ftauri.app\u002F)\n[![Next.js](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FNext.js-16-black)](https:\u002F\u002Fnextjs.org\u002F)\n[![Docker](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FDocker-ready-2496ED)](.\u002FDockerfile)\n\n\u003Cp>\n  \u003Cstrong>English\u003C\u002Fstrong> |\n  \u003Ca href=\".\u002Fdocs\u002Freadme\u002FREADME.zh-CN.md\">简体中文\u003C\u002Fa> |\n  \u003Ca href=\".\u002Fdocs\u002Freadme\u002FREADME.zh-TW.md\">繁體中文\u003C\u002Fa> |\n  \u003Ca href=\".\u002Fdocs\u002Freadme\u002FREADME.ja.md\">日本語\u003C\u002Fa> |\n  \u003Ca href=\".\u002Fdocs\u002Freadme\u002FREADME.ko.md\">한국어\u003C\u002Fa> |\n  \u003Ca href=\".\u002Fdocs\u002Freadme\u002FREADME.es.md\">Español\u003C\u002Fa> |\n  \u003Ca href=\".\u002Fdocs\u002Freadme\u002FREADME.de.md\">Deutsch\u003C\u002Fa> |\n  \u003Ca href=\".\u002Fdocs\u002Freadme\u002FREADME.fr.md\">Français\u003C\u002Fa> |\n  \u003Ca href=\".\u002Fdocs\u002Freadme\u002FREADME.pt.md\">Português\u003C\u002Fa> |\n  \u003Ca href=\".\u002Fdocs\u002Freadme\u002FREADME.ar.md\">العربية\u003C\u002Fa>\n\u003C\u002Fp>\n\nCodeg (Code Generation) is an enterprise-grade multi-agent coding workspace.\nIt unifies local AI coding agents (Claude Code, Codex CLI, OpenCode, Gemini CLI,\nOpenClaw, Cline, etc.) in a desktop app, standalone server, or Docker container — enabling\nremote development from any browser — with conversation aggregation, parallel `git worktree`\ndevelopment, MCP\u002FSkills management, chat channel interactions (Telegram, Lark, iLink, etc.),\nand integrated Git\u002Ffile\u002Fterminal workflows.\n\n![gallery](.\u002Fdocs\u002Fimages\u002Fgallery.svg)\n\n## Main Interface\n![Codeg Light](.\u002Fdocs\u002Fimages\u002Fmain-light.png#gh-light-mode-only)\n![Codeg Dark](.\u002Fdocs\u002Fimages\u002Fmain-dark.png#gh-dark-mode-only)\n\n## Settings\n| Agents | MCP | Skills | Version Control | Web Service |\n| :---: | :---: | :---: | :---: | :---: |\n| ![Agents](.\u002Fdocs\u002Fimages\u002F1-light.png#gh-light-mode-only) ![Agents](.\u002Fdocs\u002Fimages\u002F1-dark.png#gh-dark-mode-only) | ![MCP](.\u002Fdocs\u002Fimages\u002F2-light.png#gh-light-mode-only) ![MCP](.\u002Fdocs\u002Fimages\u002F2-dark.png#gh-dark-mode-only) | ![Skills](.\u002Fdocs\u002Fimages\u002F3-light.png#gh-light-mode-only) ![Skills](.\u002Fdocs\u002Fimages\u002F3-dark.png#gh-dark-mode-only) | ![Version Control](.\u002Fdocs\u002Fimages\u002F4-light.png#gh-light-mode-only) ![Version Control](.\u002Fdocs\u002Fimages\u002F4-dark.png#gh-dark-mode-only) | ![Web Service](.\u002Fdocs\u002Fimages\u002F5-light.png#gh-light-mode-only) ![Web Service](.\u002Fdocs\u002Fimages\u002F5-dark.png#gh-dark-mode-only) |\n\n## Highlights\n\n- Unified multi-agent workspace in the same project\n- Local conversation ingestion with structured rendering\n- Parallel development with built-in `git worktree` flows\n- **Project Boot** — visually scaffold new projects with live preview\n- **Chat Channels** — connect Telegram, Lark (Feishu), iLink (Weixin) and more to your coding agents for real-time notifications, full session interaction, and remote task control\n- MCP management (local scan + registry search\u002Finstall)\n- Skills management (global and project scope)\n- Git remote account management (GitHub and other Git servers)\n- Web service mode — access Codeg from any browser for remote work\n- **Standalone server deployment** — run `codeg-server` on any Linux\u002FmacOS server, access via browser\n- **Docker support** — `docker compose up` or `docker run`, with custom token, port, and volume mounts for data persistence and project directories\n- Integrated engineering loop (file tree, diff, git changes, commit, terminal)\n\n## Project Boot\n\nCreate new projects visually with a split-pane interface: configure on the left, preview in real time on the right.\n\n![Project Boot Light](.\u002Fdocs\u002Fimages\u002Fproject-boot-light.png#gh-light-mode-only)\n![Project Boot Dark](.\u002Fdocs\u002Fimages\u002Fproject-boot-dark.png#gh-dark-mode-only)\n\n### What it does\n\n- **Visual Configuration** — pick style, color theme, icon library, font, border radius, and more from dropdowns; the preview iframe updates instantly\n- **Live Preview** — see your chosen look & feel rendered in real time before creating anything\n- **One-Click Scaffolding** — hit \"Create Project\" and the launcher runs `shadcn init` with your preset, framework template (Next.js \u002F Vite \u002F React Router \u002F Astro \u002F Laravel), and package manager of choice (pnpm \u002F npm \u002F yarn \u002F bun)\n- **Package Manager Detection** — automatically checks which package managers are installed and shows their versions\n- **Seamless Integration** — the newly created project opens in Codeg's workspace right away\n\nCurrently supports **shadcn\u002Fui** project scaffolding, with a tab-based design ready for more project types in the future.\n\n## Chat Channels\n\nConnect your favorite messaging apps — Telegram, Lark (Feishu), iLink (Weixin), and more — to your AI coding agents. Create tasks, send follow-up messages, approve permissions, resume sessions, and monitor activity — all from your chat app. Receive real-time agent responses with tool-call details, permission prompts, and completion summaries without ever opening a browser.\n\n### Supported Channels\n\n| Channel | Protocol | Status |\n| --- | --- | --- |\n| Telegram | Bot API (HTTP long-polling) | Built-in |\n| Lark (Feishu) | WebSocket + REST API | Built-in |\n| iLink (Weixin) | WebSocket + REST API | Built-in |\n\n> More channels (Discord, Slack, DingTalk, etc.) are planned for future releases.\n\n### Key Features\n\n- **Session Interaction** — run full agent sessions from your chat app: `\u002Ffolder` to pick a project, `\u002Fagent` to choose an agent, `\u002Ftask \u003Cdescription>` to start a task, then send follow-up messages as plain text. `\u002Fresume` to continue a previous session, `\u002Fcancel` to abort, `\u002Fsessions` to list active sessions\n- **Permission Control** — agents can request tool-execution permissions in-chat; respond with `\u002Fapprove` (or `\u002Fapprove always` for auto-approve) and `\u002Fdeny` without switching context\n- **Event Notifications** — agent turn completions, tool calls, and errors are pushed to all enabled channels in real time with rich formatting\n- **Query Commands** — `\u002Fsearch \u003Ckeyword>`, `\u002Ftoday`, `\u002Fstatus`, `\u002Fhelp` for quick lookups; configurable command prefix\n- **Daily Reports** — automated daily summary at a scheduled time, including conversation counts, agent-type breakdown, and project activity\n- **Multi-Language** — message templates in 10 languages (English, Simplified\u002FTraditional Chinese, Japanese, Korean, Spanish, German, French, Portuguese, Arabic)\n- **Secure Credentials** — tokens stored in the OS keyring, never exposed in config files or logs\n- **Rich Messages** — Markdown formatting for Telegram, card-based layout for Lark; plain-text fallback for all platforms\n\n### Setup\n\n1. Create a channel in **Settings → Chat Channels** (choose Telegram, Lark, or iLink)\n2. Enter your bot token (Telegram), app credentials (Lark), or scan QR code to log in (iLink) — stored securely in the OS keyring\n3. Configure event filters and optional daily report schedule\n4. Connect — messages start flowing as agents emit events\n\n## Supported Agents\n\n| Agent | Environment Variable Path | macOS \u002F Linux Default | Windows Default |\n| --- | --- | --- | --- |\n| Claude Code | `$CLAUDE_CONFIG_DIR\u002Fprojects` | `~\u002F.claude\u002Fprojects` | `%USERPROFILE%\\\\.claude\\\\projects` |\n| Codex CLI | `$CODEX_HOME\u002Fsessions` | `~\u002F.codex\u002Fsessions` | `%USERPROFILE%\\\\.codex\\\\sessions` |\n| OpenCode | `$XDG_DATA_HOME\u002Fopencode\u002Fopencode.db` | `~\u002F.local\u002Fshare\u002Fopencode\u002Fopencode.db` | `%USERPROFILE%\\\\.local\\\\share\\\\opencode\\\\opencode.db` |\n| Gemini CLI | `$GEMINI_CLI_HOME\u002F.gemini` | `~\u002F.gemini` | `%USERPROFILE%\\\\.gemini` |\n| OpenClaw | — | `~\u002F.openclaw\u002Fagents` | `%USERPROFILE%\\\\.openclaw\\\\agents` |\n| Cline | `$CLINE_DIR` | `~\u002F.cline\u002Fdata\u002Ftasks` | `%USERPROFILE%\\\\.cline\\\\data\\\\tasks` |\n\n> Note: environment variables take precedence over fallback paths.\n\n## Quick Start\n\n### Requirements\n\n- Node.js `>=22` (recommended)\n- pnpm `>=10`\n- Rust stable (2021 edition)\n- Tauri 2 build dependencies (desktop mode only)\n\nLinux (Debian\u002FUbuntu) example:\n\n```bash\nsudo apt-get update\nsudo apt-get install -y \\\n  libwebkit2gtk-4.1-dev \\\n  libayatana-appindicator3-dev \\\n  librsvg2-dev \\\n  patchelf\n```\n\n### Development\n\n```bash\npnpm install\n\n# Frontend static export to out\u002F\npnpm build\n\n# Full desktop app (Tauri + Next.js)\npnpm tauri dev\n\n# Frontend only\npnpm dev\n\n# Desktop build\npnpm tauri build\n\n# Standalone server (no Tauri\u002FGUI required)\npnpm server:dev\n\n# Build server release binary\npnpm server:build\n\n# Lint\npnpm eslint .\n\n# Rust checks (run in src-tauri\u002F)\ncargo check\ncargo clippy\ncargo build\n```\n\n### Server Deployment\n\nCodeg can run as a standalone web server without a desktop environment.\n\n#### Option 1: One-line install (Linux \u002F macOS)\n\n```bash\ncurl -fsSL https:\u002F\u002Fraw.githubusercontent.com\u002Fxintaofei\u002Fcodeg\u002Fmain\u002Finstall.sh | bash\n```\n\nInstall a specific version or to a custom directory:\n\n```bash\ncurl -fsSL https:\u002F\u002Fraw.githubusercontent.com\u002Fxintaofei\u002Fcodeg\u002Fmain\u002Finstall.sh | bash -s -- --version v0.5.2 --dir ~\u002F.local\u002Fbin\n```\n\nThen run:\n\n```bash\ncodeg-server\n```\n\n#### Option 2: One-line install (Windows PowerShell)\n\n```powershell\nirm https:\u002F\u002Fraw.githubusercontent.com\u002Fxintaofei\u002Fcodeg\u002Fmain\u002Finstall.ps1 | iex\n```\n\nOr install a specific version:\n\n```powershell\n.\\install.ps1 -Version v0.5.2\n```\n\n#### Option 3: Download from GitHub Releases\n\nPre-built binaries (with bundled web assets) are available on the [Releases](https:\u002F\u002Fgithub.com\u002Fxintaofei\u002Fcodeg\u002Freleases) page:\n\n| Platform | File |\n| --- | --- |\n| Linux x64 | `codeg-server-linux-x64.tar.gz` |\n| Linux arm64 | `codeg-server-linux-arm64.tar.gz` |\n| macOS x64 | `codeg-server-darwin-x64.tar.gz` |\n| macOS arm64 | `codeg-server-darwin-arm64.tar.gz` |\n| Windows x64 | `codeg-server-windows-x64.zip` |\n\n```bash\n# Example: download, extract, and run\ntar xzf codeg-server-linux-x64.tar.gz\ncd codeg-server-linux-x64\nCODEG_STATIC_DIR=.\u002Fweb .\u002Fcodeg-server\n```\n\n#### Option 4: Docker\n\n```bash\n# Using Docker Compose (recommended)\ndocker compose up -d\n\n# Or run directly with Docker\ndocker run -d -p 3080:3080 -v codeg-data:\u002Fdata ghcr.io\u002Fxintaofei\u002Fcodeg:latest\n\n# With custom token and project directory mounted\ndocker run -d -p 3080:3080 \\\n  -v codeg-data:\u002Fdata \\\n  -v \u002Fpath\u002Fto\u002Fprojects:\u002Fprojects \\\n  -e CODEG_TOKEN=your-secret-token \\\n  ghcr.io\u002Fxintaofei\u002Fcodeg:latest\n```\n\nThe Docker image uses a multi-stage build (Node.js + Rust → slim Debian runtime) and includes `git` and `ssh` for repository operations. Data is persisted in the `\u002Fdata` volume. You can optionally mount project directories to access local repos from within the container.\n\n#### Option 5: Build from source\n\n```bash\npnpm install && pnpm build          # build frontend\ncd src-tauri\ncargo build --release --bin codeg-server --no-default-features\nCODEG_STATIC_DIR=..\u002Fout .\u002Ftarget\u002Frelease\u002Fcodeg-server\n```\n\n#### Configuration\n\nEnvironment variables:\n\n| Variable | Default | Description |\n| --- | --- | --- |\n| `CODEG_PORT` | `3080` | HTTP port |\n| `CODEG_HOST` | `0.0.0.0` | Bind address |\n| `CODEG_TOKEN` | *(random)* | Auth token (printed to stderr on start) |\n| `CODEG_DATA_DIR` | `~\u002F.local\u002Fshare\u002Fcodeg` | SQLite database directory (also roots `uploads\u002F`, `pets\u002F`) |\n| `CODEG_STATIC_DIR` | `.\u002Fweb` or `.\u002Fout` | Next.js static export directory |\n| `CODEG_UPLOAD_MAX_TOTAL_BYTES` | *(unset)* | Hard cap on total bytes resident under `\u003Cdata dir>\u002Fuploads\u002F`. Plain decimal byte count (e.g. `10737418240` for 10 GiB). Unset, `0`, or an unparseable value disables the cap and prints a startup line so the posture is visible. The cap is enforced within a single `codeg-server` process — horizontally-scaled deployments sharing one `uploads\u002F` volume need external coordination (file lock, Redis, reverse-proxy quota). |\n| `CODEG_UPLOAD_QUOTA_STRICT` | *(unset)* | When truthy (`1` \u002F `true` \u002F `yes` \u002F `on`), abort startup with exit code 2 if `CODEG_UPLOAD_MAX_TOTAL_BYTES` is set to an unparseable value, instead of fail-open with a WARN. Use this when your security policy requires \"configured quota must be effective\". |\n\n## Architecture\n\n```text\nNext.js 16 (Static Export) + React 19\n        |\n        | invoke() (desktop) \u002F fetch() + WebSocket (web)\n        v\n  ┌─────────────────────────┐\n  │   Transport Abstraction  │\n  │  (Tauri IPC or HTTP\u002FWS) │\n  └─────────────────────────┘\n        |\n        v\n┌─── Tauri Desktop ───┐    ┌─── codeg-server ───┐\n│  Tauri 2 Commands    │    │  Axum HTTP + WS    │\n│  (window management) │    │  (standalone mode)  │\n└──────────┬───────────┘    └──────────┬──────────┘\n           └──────────┬───────────────┘\n                      v\n            Shared Rust Core\n              |- AppState\n              |- ACP Manager\n              |- Parsers (conversation ingestion)\n              |- Chat Channels\n              |- Git \u002F File Tree \u002F Terminal\n              |- MCP marketplace + config\n              |- SeaORM + SQLite\n                      |\n              ┌───────┼───────┐\n              v       v       v\n  Local Filesystem  Git   Chat Channels\n    \u002F Git Repos    Repos  (Telegram, Lark, iLink)\n```\n\n## Constraints\n\n- Frontend uses static export (`output: \"export\"`)\n- No Next.js dynamic routes (`[param]`); use query params instead\n- Tauri command params: frontend `camelCase`, Rust `snake_case`\n- TypeScript strict mode\n\n## Privacy & Security\n\n- Local-first by default for parsing, storage, and project operations\n- Network access happens only on user-triggered actions\n- System proxy support for enterprise environments\n- Web service mode uses token-based authentication\n\n## Acknowledgments\n\n- [LinuxDO](https:\u002F\u002Flinux.do) — the community where it all began\n- [ACP](https:\u002F\u002Fagentclientprotocol.com) — the Agent Client Protocol (ACP) is the foundation that enables Codeg to connect with multiple agents\n\n## License\n\nApache-2.0. See `LICENSE`.\n","Codeg 是一个企业级的多代理编码工作区，它将本地AI编码代理（如Claude Code、Codex CLI、Gemini CLI等）集成到桌面应用、独立服务器或Docker容器中。该项目支持会话聚合、并行`git worktree`开发流程、MCP\u002FSkills管理以及通过聊天频道（如Telegram、Lark等）与编码代理进行交互等功能，并提供集成的Git\u002F文件\u002F终端工作流。适用于需要统一管理和操作多个AI编码助手以提高开发效率的企业和个人开发者场景。",2,"2026-06-11 03:51:57","high_star"]