# OpenFlow **OpenFlow est un constructeur visuel de workflows d'IA multi-agents.** Glissez des cartes de rôle sur un canevas, câblez un pipeline (planificateur → architecte → codeur), enregistrez-le et exécutez-le avec de vrais agents parallèles. OpenFlow est un projet à part entière. Il est bâti sur [opencode](https://github.com/anomalyco/opencode) — et distribué comme un fork de celui-ci — dont le moteur headless (`opencode serve`) pilote les agents en dessous. Tout le code propre à OpenFlow se trouve dans [`packages/flow`](packages/flow) ; aucun paquet upstream n'est modifié, si bien que le moteur OpenCode reste à jour et que les merges upstream restent propres. Le README OpenCode original suit ci-dessous. ### Installation **Prérequis** - [Bun](https://bun.sh) 1.3 ou plus récent — le seul runtime dont OpenFlow a besoin (il fait tourner le moteur, le build et le canevas). `bun --version` pour vérifier. - [Git](https://git-scm.com). **Récupérer le code** ```bash git clone https://github.com/SeeRay11/OpenFlow.git cd OpenFlow bun install ``` `bun install` récupère tout le workspace — le moteur OpenCode plus le code propre à OpenFlow dans [`packages/flow`](packages/flow). La première installation est volumineuse ; elle télécharge les dépendances natives du moteur. Une étape `postinstall` rend exécutables les binaires auxiliaires précompilés de `node-pty`, et se termine immédiatement sous Windows. ### Arrêter ce qui tourne déjà OpenFlow utilise deux ports : **4096** pour le moteur et **5174** pour le canevas. Si une exécution précédente les occupe encore, démarrer le moteur à la main échoue avec `Error: Unexpected error` / `ServeError` — un port déjà pris, pas une installation cassée. `bun openflow.ts` s'en charge : il réutilise un port qui répond déjà et libère celui qu'une exécution morte a laissé lié. Ne tuez les anciens processus vous-même que si vous voulez un moteur vraiment neuf — après une modification de `opencode.json`, par exemple, car le moteur met en cache la configuration du projet au démarrage et ne la relit jamais. **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 ``` Les deux commandes sont sans danger quand rien n'écoute : elles ne trouvent alors aucun processus. Elles tuent n'importe quel processus sur ces ports, vérifiez donc d'abord si vous y faites tourner autre chose : ```powershell Get-NetTCPConnection -LocalPort 4096,5174 -State Listen | Select-Object LocalPort,OwningProcess ``` ```bash lsof -i :4096 -i :5174 ``` **Si le moteur échoue avec `database is locked`,** un autre moteur opencode tourne déjà ailleurs — une deuxième copie d'OpenFlow, ou un moteur laissé par un lanceur précédent. Tous les moteurs partagent une seule base de données dans votre répertoire de données opencode, donc le second à démarrer ne peut pas l'ouvrir. Libérer les ports n'aide pas ici, car ce moteur ne les occupe pas forcément. Arrêtez-le d'après ce qu'il exécute : ```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' ``` Relancez ensuite OpenFlow. Si cela se reproduit à chaque fois, vous avez sans doute OpenFlow cloné à deux endroits et les deux sont démarrés — n'en gardez qu'un. ### Lancer Une seule commande lance les deux processus, de la même façon sur toutes les plateformes : ```bash bun openflow.ts ``` Elle démarre le moteur, attend qu'il réponde, puis ouvre le canevas sur http://localhost:5174 ; Ctrl+C arrête les deux. Un port laissé occupé par une exécution morte est d'abord libéré, et un port qui sert déjà est réutilisé plutôt que démarré deux fois. Deux scripts légers enveloppent ce même fichier pour celles et ceux qui préfèrent le lanceur de leur plateforme. Ils ne contiennent aucune logique propre : ils traduisent les options en variables d'environnement que `openflow.ts` lit déjà. ```powershell .\openflow.ps1 ``` ```bash ./openflow.sh ``` **Sous Windows, ce script peut refuser de démarrer :** PowerShell n'exécute pas les scripts locaux non signés par défaut, donc `.\openflow.ps1` peut échouer avec *"openflow.ps1 cannot be loaded because running scripts is disabled on this system"*. Un dépôt téléchargé en ZIP plutôt que cloné est en outre marqué comme provenant d'internet, ce qui le bloque une seconde fois. `bun openflow.ts` n'est soumis ni à l'un ni à l'autre et constitue le chemin le plus court pour contourner les deux. Pour utiliser ce script malgré tout, autorisez les scripts locaux pour votre propre compte et débloquez le fichier s'il provient d'un ZIP : ```powershell Set-ExecutionPolicy -Scope CurrentUser RemoteSigned Unblock-File .\openflow.ps1 ``` Les options sont facultatives, et les trois surfaces aboutissent au même plan : | PowerShell | shell | environnement | ce que ça fait | |---|---|---|---| | `-Project
OpenFlow is an independent fork. It is not affiliated with, sponsored by, or endorsed by the OpenCode team.
L'agent de codage IA open source.
English | 简体中文 | 繁體中文 | 한국어 | Deutsch | Español | Français | Italiano | Dansk | 日本語 | Polski | Русский | Bosanski | العربية | Norsk | Português (Brasil) | ไทย | Türkçe | Українська | বাংলা | Ελληνικά | Tiếng Việt
[](https://opencode.ai) --- ### Installation ```bash # YOLO curl -fsSL https://opencode.ai/install | bash # Gestionnaires de paquets npm i -g opencode-ai@latest # ou bun/pnpm/yarn scoop install opencode # Windows choco install opencode # Windows brew install anomalyco/tap/opencode # macOS et Linux (recommandé, toujours à jour) brew install opencode # macOS et Linux (formule officielle brew, mise à jour moins fréquente) sudo pacman -S opencode # Arch Linux (Stable) paru -S opencode-bin # Arch Linux (Latest from AUR) mise use -g opencode # n'importe quel OS nix run nixpkgs#opencode # ou github:anomalyco/opencode pour la branche dev la plus récente ``` > [!TIP] > Supprimez les versions antérieures à 0.1.x avant d'installer. ### Application de bureau (BETA) OpenCode est aussi disponible en application de bureau. Téléchargez-la directement depuis la [page des releases](https://github.com/anomalyco/opencode/releases) ou [opencode.ai/download](https://opencode.ai/download). | Plateforme | Téléchargement | | --------------------- | ---------------------------------- | | macOS (Apple Silicon) | `opencode-desktop-mac-arm64.dmg` | | macOS (Intel) | `opencode-desktop-mac-x64.dmg` | | Windows | `opencode-desktop-windows-x64.exe` | | Linux | `.deb`, `.rpm`, ou AppImage | ```bash # macOS (Homebrew) brew install --cask opencode-desktop # Windows (Scoop) scoop bucket add extras; scoop install extras/opencode-desktop ``` #### Répertoire d'installation Le script d'installation respecte l'ordre de priorité suivant pour le chemin d'installation : 1. `$OPENCODE_INSTALL_DIR` - Répertoire d'installation personnalisé 2. `$XDG_BIN_DIR` - Chemin conforme à la spécification XDG Base Directory 3. `$HOME/bin` - Répertoire binaire utilisateur standard (s'il existe ou peut être créé) 4. `$HOME/.opencode/bin` - Repli par défaut ```bash # Exemples 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 inclut deux agents intégrés que vous pouvez basculer avec la touche `Tab`. - **build** - Par défaut, agent avec accès complet pour le travail de développement - **plan** - Agent en lecture seule pour l'analyse et l'exploration du code - Refuse les modifications de fichiers par défaut - Demande l'autorisation avant d'exécuter des commandes bash - Idéal pour explorer une base de code inconnue ou planifier des changements Un sous-agent **general** est aussi inclus pour les recherches complexes et les tâches en plusieurs étapes. Il est utilisé en interne et peut être invoqué via `@general` dans les messages. En savoir plus sur les [agents](https://opencode.ai/docs/agents). ### Documentation Pour plus d'informations sur la configuration d'OpenCode, [**consultez notre documentation**](https://opencode.ai/docs). ### Contribuer Si vous souhaitez contribuer à OpenCode, lisez nos [docs de contribution](./CONTRIBUTING.md) avant de soumettre une pull request. ### Construire avec OpenCode Si vous travaillez sur un projet lié à OpenCode et que vous utilisez "opencode" dans le nom du projet (par exemple, "opencode-dashboard" ou "opencode-mobile"), ajoutez une note dans votre README pour préciser qu'il n'est pas construit par l'équipe OpenCode et qu'il n'est pas affilié à nous. --- **Rejoignez notre communauté** [Discord](https://discord.gg/opencode) | [X.com](https://x.com/opencode)