# OpenFlow **OpenFlow は、マルチエージェント AI ワークフローのためのビジュアルビルダーです。** ロール カードをキャンバスにドラッグし、パイプライン(プランナー → アーキテクト → コーダー)を配線 して保存し、実際の並列エージェントで実行します。 OpenFlow は独立したプロジェクトです。 [opencode](https://github.com/anomalyco/opencode) の上に構築され、そのフォークとして提供 されます。opencode のヘッドレスエンジン(`opencode serve`)が背後でエージェントを駆動しま す。OpenFlow 独自のコードはすべて [`packages/flow`](packages/flow) にあります。上流の パッケージは一切変更しないため、OpenCode エンジンは最新のまま保たれ、上流とのマージもクリーン に保たれます。オリジナルの OpenCode README は以下に続きます。 ### インストール **前提条件** - [Bun](https://bun.sh) 1.3 以降 — OpenFlow が必要とする唯一のランタイム(エンジン、ビル ド、キャンバスを動かします)。`bun --version` で確認してください。 - [Git](https://git-scm.com)。 **コードを取得する** ```bash git clone https://github.com/SeeRay11/OpenFlow.git cd OpenFlow bun install ``` `bun install` はワークスペース全体を取得します — OpenCode エンジンに加えて、 [`packages/flow`](packages/flow) にある OpenFlow 独自のコードです。初回インストールは大き く、エンジンのネイティブ依存関係をダウンロードします。`postinstall` のステップは `node-pty` のビルド済みヘルパーバイナリに実行権限を付けるだけで、Windows では何もせずすぐに終了します。 ### すでに動いているものを止める OpenFlow はポートを 2 つ使う。エンジンが **4096**、キャンバスが **5174**。前回の実行がまだ握っていると、エンジンを手動で起動しても `Error: Unexpected error` / `ServeError` で失敗する。これはポートが埋まっているだけで、インストールの破損ではない。 `bun openflow.ts` はこれを自動で処理する。すでに応答しているポートは再利用し、死んだ実行が握ったままのポートは解放する。自分で古いプロセスを終了させるのは、本当に新しいエンジンが欲しいときだけでよい。たとえば `opencode.json` を編集したあと。エンジンは起動時にプロジェクト設定をキャッシュし、二度と読み直さないからだ。 **Windows (PowerShell)** ```powershell Get-NetTCPConnection -LocalPort 4096,5174 -State Listen -ErrorAction SilentlyContinue | Select-Object -ExpandProperty OwningProcess -Unique | ForEach-Object { taskkill /pid $_ /T /F } ``` **macOS / Linux** ```bash lsof -t -i :4096 -i :5174 | xargs kill -9 ``` どちらのコマンドも、何も待ち受けていなければ安全で、対象のプロセスが見つからないだけで終わる。ただしそのポートを握っているプロセスは何であれ終了させるので、他のものを動かしているなら先に確認すること。 ```powershell Get-NetTCPConnection -LocalPort 4096,5174 -State Listen | Select-Object LocalPort,OwningProcess ``` ```bash lsof -i :4096 -i :5174 ``` **エンジンが `database is locked` で失敗する場合、** 別の opencode エンジンがすでに どこかで動いています。OpenFlow の 2 つ目のコピーか、前回のランチャーが残したものです。 すべてのエンジンは opencode のデータディレクトリにある 1 つのデータベースを共有するため、 後から起動したほうは開けません。そのエンジンがポートを握っているとは限らないので、 ポートを空けても解決しません。実行内容を手がかりに停止してください: ```powershell Get-CimInstance Win32_Process -Filter "Name='bun.exe'" | Where-Object { $_.CommandLine -match 'openflow\.ts|src/index\.ts serve|packages/flow dev' } | ForEach-Object { Stop-Process -Id $_.ProcessId -Force } ``` ```bash pkill -f 'openflow\.ts|src/index\.ts serve|packages/flow dev' ``` そのうえで OpenFlow を起動し直します。毎回起きるなら、OpenFlow を 2 か所にクローンして 両方を起動している可能性が高いので、1 つに絞ってください。 ### 実行する 1 つのコマンドで両方のプロセスが起動します。どのプラットフォームでも同じです: ```bash bun openflow.ts ``` エンジンを起動し、応答するまで待ってから、http://localhost:5174 でキャンバスを開きます。 Ctrl+C で両方を停止します。終了し損ねた実行が掴んだままのポートは先に解放され、すでに応答して いるポートは二重に起動せずそのまま再利用します。 同じファイルを包む薄い起動スクリプトが 2 つあり、各プラットフォームのランチャーを好む人向けで す。スクリプト自体にロジックはなく、フラグを `openflow.ts` がすでに読んでいる環境変数へ変換す るだけです。 ```powershell .\openflow.ps1 ``` ```bash ./openflow.sh ``` **Windows ではこのスクリプトが起動を拒否することがあります。** PowerShell は既定で署名のない ローカルスクリプトを実行しないため、`.\openflow.ps1` は *"openflow.ps1 cannot be loaded because running scripts is disabled on this system"* で失敗することがあります。クローンではなく ZIP でダウンロードしたリポジトリは、さらにインターネット由来として印が付き、二重にブロックされ ます。`bun openflow.ts` はそのどちらの対象にもならず、両方を回避する最短の方法です。それでも 起動スクリプトを使いたい場合は、自分のアカウントについてローカルスクリプトを許可し、ZIP から取 得したファイルであればブロックを解除してください: ```powershell Set-ExecutionPolicy -Scope CurrentUser RemoteSigned Unblock-File .\openflow.ps1 ``` フラグは任意で、3 つの入口はいずれも同じ結果になります: | PowerShell | shell | 環境変数 | 何をするか | |---|---|---|---| | `-Project ` | `-p`, `--project ` | `OPENFLOW_PROJECT` | エージェントが読み書きするリポジトリ — **実際のファイルを編集します** | | `-ServerPort ` | `-s`, `--server-port ` | `OPENCODE_SERVER_URL` | エンジンのポート、既定は 4096 | | `-Built` | `-b`, `--built` | `OPENFLOW_BUILT=1` | vite を実行する代わりに静的バンドルをビルドして提供する | | `-Manage` | `-m`, `--manage` | `FLOW_MANAGE_SERVER=1` | キャンバスにエンジンを所有させ、その再起動ボタンを機能させる | | `-Help` | `-h`, `--help` | — | フラグ一覧を表示する | | — | — | `OPENFLOW_DRY_RUN=1` | 決定した内容を表示し、何も起動しない | または、2 つのプロセスを手動で起動します。まずサーバー: ```bash bun run --cwd packages/opencode --conditions=browser src/index.ts serve --port 4096 ``` 次にキャンバス、http://localhost:5174 で: ```bash bun run --cwd packages/flow dev ``` または、ビルド済みで実行します。これは vite を使わずに同じアプリを提供します: ```bash bun run --cwd packages/flow build && bun run --cwd packages/flow start ``` ---

OpenCode logo

OpenFlow is an independent fork. It is not affiliated with, sponsored by, or endorsed by the OpenCode team.

オープンソースのAIコーディングエージェント。

Discord npm Build status

English | 简体中文 | 繁體中文 | 한국어 | Deutsch | Español | Français | Italiano | Dansk | 日本語 | Polski | Русский | Bosanski | العربية | Norsk | Português (Brasil) | ไทย | Türkçe | Українська | বাংলা | Ελληνικά | Tiếng Việt

[![OpenCode Terminal UI](packages/web/src/assets/lander/screenshot.png)](https://opencode.ai) --- ### インストール ```bash # YOLO curl -fsSL https://opencode.ai/install | bash # パッケージマネージャー npm i -g opencode-ai@latest # bun/pnpm/yarn でもOK scoop install opencode # Windows choco install opencode # Windows brew install anomalyco/tap/opencode # macOS と Linux(推奨。常に最新) brew install opencode # macOS と Linux(公式 brew formula。更新頻度は低め) sudo pacman -S opencode # Arch Linux (Stable) paru -S opencode-bin # Arch Linux (Latest from AUR) mise use -g opencode # どのOSでも nix run nixpkgs#opencode # または github:anomalyco/opencode で最新 dev ブランチ ``` > [!TIP] > インストール前に 0.1.x より古いバージョンを削除してください。 ### デスクトップアプリ (BETA) OpenCode はデスクトップアプリとしても利用できます。[releases page](https://github.com/anomalyco/opencode/releases) から直接ダウンロードするか、[opencode.ai/download](https://opencode.ai/download) を利用してください。 | プラットフォーム | ダウンロード | | --------------------- | ---------------------------------- | | macOS (Apple Silicon) | `opencode-desktop-mac-arm64.dmg` | | macOS (Intel) | `opencode-desktop-mac-x64.dmg` | | Windows | `opencode-desktop-windows-x64.exe` | | Linux | `.deb`、`.rpm`、または AppImage | ```bash # macOS (Homebrew) brew install --cask opencode-desktop # Windows (Scoop) scoop bucket add extras; scoop install extras/opencode-desktop ``` #### インストールディレクトリ インストールスクリプトは、インストール先パスを次の優先順位で決定します。 1. `$OPENCODE_INSTALL_DIR` - カスタムのインストールディレクトリ 2. `$XDG_BIN_DIR` - XDG Base Directory Specification に準拠したパス 3. `$HOME/bin` - 標準のユーザー用バイナリディレクトリ(存在する場合、または作成できる場合) 4. `$HOME/.opencode/bin` - デフォルトのフォールバック ```bash # 例 OPENCODE_INSTALL_DIR=/usr/local/bin curl -fsSL https://opencode.ai/install | bash XDG_BIN_DIR=$HOME/.local/bin curl -fsSL https://opencode.ai/install | bash ``` ### Agents OpenCode には組み込みの Agent が2つあり、`Tab` キーで切り替えられます。 - **build** - デフォルト。開発向けのフルアクセス Agent - **plan** - 分析とコード探索向けの読み取り専用 Agent - デフォルトでファイル編集を拒否 - bash コマンド実行前に確認 - 未知のコードベース探索や変更計画に最適 また、複雑な検索やマルチステップのタスク向けに **general** サブ Agent も含まれています。 内部的に使用されており、メッセージで `@general` と入力して呼び出せます。 [agents](https://opencode.ai/docs/agents) の詳細はこちら。 ### ドキュメント OpenCode の設定については [**ドキュメント**](https://opencode.ai/docs) を参照してください。 ### コントリビュート OpenCode に貢献したい場合は、Pull Request を送る前に [contributing docs](./CONTRIBUTING.md) を読んでください。 ### OpenCode の上に構築する OpenCode に関連するプロジェクトで、名前に "opencode"(例: "opencode-dashboard" や "opencode-mobile")を含める場合は、そのプロジェクトが OpenCode チームによって作られたものではなく、いかなる形でも関係がないことを README に明記してください。 --- **コミュニティに参加** [Discord](https://discord.gg/opencode) | [X.com](https://x.com/opencode)