## Summary
- Qualify OpenCode **2.1.3** (latest stable, 22 October) with the
existing locked **2.1.0 client/plugin** dependencies, and **recommend**
it.
- Keep the technical **minimum at 2.1.2**: nothing CodeNomad consumes
changed, so the minimum has no new reason to move.
- A 2.1.2 daemon stays ready and gets an optional upgrade offer. 2.1.3
is the `tested` version. Newer and custom labels keep authenticated
contract recognition.
- The reviewed-contract fast path lists 2.1.3 beside the 2.1.2 minimum.
- The recommended version is updated in the help (all ten locales), both
READMEs, `dev-docs/OPENCODE_COMPATIBILITY.md` and the architecture
skill.
## Contract review (v2.1.2 → v2.1.3, 66 commits)
- **Authenticated OpenAPI:** 119 → **121 paths**, 144 → **146
operations**. Every consumed operation is unchanged. The only changes:
- added `GET /api/experimental/voice/models`;
- added `POST /api/experimental/voice/session/{sessionID}/instructions`;
- an optional hosted `session.id` in the `POST
/api/experimental/voice/session` response.
None of these is on the instance proxy allowlist, so they stay closed.
- **Published declarations:** the client adds only `voice.models` /
`voice.instructions`. The schema changes only typing (agent `color`
decoding, `Durable` as a tagged union). The plugin is unchanged.
- **Windows managed services** move their default port from **45278 to
28894** ([#57428](https://github.com/anomalyco/opencode/pull/57428)).
CodeNomad discovers the daemon through the selected CLI's `service
status` and the service registration, and assumes no port.
- Live check: this machine's shared daemon was upgraded to 2.1.3 and
restarted on 28894, and the running CodeNomad desktop kept working
through it.
- **Core:** mostly refactors, plus behaviour fixes that the native
suites below exercise:
- compaction summary output limit;
- `keepID` validated as a message ID;
- MCP media kept out of attachments;
- only changed instruction entries resent;
- relative-directory V1 migration;
- legacy `apply_patch` permission mapped to `edit`.
## Isolated Windows qualification
Base: dev `333d73452`, rebased on `853b14f2f` (#1097) for the final UI
unit run; Node **24.20.0**; exact official CLI **2.1.3**; unchanged
locked client/plugin **2.1.0**.
- **Build and checks:** production server/UI/native plugin builds,
server and root typechecks, native bundle guard.
- **Native runtime (9/9):**
- Code Mode job ordering, plugin runtime, automation;
- complete pruning, history, ownership, worktree and event relay;
- loaded-only pending snapshot;
- Missions contract, family control, native and Compare/Wayfinder
trajectory.
- **Sessions (15/15):** environment, fork, aside, interrupt, lifecycle,
blank cleanup, prompt skills, provider usage/accounts/selection, service
usage, web search, plugin packages, output limit, Promise-tool failure.
- **Recurring (5/5):** all **11 recurring Mission journeys**, subagent
depth, **2 MiB** compaction, permission receipts.
- **Migrations (9/9):**
- history from **2.0.3, beta-19271, 2.0.32, 2.1.0, 2.1.1 and 2.1.2** to
2.1.3;
- Git degraded/init;
- temporary workspaces.
- **Installation (3/3), with the 2.1.3 recommendation:**
- fresh install of the 2.1.2 minimum;
- native **2.0.15 → 2.1.3** upgrade, after which the already-running
daemon keeps its PID and 2.0.15 version;
- explicit OpenCode **1.18.10 → 2.1.3** replacement.
- **After the recommendation change:**
- admission/transport/update/setup units **36/36**;
- full server **2,463 passed, 8 skipped**, no failure or cancellation;
- UI units **1,694/1,694** (with #1097);
- focused browser **126/126**;
- native pruning with the real rendered UI;
- the exact CI invocation of the Code Mode regression (without tsx);
- ten-locale help checks.
The UI unit run on `333d73452` itself had two failures, in
`instances-pending-compaction.test.ts` (`toast.dismiss is not a
function`). They come from #1096 and also fail on unmodified `dev`;
#1097 fixes that fixture.
This is Windows automation evidence. In CI, `latest` now resolves to
2.1.3: the compatibility job runs the native suites against the minimum
and latest on Windows, and the migration and Git-degraded certification
runs them on Ubuntu, Windows and macOS. WSL, packaged desktop,
installers/updater end-to-end and real mobile devices keep their
separate release gates.
6.2 KiB
CodeNomad installieren
Wählen Sie einen lokalen Desktop-Host oder betreiben Sie den eigenständigen Server. In beiden Fällen verwaltet OpenCode den gemeinsamen nativen Dienst und den Verlauf.
Desktop-Downloads
- Öffnen Sie das neueste Release.
- Wählen Sie den Build für Ihr Betriebssystem und Ihren Prozessor.
- Entpacken Sie die ZIP-Datei oder installieren/starten Sie das Plattformpaket und starten Sie anschließend CodeNomad.
| Plattform | Electron-Release | Tauri-Release | Plattformhinweise |
|---|---|---|---|
| macOS | ZIP, Intel oder Apple Silicon | ZIP, Intel oder Apple Silicon | Die gebündelte Laufzeit erfordert macOS 13.5 oder neuer. |
| Windows | ZIP, x64 | Installationsprogramm, x64 | Windows 10 oder neuer; Tauri verwendet WebView2. |
| Linux | Debian-Paket, x64 | AppImage, x64 | Unter Ubuntu 24.04 gebaut und getestet; Kompatibilität mit älteren Distributionen ist nicht garantiert. |
Desktop-Releases enthalten die Laufzeitressourcen für Backend und OpenCode-Installation; dafür benötigen Sie keine separate Node.js/npm-Installation. Git wird nicht mitgeliefert. Native Browser-Automatisierung wird in Electron und Windows-Tauri unterstützt; andere Tauri-Plattformen verwenden iframe-Vorschauen.
Wird ein überprüfter Download beim Start blockiert, lesen Sie die plattformbezogene Fehlerbehebung. Führen Sie niemals ein nicht vertrauenswürdiges Archiv aus, nur um eine Warnung zu umgehen.
Unter Linux installieren
Führen Sie im Ordner des heruntergeladenen Releases Folgendes mit dessen tatsächlicher Version und Dateinamen aus:
sudo apt install ./CodeNomad-Electron-linux-x64-<version>.deb
Für das Tauri-AppImage:
chmod +x CodeNomad-Tauri-linux-x64-<version>.AppImage
./CodeNomad-Tauri-linux-x64-<version>.AppImage
Falls FUSE nicht verfügbar ist, verwenden Sie den Entpacken-und-Ausführen-Modus des AppImage:
./CodeNomad-Tauri-linux-x64-<version>.AppImage --appimage-extract-and-run
Die Electron-Debian-Installation richtet die Chromium-Sandbox ein. Deaktivieren Sie die Sandbox nicht als Installationsbehelf. Für Grafikprobleme unter Linux-Tauri gibt es eine gezielte WebKit-Abhilfe.
Anforderungen
| Anforderung | Wo sie verfügbar sein muss | Aktuelle Anforderung |
|---|---|---|
| OpenCode-CLI | Ausgewählter Ausführungshost, gegebenenfalls einschließlich der ausgewählten WSL-Distribution | Mindestens 2.1.2; 2.1.3 ist das empfohlene/qualifizierte Ziel. Neuere oder angepasste Versionen werden anhand der Schnittstellenverträge geprüft, nicht wegen fehlender Tests ausgeschlossen. |
| Git | Im PATH des CodeNomad-Backend-Kontos |
Erforderlich für Repository-Identität, Git-Vorgänge und Worktrees. |
| Node.js/npm | Host für eigenständigen Server und Quellcode-Builds | Node.js 24 LTS; reproduzierbare Quellcode-Builds verwenden .node-version (24.20.0). In den Desktop-Laufzeit-/Installationsressourcen enthalten. |
| Arbeitsbereichsordner | Für das Backend zugänglicher Datenträger | Ein ausdrücklich geöffneter physischer Ordner, kein von einem Remote-Browser angenommener gerätelokaler Ordner. |
Installieren Sie unter Windows Git for Windows mit aktiviertem Zugriff über Befehlszeile/Drittsoftware. Eine vom Benutzer beschreibbare benutzerbezogene Installation genügt. Unter macOS/Linux folgen Sie Gits Plattformanleitung.
Beenden Sie nach einer Änderung von PATH die Desktop-App vollständig und starten Sie sie neu, oder starten Sie das eigenständige Backend unter dem vorgesehenen Konto neu. Ein Browser-Neuladen aktualisiert die Backend-Umgebung nicht. Nur innerhalb von WSL verfügbares Git erfüllt die Git-Anforderung eines Windows-Backends nicht.
Ohne Git können Sie weiterhin einen physischen Ordner öffnen und verzeichnisgebundene Unterhaltungen führen, einschließlich einer Bitte an den Agenten um Installationshilfe. Repository-/Worktree-Vorgänge bleiben nicht verfügbar; der Sitzungszugriff bleibt auf genau diesen Ordner begrenzt. CodeNomad informiert den Agenten vor Prompts/benutzerdefinierten Befehlen über die Git-Verfügbarkeit im Backend und entfernt diesen Hinweis nach der Wiederherstellung. Der Ausführungshost des Agenten kann vom Backend-Host abweichen: Installieren Sie Git für das Backend, nicht nur für die Shell des Agenten.
OpenCode beim ersten Start auswählen
- Wählen Sie bei der Einrichtung eine kompatible vorhandene Programmdatei oder nutzen Sie die angebotene OpenCode-Installation.
- Prüfen Sie vor dem Öffnen eines Projekts den Laufzeitstatus.
- Öffnen Sie später Einstellungen → OpenCode, um Programmdatei, Installation und gemeinsamen Dienst getrennt zu verwalten.
CodeNomad bevorzugt kompatible Programmdateien im PATH und unterstützt eine ausdrücklich ausgewählte Programmdatei. Startet PATH ein älteres OpenCode, bietet die Einrichtung an, ein mit npm installiertes OpenCode 1.x nach Bestätigung zu ersetzen oder OpenCode 2 für CodeNomad neben einer auf anderem Weg erstellten Installation zu installieren, die sie nie verändert; siehe OpenCode-Einrichtung. Das Installieren/Aktualisieren einer CLI startet einen bereits laufenden gemeinsamen Dienst nicht stillschweigend neu. Die OpenCode-Einrichtung erläutert Neustart-/Neuladefolgen, WSL und die Sitzungsumgebung.
Stattdessen einen Browser verwenden
Installieren Sie Node.js/npm, Git und OpenCode auf dem Server-Host und folgen Sie dann den Server-Startanleitungen. Verbinden Sie sich über die ausgegebene Adresse mit konfigurierter Authentifizierung und einem vertrauenswürdigen Zertifikat. Ein Browser/eine PWA benötigt ein laufendes Backend; dies ist keine Offline-Kopie Ihrer Projekte.
Ports, Bindungen und TLS beschreibt der Direktzugriff. Zum Koppeln eines Geräts ohne eingehende Ports verwenden Sie die Fernsteuerung. Entwicklungs- und Paketierungsbefehle finden Sie unter Quellcode-Builds.