Watch / 值更
GUIDE TECHNIQUE WATCH / RELAIS DE SESSION

Guide de relais de session bidirectionnel OpenCode, Claude et Codex

OpenCode conserve les sessions dans ~/.local/share/opencode/opencode.db. WATCH_OPENCODE_DB oriente Watch vers un autre fichier. Watch écrit sessions, messages et parts dans une seule transaction SQLite et annule en cas d’échec. Les champs d’outils non pris en charge deviennent du texte. Les réponses ultérieures dépendent du modèle que vous configurez.

Pour passer d’agents cloud commerciaux à des modèles open source locaux dans OpenCode (ou relayer vers les agents cloud), ce guide explique comment utiliser Watch pour un relais bidirectionnel avec isolation transactionnelle des données SQLite.

Publié: 2026-09-21 Modifié: 2026-09-23 S’applique à: Watch v0.1.1
Limite opérationnelle essentielle

OpenCode utilise une seule base relationnelle SQLite (par défaut ~/.local/share/opencode/opencode.db) pour le stockage des sessions, avec intégrité transactionnelle ACID et requêtes structurées. Pour faire passer des tâches sensibles vers des modèles open source hébergés localement (via Ollama ou vLLM dans OpenCode) ou les relayer vers des modèles cloud de pointe (Claude/Codex), Watch fournit un pont bidirectionnel vérifié.

Contrairement aux outils qui s’appuient strictement sur des fichiers JSONL en ajout seul, OpenCode organise les sessions dans des tables relationnelles normalisées, dont sessions, messages et parts. Une altération externe directe peut corrompre les contraintes de clé étrangère. Watch projette proprement l’abstraction UnifiedTurn dans le schéma relationnel d’OpenCode tout en conservant le contexte de répertoire exact (cwd) et les horodatages.

  1. Étape 1 : Identifier l’ID de session source et le répertoire de travail

    Localisez l’ID de votre session active. Claude Code stocke les fichiers dans ~/.claude/projects/ ; Codex dans ~/.codex/sessions/ ; OpenCode indexe les sessions par des ID globalement uniques. Vérifiez que le répertoire de travail est un chemin absolu afin de conserver l’alignement des limites du projet.

  2. Étape 2 : Contrôler l’état de la base cible (Check)

    Lancez le CLI Watch avec --check pour sonder la base OpenCode cible. Watch valide les droits d’écriture et les verrous sur ~/.local/share/opencode/opencode.db (ou le chemin personnalisé indiqué par WATCH_OPENCODE_DB) afin d’éviter les conflits d’écriture simultanés.

  3. Étape 3 : Exécuter le relais bidirectionnel (Handoff)

    Sélectionnez la session source dans Watch Desktop et ciblez OpenCode, ou lancez la commande CLI open. Watch extrait les tours incrémentaux, exécute des transactions SQLite atomiques sur sessions, messages et parts, puis fournit l’ID de session de destination.

  4. Étape 4 : Reprendre la session nativement dans OpenCode (Resume)

    Après la conversion, exécutez opencode -s <session-id> dans le répertoire de travail ou utilisez le bouton de lancement dans Watch Desktop. OpenCode charge la conversation enregistrée dans ce répertoire.

# 1. Contrôle préalable : vérifier que la base OpenCode cible est accessible en écriture npm run watch -- open <claude-session-id> --to opencode --check --json # 2. Relais : transférer la session dans la base SQLite OpenCode npm run watch -- open <claude-session-id> --to opencode --json # 3. Relais inverse : transférer d’OpenCode vers Claude ou Codex npm run watch -- open <opencode-session-id> --to claude --json
Contraintes de sûreté et avertissements

1. Isolation de la base et sauvegardes : Watch utilise par défaut ~/.local/share/opencode/opencode.db et WATCH_OPENCODE_DB pour les environnements de test. L’écriture est une transaction SQLite et elle est annulée en cas d’échec. 2. Représentations des appels d’outils : les enregistrements se projettent d’un schéma à l’autre ; les paramètres propriétaires non pris en charge deviennent du texte structuré. 3. Poursuite par le modèle : Watch écrit l’enregistrement de session déjà sauvegardé et le répertoire de travail. Il ne garantit pas que chaque événement d’outil soit conservé. Les réponses suivantes dépendent du modèle configuré.

Questions fréquentes

Quel est l’avantage du stockage SQLite d’OpenCode par rapport au JSONL ?

SQLite fournit des transactions ACID et un indexage robuste, ce qui élimine le risque de troncature de ligne ou de corruption de fichier lors d’un arrêt inattendu. Le remplacement WATCH_OPENCODE_DB facilite aussi les environnements de test isolés.

Les raisonnements personnalisés du modèle sont-ils conservés lors d’un relais depuis OpenCode ?

Watch copie les invites, le texte de l’assistant, les traces de réflexion et les sorties d’outils qu’il peut projeter. Les champs d’outil non pris en charge deviennent du texte : la copie n’est pas une réplique complète de la ligne OpenCode.

Comment Watch évite-t-il un décalage de répertoire de travail ?

Watch lie strictement le cwd absolu de la session source à l’entrée de session OpenCode. Lors de la reprise via opencode -s <session-id>, OpenCode se verrouille sur cet espace de travail, ce qui évite des modifications accidentelles dans le mauvais répertoire.

Sources officielles et preuves de validation

Retour à l’accueil Watch Télécharger Watch Desktop