{"id":47591919,"url":"https://github.com/xintaofei/codeg","last_synced_at":"2026-04-15T11:03:14.791Z","repository":{"id":342610649,"uuid":"1153416852","full_name":"xintaofei/codeg","owner":"xintaofei","description":"Aggregate and browse AI coding agent sessions (Claude Code, Codex, Gemini CLI, etc.) in one place. Desktop app, self-hosted server, or Docker.","archived":false,"fork":false,"pushed_at":"2026-04-11T03:23:55.000Z","size":10222,"stargazers_count":659,"open_issues_count":19,"forks_count":58,"subscribers_count":5,"default_branch":"main","last_synced_at":"2026-04-11T04:23:26.607Z","etag":null,"topics":["acp","agent","claude-code","code-generation","codex","gemini-cli","git","ilink","lark","openclaw","opencode","telegram","worktree"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/xintaofei.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-02-09T09:22:50.000Z","updated_at":"2026-04-11T03:23:47.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/xintaofei/codeg","commit_stats":null,"previous_names":["xintaofei/codeg"],"tags_count":59,"template":false,"template_full_name":null,"purl":"pkg:github/xintaofei/codeg","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xintaofei%2Fcodeg","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xintaofei%2Fcodeg/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xintaofei%2Fcodeg/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xintaofei%2Fcodeg/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xintaofei","download_url":"https://codeload.github.com/xintaofei/codeg/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xintaofei%2Fcodeg/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31837947,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-15T10:26:52.245Z","status":"ssl_error","status_checked_at":"2026-04-15T10:26:51.649Z","response_time":63,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["acp","agent","claude-code","code-generation","codex","gemini-cli","git","ilink","lark","openclaw","opencode","telegram","worktree"],"created_at":"2026-04-01T17:36:04.377Z","updated_at":"2026-04-15T11:03:14.781Z","avatar_url":"https://github.com/xintaofei.png","language":"TypeScript","readme":"# Codeg\n\n[![Release](https://img.shields.io/github/v/release/xintaofei/codeg)](https://github.com/xintaofei/codeg/releases)\n[![License](https://img.shields.io/github/license/xintaofei/codeg)](./LICENSE)\n[![Tauri](https://img.shields.io/badge/Tauri-2.x-24C8DB)](https://tauri.app/)\n[![Next.js](https://img.shields.io/badge/Next.js-16-black)](https://nextjs.org/)\n[![Docker](https://img.shields.io/badge/Docker-ready-2496ED)](./Dockerfile)\n\n\u003cp\u003e\n  \u003cstrong\u003eEnglish\u003c/strong\u003e |\n  \u003ca href=\"./docs/readme/README.zh-CN.md\"\u003e简体中文\u003c/a\u003e |\n  \u003ca href=\"./docs/readme/README.zh-TW.md\"\u003e繁體中文\u003c/a\u003e |\n  \u003ca href=\"./docs/readme/README.ja.md\"\u003e日本語\u003c/a\u003e |\n  \u003ca href=\"./docs/readme/README.ko.md\"\u003e한국어\u003c/a\u003e |\n  \u003ca href=\"./docs/readme/README.es.md\"\u003eEspañol\u003c/a\u003e |\n  \u003ca href=\"./docs/readme/README.de.md\"\u003eDeutsch\u003c/a\u003e |\n  \u003ca href=\"./docs/readme/README.fr.md\"\u003eFrançais\u003c/a\u003e |\n  \u003ca href=\"./docs/readme/README.pt.md\"\u003ePortuguês\u003c/a\u003e |\n  \u003ca href=\"./docs/readme/README.ar.md\"\u003eالعربية\u003c/a\u003e\n\u003c/p\u003e\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/Skills management, chat channel interactions (Telegram, Lark, iLink, etc.),\nand integrated Git/file/terminal workflows.\n\n![gallery](./docs/images/gallery.svg)\n\n## Main Interface\n![Codeg Light](./docs/images/main-light.png#gh-light-mode-only)\n![Codeg Dark](./docs/images/main-dark.png#gh-dark-mode-only)\n\n## Settings\n| Agents | MCP | Skills | Version Control | Web Service |\n| :---: | :---: | :---: | :---: | :---: |\n| ![Agents](./docs/images/1-light.png#gh-light-mode-only) ![Agents](./docs/images/1-dark.png#gh-dark-mode-only) | ![MCP](./docs/images/2-light.png#gh-light-mode-only) ![MCP](./docs/images/2-dark.png#gh-dark-mode-only) | ![Skills](./docs/images/3-light.png#gh-light-mode-only) ![Skills](./docs/images/3-dark.png#gh-dark-mode-only) | ![Version Control](./docs/images/4-light.png#gh-light-mode-only) ![Version Control](./docs/images/4-dark.png#gh-dark-mode-only) | ![Web Service](./docs/images/5-light.png#gh-light-mode-only) ![Web Service](./docs/images/5-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/install)\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/macOS 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](./docs/images/project-boot-light.png#gh-light-mode-only)\n![Project Boot Dark](./docs/images/project-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 \u0026 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 / Vite / React Router / Astro / Laravel), and package manager of choice (pnpm / npm / yarn / 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/ui** 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\u003e 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: `/folder` to pick a project, `/agent` to choose an agent, `/task \u003cdescription\u003e` to start a task, then send follow-up messages as plain text. `/resume` to continue a previous session, `/cancel` to abort, `/sessions` to list active sessions\n- **Permission Control** — agents can request tool-execution permissions in-chat; respond with `/approve` (or `/approve always` for auto-approve) and `/deny` 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** — `/search \u003ckeyword\u003e`, `/today`, `/status`, `/help` 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/Traditional 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 / Linux Default | Windows Default |\n| --- | --- | --- | --- |\n| Claude Code | `$CLAUDE_CONFIG_DIR/projects` | `~/.claude/projects` | `%USERPROFILE%\\\\.claude\\\\projects` |\n| Codex CLI | `$CODEX_HOME/sessions` | `~/.codex/sessions` | `%USERPROFILE%\\\\.codex\\\\sessions` |\n| OpenCode | `$XDG_DATA_HOME/opencode/opencode.db` | `~/.local/share/opencode/opencode.db` | `%USERPROFILE%\\\\.local\\\\share\\\\opencode\\\\opencode.db` |\n| Gemini CLI | `$GEMINI_CLI_HOME/.gemini` | `~/.gemini` | `%USERPROFILE%\\\\.gemini` |\n| OpenClaw | — | `~/.openclaw/agents` | `%USERPROFILE%\\\\.openclaw\\\\agents` |\n| Cline | `$CLINE_DIR` | `~/.cline/data/tasks` | `%USERPROFILE%\\\\.cline\\\\data\\\\tasks` |\n\n\u003e Note: environment variables take precedence over fallback paths.\n\n## Quick Start\n\n### Requirements\n\n- Node.js `\u003e=22` (recommended)\n- pnpm `\u003e=10`\n- Rust stable (2021 edition)\n- Tauri 2 build dependencies (desktop mode only)\n\nLinux (Debian/Ubuntu) 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/\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/GUI 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/)\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 / macOS)\n\n```bash\ncurl -fsSL https://raw.githubusercontent.com/xintaofei/codeg/main/install.sh | bash\n```\n\nInstall a specific version or to a custom directory:\n\n```bash\ncurl -fsSL https://raw.githubusercontent.com/xintaofei/codeg/main/install.sh | bash -s -- --version v0.5.2 --dir ~/.local/bin\n```\n\nThen run:\n\n```bash\ncodeg-server\n```\n\n#### Option 2: One-line install (Windows PowerShell)\n\n```powershell\nirm https://raw.githubusercontent.com/xintaofei/codeg/main/install.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://github.com/xintaofei/codeg/releases) 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=./web ./codeg-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:/data ghcr.io/xintaofei/codeg:latest\n\n# With custom token and project directory mounted\ndocker run -d -p 3080:3080 \\\n  -v codeg-data:/data \\\n  -v /path/to/projects:/projects \\\n  -e CODEG_TOKEN=your-secret-token \\\n  ghcr.io/xintaofei/codeg: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 `/data` 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 \u0026\u0026 pnpm build          # build frontend\ncd src-tauri\ncargo build --release --bin codeg-server --no-default-features\nCODEG_STATIC_DIR=../out ./target/release/codeg-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` | `~/.local/share/codeg` | SQLite database directory |\n| `CODEG_STATIC_DIR` | `./web` or `./out` | Next.js static export directory |\n\n## Architecture\n\n```text\nNext.js 16 (Static Export) + React 19\n        |\n        | invoke() (desktop) / fetch() + WebSocket (web)\n        v\n  ┌─────────────────────────┐\n  │   Transport Abstraction  │\n  │  (Tauri IPC or HTTP/WS) │\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 / File Tree / Terminal\n              |- MCP marketplace + config\n              |- SeaORM + SQLite\n                      |\n              ┌───────┼───────┐\n              v       v       v\n  Local Filesystem  Git   Chat Channels\n    / 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 \u0026 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://linux.do) — the community where it all began\n- [ACP](https://agentclientprotocol.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","funding_links":[],"categories":["TypeScript","Workflow Infrastructure \u0026 Design"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxintaofei%2Fcodeg","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxintaofei%2Fcodeg","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxintaofei%2Fcodeg/lists"}