306 lines
14 KiB
Markdown
306 lines
14 KiB
Markdown
# Codeg
|
||
|
||
[](https://github.com/xintaofei/codeg/releases)
|
||
[](../../LICENSE)
|
||
[](https://tauri.app/)
|
||
[](https://nextjs.org/)
|
||
[](../../Dockerfile)
|
||
|
||
<p>
|
||
<a href="../../README.md">English</a> |
|
||
<a href="./README.zh-CN.md">简体中文</a> |
|
||
<a href="./README.zh-TW.md">繁體中文</a> |
|
||
<strong>日本語</strong> |
|
||
<a href="./README.ko.md">한국어</a> |
|
||
<a href="./README.es.md">Español</a> |
|
||
<a href="./README.de.md">Deutsch</a> |
|
||
<a href="./README.fr.md">Français</a> |
|
||
<a href="./README.pt.md">Português</a> |
|
||
<a href="./README.ar.md">العربية</a>
|
||
</p>
|
||
|
||
Codeg(Code Generation)は、エンタープライズ級のマルチ Agent コーディングワークスペースです。
|
||
Claude Code、Codex CLI、OpenCode、Gemini CLI、OpenClaw などのローカル AI コーディング Agent を
|
||
デスクトップアプリ、スタンドアロンサーバー、または Docker コンテナに統合し——ブラウザからどこでもリモート開発が可能——会話集約、並列 `git worktree` 開発、MCP/Skills 管理、
|
||
チャットチャンネル連携(Telegram、Lark など)、Git/ファイル/ターミナル連携ワークフローを提供します。
|
||
|
||
## メインインターフェース
|
||

|
||

|
||
|
||
## 設定
|
||
| エージェント | MCP | Skills | バージョン管理 | Web サービス |
|
||
| :---: | :---: | :---: | :---: | :---: |
|
||
|   |   |   |   |   |
|
||
|
||
## ハイライト
|
||
|
||
- 同一プロジェクトでのマルチ Agent 統合ワークスペース
|
||
- ローカル会話の取り込みと構造化レンダリング
|
||
- 内蔵 `git worktree` フローによる並列開発
|
||
- **プロジェクトブート** — ビジュアル設定とライブプレビューで新規プロジェクトを作成
|
||
- **チャットチャンネル** — Telegram、Lark(Feishu)などをコーディング Agent に接続し、リアルタイム通知やインタラクティブコマンドを利用
|
||
- MCP 管理(ローカルスキャン + レジストリ検索/インストール)
|
||
- Skills 管理(グローバルおよびプロジェクトスコープ)
|
||
- Git リモートアカウント管理(GitHub およびその他の Git サーバー)
|
||
- Web サービスモード — ブラウザから Codeg にアクセスでき、リモートワークに対応
|
||
- **スタンドアロンサーバーデプロイ** — 任意の Linux/macOS サーバーで `codeg-server` を実行し、ブラウザからアクセス
|
||
- **Docker サポート** — `docker compose up` または `docker run` に対応、カスタムトークン・ポート設定、データ永続化およびプロジェクトディレクトリのマウントをサポート
|
||
- 統合エンジニアリングループ(ファイルツリー、Diff、Git 変更、コミット、ターミナル)
|
||
|
||
## プロジェクトブート
|
||
|
||
分割ペインインターフェースで新規プロジェクトをビジュアルに作成:左側で設定、右側でリアルタイムプレビュー。
|
||
|
||

|
||

|
||
|
||
### 主な機能
|
||
|
||
- **ビジュアル設定** — ドロップダウンからスタイル、カラーテーマ、アイコンライブラリ、フォント、角丸などを選択でき、プレビューが即座に更新
|
||
- **ライブプレビュー** — プロジェクト作成前に、選んだルック&フィールをリアルタイムで確認
|
||
- **ワンクリック作成** — 「プロジェクト作成」をクリックすると、プリセット設定、フレームワークテンプレート(Next.js / Vite / React Router / Astro / Laravel)、パッケージマネージャー(pnpm / npm / yarn / bun)で `shadcn init` を実行
|
||
- **パッケージマネージャー検出** — インストール済みのパッケージマネージャーを自動検出し、バージョンを表示
|
||
- **シームレスな統合** — 新規作成されたプロジェクトは、すぐに Codeg のワークスペースで開きます
|
||
|
||
現在 **shadcn/ui** プロジェクトのスキャフォールディングをサポートしており、タブベースの設計で将来のプロジェクトタイプ追加に対応しています。
|
||
|
||
## チャットチャンネル
|
||
|
||
お気に入りのメッセージングアプリ — Telegram、Lark(Feishu)など — を AI コーディング Agent に接続。Agent がタスクを完了したりエラーが発生した際にリアルタイム通知を受信し、スマートフォンから会話履歴を検索し、自動日次レポートを取得 — チャットアプリを離れることなくすべて対応可能。
|
||
|
||
### 対応チャンネル
|
||
|
||
| チャンネル | プロトコル | 状態 |
|
||
| --- | --- | --- |
|
||
| Telegram | Bot API(HTTP ロングポーリング) | 内蔵 |
|
||
| Lark(Feishu) | WebSocket + REST API | 内蔵 |
|
||
|
||
> その他のチャンネル(Discord、Slack、WeChat、DingTalk など)は今後のリリースで対応予定。
|
||
|
||
### 主な機能
|
||
|
||
- **イベント通知** — Agent のターン完了やエラーがすべての有効なチャンネルにリアルタイムでプッシュ
|
||
- **インタラクティブコマンド** — チャットアプリからコマンド(`/recent`、`/search`、`/detail`、`/today`、`/status`、`/help`)を送信し即座に応答を取得。コマンドプレフィックスの設定が可能。会話関連コマンド(開始、停止、承認など)は今後のリリースで対応予定
|
||
- **日次レポート** — 予定された時刻に自動日次サマリーを生成(会話数、Agent タイプ別内訳、プロジェクトアクティビティを含む)
|
||
- **多言語対応** — メッセージテンプレートは 10 言語に対応(英語、簡体字/繁体字中国語、日本語、韓国語、スペイン語、ドイツ語、フランス語、ポルトガル語、アラビア語)
|
||
- **セキュアな認証情報** — トークンは OS キーリングに保存され、設定ファイルやログに公開されません
|
||
- **リッチメッセージ** — Telegram では Markdown フォーマット、Lark ではカードベースレイアウト。すべてのプラットフォームでプレーンテキストフォールバックに対応
|
||
|
||
### セットアップ
|
||
|
||
1. **設定 → チャットチャンネル** でチャンネルを作成(Telegram または Lark を選択)
|
||
2. ボットトークン(Telegram)またはアプリ認証情報(Lark)を入力 — OS キーリングに安全に保存
|
||
3. イベントフィルターとオプションの日次レポートスケジュールを設定
|
||
4. 接続 — Agent がイベントを発行するとメッセージが流れ始めます
|
||
|
||
## 対応エージェント
|
||
|
||
| 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 はデスクトップ環境なしでスタンドアロン Web サーバーとして実行できます。
|
||
|
||
#### オプション 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 からダウンロード
|
||
|
||
ビルド済みバイナリ(Web アセットをバンドル済み)は [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)
|
||
```
|
||
|
||
## 制約事項
|
||
|
||
- フロントエンドは静的エクスポートを使用(`output: "export"`)
|
||
- Next.js の動的ルート(`[param]`)は不可。代わりにクエリパラメータを使用
|
||
- Tauri コマンドパラメータ: フロントエンドは `camelCase`、Rust は `snake_case`
|
||
- TypeScript strict モード
|
||
|
||
## プライバシーとセキュリティ
|
||
|
||
- 解析、ストレージ、プロジェクト操作はデフォルトでローカルファースト
|
||
- ネットワークアクセスはユーザーが明示的に操作した場合のみ発生
|
||
- エンタープライズ環境向けのシステムプロキシサポート
|
||
- Web サービスモードではトークンベースの認証を使用
|
||
|
||
## ライセンス
|
||
|
||
Apache-2.0。`LICENSE` を参照してください。
|