# OpenFlow **OpenFlow er en visuell bygger for multi-agent-KI-arbeidsflyter.** Dra rollekort ut på et lerret, koble sammen en pipeline (planlegger → arkitekt → koder), lagre den, og kjør den med ekte parallelle agenter. OpenFlow er sitt eget prosjekt. Det er bygget på [opencode](https://github.com/anomalyco/opencode) — og distribueres som en fork av det — hvis headless-motor (`opencode serve`) driver agentene under panseret. All OpenFlows egen kode ligger i [`packages/flow`](packages/flow); ingen upstream-pakke endres, så OpenCode-motoren holder seg oppdatert og upstream-merger forblir rene. Den opprinnelige OpenCode-README-en følger nedenfor. ### Installasjon **Forutsetninger** - [Bun](https://bun.sh) 1.3 eller nyere — den eneste kjøretiden OpenFlow trenger (den kjører motoren, byggingen og lerretet). Sjekk med `bun --version`. - [Git](https://git-scm.com). **Hent koden** ```bash git clone https://github.com/SeeRay11/OpenFlow.git cd OpenFlow bun install ``` `bun install` henter hele arbeidsområdet — OpenCode-motoren pluss OpenFlows egen kode i [`packages/flow`](packages/flow). Den første installasjonen er stor; den laster ned motorens native avhengigheter. Et `postinstall`-steg merker `node-pty` sine ferdigbygde hjelpebinærfiler som kjørbare, og returnerer umiddelbart på Windows. ### Stopp det som allerede kjører OpenFlow bruker to porter: **4096** til motoren og **5174** til lerretet. Holder en tidligere kjøring dem fortsatt, feiler manuell start av motoren med `Error: Unexpected error` / `ServeError` — en opptatt port, ikke en ødelagt installasjon. `bun openflow.ts` ordner dette selv: den gjenbruker en port som allerede svarer, og frigjør en som en død kjøring lot stå bundet. Drep de gamle prosessene selv bare når du vil ha en helt fersk motor — for eksempel etter en endring i `opencode.json`, siden motoren cacher prosjektkonfigurasjonen ved oppstart og aldri leser den på nytt. **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 ``` Begge er trygge å kjøre når ingenting lytter — de treffer rett og slett ingen prosess. De dreper enhver prosess på disse portene, så sjekk først om du kjører noe annet der: ```powershell Get-NetTCPConnection -LocalPort 4096,5174 -State Listen | Select-Object LocalPort,OwningProcess ``` ```bash lsof -i :4096 -i :5174 ``` **Hvis motoren feiler med `database is locked`,** kjører det allerede en annen opencode-motor et annet sted — en andre kopi av OpenFlow, eller en motor som en tidligere starter lot bli igjen. Alle motorer deler én database i opencode-datamappen din, så den andre som starter, får ikke åpnet den. Å frigjøre portene hjelper ikke her, for den motoren holder dem ikke nødvendigvis. Stopp den ut fra hva den kjører: ```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' ``` Start så OpenFlow på nytt. Skjer det hver gang, har du trolig OpenFlow klonet to steder og begge blir startet — behold én. ### Kjør det Én kommando starter begge prosessene, på samme måte på alle plattformer: ```bash bun openflow.ts ``` Den starter motoren, venter til den svarer, og åpner så lerretet på http://localhost:5174; Ctrl+C stopper begge. En port som en død kjøring lot ligge opptatt, frigjøres først, og en port som allerede betjener, gjenbrukes i stedet for å startes to ganger. To tynne skript pakker inn den samme filen for dem som foretrekker plattformens egen starter. De har ingen logikk selv — de oversetter bare flagg til miljøvariablene `openflow.ts` allerede leser. ```powershell .\openflow.ps1 ``` ```bash ./openflow.sh ``` **På Windows kan skriptet nekte å starte:** PowerShell kjører som standard ikke usignerte lokale skript, så `.\openflow.ps1` kan feile med *"openflow.ps1 cannot be loaded because running scripts is disabled on this system"*. Et repo som er lastet ned som ZIP i stedet for klonet, blir dessuten merket som kommet fra internett, noe som blokkerer det på nok en måte. `bun openflow.ts` rammes av ingen av delene og er den korteste veien forbi begge. Vil du likevel bruke skriptet, så tillat lokale skript for din egen konto, og opphev blokkeringen av filen hvis den kom fra en ZIP: ```powershell Set-ExecutionPolicy -Scope CurrentUser RemoteSigned Unblock-File .\openflow.ps1 ``` Flagg er valgfrie, og de tre flatene ender i den samme planen: | PowerShell | shell | miljø | hva det gjør | |---|---|---|---| | `-Project
OpenFlow is an independent fork. It is not affiliated with, sponsored by, or endorsed by the OpenCode team.
AI-kodeagent med åpen kildekode.
English | 简体中文 | 繁體中文 | 한국어 | Deutsch | Español | Français | Italiano | Dansk | 日本語 | Polski | Русский | Bosanski | العربية | Norsk | Português (Brasil) | ไทย | Türkçe | Українська | বাংলা | Ελληνικά | Tiếng Việt
[](https://opencode.ai) --- ### Installasjon ```bash # YOLO curl -fsSL https://opencode.ai/install | bash # Pakkehåndterere npm i -g opencode-ai@latest # eller bun/pnpm/yarn scoop install opencode # Windows choco install opencode # Windows brew install anomalyco/tap/opencode # macOS og Linux (anbefalt, alltid oppdatert) brew install opencode # macOS og Linux (offisiell brew-formel, oppdateres sjeldnere) sudo pacman -S opencode # Arch Linux (Stable) paru -S opencode-bin # Arch Linux (Latest from AUR) mise use -g opencode # alle OS nix run nixpkgs#opencode # eller github:anomalyco/opencode for nyeste dev-branch ``` > [!TIP] > Fjern versjoner eldre enn 0.1.x før du installerer. ### Desktop-app (BETA) OpenCode er også tilgjengelig som en desktop-app. Last ned direkte fra [releases-siden](https://github.com/anomalyco/opencode/releases) eller [opencode.ai/download](https://opencode.ai/download). | Plattform | Nedlasting | | --------------------- | ---------------------------------- | | macOS (Apple Silicon) | `opencode-desktop-mac-arm64.dmg` | | macOS (Intel) | `opencode-desktop-mac-x64.dmg` | | Windows | `opencode-desktop-windows-x64.exe` | | Linux | `.deb`, `.rpm` eller AppImage | ```bash # macOS (Homebrew) brew install --cask opencode-desktop # Windows (Scoop) scoop bucket add extras; scoop install extras/opencode-desktop ``` #### Installasjonsmappe Installasjonsskriptet bruker følgende prioritet for installasjonsstien: 1. `$OPENCODE_INSTALL_DIR` - Egendefinert installasjonsmappe 2. `$XDG_BIN_DIR` - Sti som følger XDG Base Directory Specification 3. `$HOME/bin` - Standard brukerbinar-mappe (hvis den finnes eller kan opprettes) 4. `$HOME/.opencode/bin` - Standard fallback ```bash # Eksempler 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 har to innebygde agents du kan bytte mellom med `Tab`-tasten. - **build** - Standard, agent med full tilgang for utviklingsarbeid - **plan** - Skrivebeskyttet agent for analyse og kodeutforsking - Nekter filendringer som standard - Spør om tillatelse før bash-kommandoer - Ideell for å utforske ukjente kodebaser eller planlegge endringer Det finnes også en **general**-subagent for komplekse søk og flertrinnsoppgaver. Den brukes internt og kan kalles via `@general` i meldinger. Les mer om [agents](https://opencode.ai/docs/agents). ### Dokumentasjon For mer info om hvordan du konfigurerer OpenCode, [**se dokumentasjonen**](https://opencode.ai/docs). ### Bidra Hvis du vil bidra til OpenCode, les [contributing docs](./CONTRIBUTING.md) før du sender en pull request. ### Bygge på OpenCode Hvis du jobber med et prosjekt som er relatert til OpenCode og bruker "opencode" som en del av navnet; for eksempel "opencode-dashboard" eller "opencode-mobile", legg inn en merknad i README som presiserer at det ikke er bygget av OpenCode-teamet og ikke er tilknyttet oss på noen måte. --- **Bli med i fellesskapet** [Discord](https://discord.gg/opencode) | [X.com](https://x.com/opencode)