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.
É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.
É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.
É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.
É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 --json1. 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é.