feat: add complete French localization (#1482)

* feat: add French locale runtime

Add French to OpenChamber's shared i18n runtime, dictionaries, and parity tests so the existing language picker can load a complete fr locale across shared UI surfaces.

* fix: localize shared UI formatting

Remove remaining shared UI locale hardcodings so dates, numbers, and first-party helper copy follow the active app locale instead of leaking English on French surfaces.

* feat: localize VS Code French surfaces

Localize VS Code bootstrap, native runtime messages, panel titles, and manifest contribution strings so French users get consistent first-party copy across the extension experience.

* fix: TASK-2026-05-30-008 correct French review findings

Fix broken French relative-time and weekday strings reported on PR #1482 and restore proper import order in quota utils without broadening scope.

* fix: TASK-2026-05-30-008 address final PR review comments

Capture the localized More Info label once in the VS Code CLI-missing flow and replace the remaining inline French-only utility strings with dictionary-driven copy plus required locale keys.

* fix: TASK-2026-05-30-008 normalize French glossary

Correct glossary-level French terminology on the live PR branch, keeping canonical technical terms like PR, worktree, stash, HEAD, Mermaid, Markdown, remote, and session while replacing misleading literal translations.

* fix: TASK-2026-05-30-008 refine French terminology pass

Clean up remaining glossary mistakes on the French PR branch, especially around Mermaid, Markdown, PR, worktree, stash, branch, remote, and commit terminology, while keeping behavior unchanged.

* fix: TASK-2026-05-30-008 clean remaining French false friends

Correct the SOCKS5 mistranslation and a final small set of obvious false-friend technical nouns on the French branch without changing behavior.

* fix: TASK-2026-05-30-008 correct French glossary terms

Replace remaining false-friend translations in the French UI dictionaries and normalize technical labels for the French PR branch.

* fix: TASK-2026-05-30-008 remove remaining French Mermaid false friend

Replace the last confirmed Sirène translation with Mermaid and re-run the requested blacklist and build verification on the PR branch.

* fix: TASK-2026-05-30-008 enforce French glossary policy

Keep skill/PR/worktree/remote terminology developer-credible in French and remove remaining machine-translated Git and settings copy.

* fix: TASK-2026-05-30-008 keep prompt terminology in French

Replace remaining technical invite translations with prompt wording across scheduled tasks, multi-run, prompt templates, and Magic Prompts.

* fix: TASK-2026-05-30-008 finalize French terminology cleanup

Polish remaining worktree/remote wording, remove visible metadata leakage, and correct final Git and settings labels on the French PR branch.

* fix: TASK-2026-05-30-008 polish final French strings

Correct the last aria-like artifacts and awkward worktree/remote/GitHub URL phrasing in the French dictionaries.

* fix: TASK-2026-05-30-008 normalize final French glossary framing

Tighten the last worktree/remote/checkout wording and fix remaining French grammar around canonical technical terms.

* fix: TASK-2026-05-30-008 align final developer glossary wording

Normalize the last French framing around canonical developer terms like worktree, remote, prompt, and checkout.

* fix: TASK-2026-05-30-008 harmonize final French sentence framing

Replace the last raw franglais around checkout, remote, worktree, and prompt-facing labels with more natural French framing while keeping the chosen technical terms.

* fix: TASK-2026-05-30-008 add compact relative date keys

Replace French-specific prefix stripping in compact session date labels with dedicated i18n keys across locale dictionaries, preserving existing compact label output while making French wording robust.

* docs: add French documentation

* docs: mention French locale folder

---------

Co-authored-by: Bohdan Triapitsyn <artmore@protonmail.com>
This commit is contained in:
Pascal André
2026-06-10 20:19:30 +03:00
committed by GitHub
co-authored by Bohdan Triapitsyn
parent 85bf7c7563
commit 49a1424e5f
86 changed files with 7080 additions and 173 deletions
+7 -3
View File
@@ -202,12 +202,13 @@ other language mirrors the English files under a locale folder.
| Brazilian Portuguese | `pt-br/` | `pt-BR` |
| Korean | `ko/` | `ko` |
| Polish | `pl/` | `pl` |
| French | `fr/` | `fr` |
> [!IMPORTANT]
> The **content folder** uses the lowercase locale key (`zh-cn`, `pt-br`); the
> **sidebar `translations`** key uses the BCP-47 language tag (`zh-CN`, `pt-BR`).
> They look similar but are not interchangeable — Starlight resolves them with
> different rules. Everything else (`uk`, `es`, `ko`, `pl`, `en`) is identical
> different rules. Everything else (`uk`, `es`, `ko`, `pl`, `fr`, `en`) is identical
> in both columns.
This locale set is mirrored in the website at
@@ -228,6 +229,7 @@ content/docs/
pt-br/install.mdx # Brazilian Portuguese
ko/install.mdx # Korean
pl/install.mdx # Polish
fr/install.mdx # French
guides/tunnels.mdx # nested English page
uk/guides/tunnels.mdx # its Ukrainian translation
@@ -263,7 +265,8 @@ to each section and item in `sidebar.config.json`:
"es": "Empieza aquí",
"pt-BR": "Comece aqui",
"ko": "여기서 시작",
"pl": "Zacznij tutaj"
"pl": "Zacznij tutaj",
"fr": "Commencer ici"
},
"items": [
{
@@ -275,7 +278,8 @@ to each section and item in `sidebar.config.json`:
"es": "Instalación",
"pt-BR": "Instalação",
"ko": "설치",
"pl": "Instalacja"
"pl": "Instalacja",
"fr": "Installation"
}
}
]
+1 -1
View File
@@ -6,7 +6,7 @@ This package is the source-of-truth for OpenChamber public docs content.
- `content/docs/*.mdx` - English docs pages (source of truth)
- `content/docs/<locale>/*.mdx` - translations, mirroring the English filenames
(e.g. `uk/`, `zh-cn/`, `pt-br/`); see `CONTRIBUTING.md` → Localization
(e.g. `uk/`, `zh-cn/`, `pt-br/`, `fr/`); see `CONTRIBUTING.md` → Localization
- `sidebar.config.json` - docs navigation structure for Starlight sidebar
- `CONTRIBUTING.md` - authoring guide for adding pages, sections, and translations
- `DEPLOYMENT.md` - release/manual packaging and sync trigger model
@@ -0,0 +1,39 @@
---
title: Commandes et snippets
description: Créez des commandes slash et snippets de texte réutilisables pour le chat.
---
# Commandes et snippets
Les commandes et les snippets vous évitent de retaper la même chose. Les commandes sont des prompts complets que vous déclenchez avec `/` ; les snippets sont des morceaux de texte que vous insérez dans un message avec `#`.
## Commandes
Une commande est un prompt enregistré que vous lancez avec un slash, comme `/review`. Gérez-les dans **Paramètres → Commandes**.
1. Ouvrez **Paramètres → Commandes** et créez une commande.
2. Donnez-lui un nom, une description et le texte de prompt quelle doit envoyer.
3. Épinglez-la éventuellement à un agent ou modèle précis.
4. Choisissez un scope personnel ou projet.
Dans le chat, tapez `/` comme **premier** caractère du message pour afficher les commandes, puis choisissez-en une. Votre texte peut utiliser des placeholders :
- `$ARGUMENTS` — tout ce que vous tapez après la commande
- `@filename` — insère le contenu dun fichier
- `` !`command` `` — insère la sortie dune commande shell
Les commandes intégrées `init` et `review` peuvent être réinitialisées mais pas supprimées.
## Snippets
Un snippet est un texte réutilisable que vous référencez inline avec un hashtag, comme `#signoff`. Gérez-les dans **Paramètres → Snippets**.
1. Ouvrez **Paramètres → Snippets** et créez un snippet.
2. Donnez-lui un nom et le texte quil représente. Ajoutez des alias si vous voulez plusieurs déclencheurs.
3. Choisissez un scope personnel ou projet.
Dans le chat, tapez `#` et choisissez un snippet. OpenChamber remplace ce raccourci par le texte complet avant lenvoi.
## Pages liées
- [Skills](/skills/) — charger de plus grands ensembles dinstructions à la demande
+38
View File
@@ -0,0 +1,38 @@
---
title: Contexte
description: Voyez quelle part de la mémoire du modèle une session utilise.
---
# Contexte
Chaque modèle ne peut garder quune certaine quantité de conversation à la fois — son contexte. OpenChamber montre à quel point il est rempli, pour que vous sachiez quand une session approche de la limite et quune réponse risque de perdre des détails plus anciens.
## Lindicateur rapide
Pendant que vous discutez, une petite jauge affiche le pourcentage de contexte utilisé. Elle change de couleur à mesure quelle se remplit :
- vert — beaucoup de marge
- jaune — presque plein (environ trois quarts)
- rouge — presque à la limite
Survolez-la (ou touchez-la sur mobile) pour voir les nombres exacts de tokens.
## Le panneau de contexte complet
Ouvrez longlet **Contexte** dans la barre latérale droite pour une vue plus complète de la session actuelle :
- le modèle utilisé et lheure de démarrage de la session
- le total de tokens par rapport à la limite du modèle
- les totaux de messages et de coûts
- le détail des tokens de la dernière réponse
- une répartition approximative de ce qui occupe le contexte (vos messages, ceux de lagent, la sortie des outils)
La répartition est une estimation, pas un comptage exact — utilisez-la pour repérer ce qui remplit la fenêtre, pas pour la facturation.
## Que faire quand il est plein
Démarrez une nouvelle session pour une nouvelle tâche au lieu de laisser une seule session grossir indéfiniment. Un contexte plus court est plus rapide et garde le modèle concentré.
## Pages liées
- [Projets](/projects/) — les sessions sont groupées par projet
@@ -0,0 +1,22 @@
---
title: Navigateur desktop
description: Parcourez nimporte quelle page dans lapplication desktop, avec inspection et capture de console.
---
# Navigateur desktop
Lapplication desktop possède un navigateur intégré pour ouvrir nimporte quelle page juste à côté de votre chat, pointer des éléments pour poser des questions à leur sujet et capturer la console de la page. Ouvrez-le avec le bouton globe dans len-tête de lapplication.
> Le navigateur desktop est une fonctionnalité **desktop uniquement**. Sur le web, le panneau [aperçu](/preview/) offre les mêmes outils dinspection et de console pour votre serveur de dev local.
## Inspecter et annoter
Activez **inspect** et cliquez sur nimporte quel élément de la page. OpenChamber capture une note à son sujet — ce que cest, ses styles, sa position et une capture d’écran — puis lattache à votre message de chat. Cest le moyen le plus rapide de dire à lagent « cet élément, juste ici ».
## Capture de console
Le navigateur collecte la sortie console de la page — erreurs, avertissements et logs — pour que vous puissiez la filtrer et la lire sans ouvrir les outils développeur.
## Pages liées
- [Aperçu et serveurs de dev](/preview/) — les mêmes outils pour votre serveur de dev local
@@ -0,0 +1,41 @@
---
title: Tunnels desktop
description: Créez des tunnels Cloudflare ou Ngrok depuis lapplication desktop.
---
# Tunnels desktop
Lapplication desktop peut créer un tunnel public depuis **Paramètres → OpenChamber → Tunnel**. Vous navez pas besoin de démarrer OpenChamber depuis la CLI pour ce chemin.
## Installer un fournisseur
OpenChamber démarre la CLI du fournisseur sur votre machine. Installez dabord le fournisseur que vous voulez utiliser :
```bash
brew install cloudflared
brew install ngrok
```
Cloudflare utilise `cloudflared`. Ngrok nécessite un compte ngrok et un authtoken depuis le dashboard ngrok :
```bash
ngrok config add-authtoken <your-ngrok-token>
```
## Démarrer depuis lapplication
1. Ouvrez **Paramètres → OpenChamber → Tunnel**.
2. Choisissez **Cloudflare** ou **Ngrok**.
3. Démarrez un tunnel rapide.
4. Scannez le QR code généré depuis votre téléphone.
Ngrok prend actuellement en charge les tunnels rapides. Cloudflare prend en charge les tunnels rapides et les modes Cloudflare gérés.
## Protection de laccès
Même lorsque lURL du fournisseur est publique, OpenChamber protège toujours laccès avec son propre token de connexion. Le lien de connexion généré contient un token à usage unique, possède une TTL, et les anciens liens inutilisés sont révoqués lorsque vous en générez un nouveau ou que vous arrêtez/redémarrez le tunnel.
## Pages liées
- [Tunnels](/tunnels/) — utilisation des tunnels CLI et modes Cloudflare gérés
- [PWA et mobile](/mobile/) — joindre OpenChamber depuis votre téléphone
@@ -0,0 +1,138 @@
---
title: Variables denvironnement
description: Configurez OpenChamber et lintégration OpenCode avec des variables denvironnement.
---
# Variables denvironnement
OpenChamber lit ces variables denvironnement au démarrage. Pour les services de démarrage, `openchamber startup enable` capture lenvironnement actuel par défaut ; relancez donc la commande après avoir changé les variables que le service doit utiliser.
## Serveur OpenChamber
### `OPENCHAMBER_HOST`
Adresse d’écoute du serveur web OpenChamber. Utilisez `0.0.0.0` pour autoriser laccès depuis dautres machines.
### `OPENCHAMBER_UI_PASSWORD`
Mot de passe pour lUI navigateur. Utilisez-le lorsque vous écoutez hors de localhost, utilisez des tunnels ou passez derrière un reverse proxy.
### `OPENCHAMBER_API_ONLY`
Démarre OpenChamber en mode headless lorsquil vaut `true` ou `1`. Les routes API restent disponibles pour les clients desktop et mobile, mais lUI navigateur nest pas servie.
### `OPENCHAMBER_DATA_DIR`
Remplace le dossier de données OpenChamber. La valeur par défaut est `~/.config/openchamber`.
### `OPENCHAMBER_COMPRESS_API`
Contrôle la compression des réponses API. Utilisez `true` ou `1` pour la forcer, `false` ou `0` pour la désactiver.
### `OPENCHAMBER_SKIP_API_COMPRESSION`
Désactive la compression des réponses API lorsquil vaut `true` ou `1`. Cette variable a priorité sur `OPENCHAMBER_COMPRESS_API`.
### `OPENCHAMBER_VERBOSE_REQUEST_LOGS`
Active les logs HTTP détaillés lorsquil vaut `true` ou `1`.
### `OPENCHAMBER_UPDATE_API_URL`
Remplace lendpoint API de vérification des mises à jour. La plupart des utilisateurs doivent laisser cette variable non définie.
### `OPENCHAMBER_PACKAGE_MANAGER`
Force le gestionnaire de paquets utilisé par les opérations de mise à jour lorsque lauto-détection se trompe.
## Serveur OpenCode
### `OPENCODE_HOST`
Connecte OpenChamber à un serveur OpenCode existant. La valeur doit être une origine `http` ou `https` avec un port explicite, sans chemin, query ni hash. `OPENCODE_HOST` a priorité sur `OPENCODE_PORT`.
### `OPENCODE_PORT`
Définit le port du serveur OpenCode. Avec OpenCode géré, cela demande le port géré ; avec `OPENCODE_SKIP_START=true`, OpenChamber se connecte à un serveur externe sur ce port.
### `OPENCODE_SKIP_START`
Empêche OpenChamber de démarrer son propre serveur OpenCode lorsquil vaut `true`.
### `OPENCHAMBER_OPENCODE_HOSTNAME`
Nom dhôte d’écoute du serveur OpenCode géré par OpenChamber. La valeur par défaut est `127.0.0.1`.
### `OPENCODE_BINARY`
Chemin vers lexécutable `opencode` quOpenChamber doit lancer.
### `OPENCODE_CONFIG`
Chemin vers un fichier de configuration OpenCode précis.
### `OPENCODE_CONFIG_DIR`
Chemin vers un dossier de configuration OpenCode précis pour la découverte des agents, skills, snippets et configurations.
### `OPENCODE_DATA_DIR`
Dossier de données personnalisé pour le serveur OpenCode géré.
### `OPENCODE_WSL_DISTRO`
Sélectionne la distribution WSL utilisée pour lintégration OpenCode sur Windows.
### `OPENCHAMBER_OPENCODE_WSL_DISTRO`
Alias propre à OpenChamber pour sélectionner la distribution WSL. `OPENCODE_WSL_DISTRO` a priorité lorsque les deux sont définies.
### `OPENCODE_JWT_SECRET`
Secret utilisé pour signer les tokens dauthentification UI. Utilisez une longue valeur aléatoire pour les déploiements de service persistants.
## Terminal et Git
### `OPENCHAMBER_TERMINAL_SHELL`
Exécutable shell utilisé pour les sessions de terminal OpenChamber.
### `OPENCHAMBER_GIT_BINARY`
Exécutable Git utilisé par les fonctionnalités Git dOpenChamber.
### `GIT_BINARY`
Autre exécutable Git de remplacement. Préférez `OPENCHAMBER_GIT_BINARY` pour une configuration propre à OpenChamber.
### `OPENCHAMBER_GIT_READ_CACHE_TTL_MS`
Durée de vie, en millisecondes, du cache de lecture des fichiers adossés à Git. Définissez `0` pour désactiver ce cache pendant le débogage.
## Voix et tunnels
### `OPENAI_API_KEY`
Clé API utilisée par les fonctionnalités vocales dOpenChamber qui appellent des services compatibles OpenAI.
### `OPENCHAMBER_ALLOW_REMOTE_OPENAI_COMPAT_URLS`
Autorise les URL de base compatibles OpenAI distantes pour les fonctionnalités vocales lorsquelle vaut `true` ou `1`.
### `NGROK_AUTHTOKEN`
Token dauthentification ngrok utilisé par les commandes de tunnel OpenChamber. Vous pouvez aussi configurer ngrok avec `ngrok config add-authtoken <token>`.
## Helpers runtime
### `BUN_BINARY`
Exécutable Bun quOpenChamber doit utiliser lorsquil lance des processus daemon.
### `BUN_INSTALL`
Racine dinstallation de Bun. OpenChamber lutilise pour trouver `bin/bun` lors du démarrage des daemons et des mises à jour.
### `VITE_OPENCODE_URL`
URL de base API à la compilation pour lapplication web construite par Vite. La plupart des utilisateurs ne doivent pas la définir pour un usage CLI ou desktop normal.
@@ -0,0 +1,30 @@
---
title: Identités Git
description: Commitez avec le bon nom et la bonne adresse e-mail pour chaque dépôt.
---
# Identités Git
Une identité git est le nom et ladresse e-mail avec lesquels vos commits sont signés. Si vous travaillez sur des dépôts personnels et professionnels, vous pouvez enregistrer des identités et appliquer la bonne par dépôt, au lieu de dépendre dun seul réglage global. Gérez-les dans **Paramètres → Git**.
## Ajouter une identité
1. Ouvrez **Paramètres → Git** et choisissez **New**.
2. Saisissez le **nom** et l**e-mail** à utiliser pour les commits.
3. Choisissez comment elle sauthentifie auprès du remote :
- **SSH** — pointez vers une clé SSH
- **token** — utilisez un identifiant enregistré pour un host
4. Donnez-lui éventuellement une couleur et une icône pour la repérer facilement.
Lidentité globale de votre système est aussi affichée, en lecture seule.
## Appliquer une identité à un dépôt
Appliquer une identité l’écrit dans la configuration git **locale** de ce dépôt — cela ne touche que ce dépôt, pas votre réglage global. Les identités SSH définissent aussi la commande SSH pour utiliser votre clé ; les identités par token configurent le stockage didentifiants pour le host.
Vous pouvez importer les identités quOpenChamber découvre dans vos identifiants git existants et les enregistrer comme identités par token.
## Pages liées
- [Workflows Git et GitHub](/git/) — commiter avec lidentité définie
- [Issues et PR GitHub](/github/) — connecter un compte GitHub pour les PR
+41
View File
@@ -0,0 +1,41 @@
---
title: Workflows Git et GitHub
description: Stagez, commitez et gérez les branches sans quitter OpenChamber.
---
# Workflows Git et GitHub
OpenChamber possède une vue git intégrée pour relire les changements, commiter et gérer les branches sans passer au terminal. Ouvrez-la depuis longlet **Git** dans la barre latérale droite.
## Relire et commiter
La vue git sépare vos changements en **staged** et **unstaged** :
- cliquez sur le **+** dun fichier pour le stage, ou sur **** pour le retirer du stage
- stagez ou retirez du stage tout un groupe à la fois
- cliquez sur un fichier pour voir son diff
Écrivez ensuite un message de commit et commitez. Vous pouvez demander à OpenChamber de **générer un message de commit** à partir de vos changements staged — il utilise le modèle de la session actuelle, donc une session doit être ouverte.
## Branches et historique
La vue git couvre aussi le reste du quotidien git :
- créer, changer, renommer et supprimer des branches
- push, pull et fetch
- parcourir lhistorique et les diffs par commit
- stash et restaurer des changements
## Pull requests
Connectez GitHub (voir [Issues et PR GitHub](/github/)) et longlet **PR** vous permet douvrir une pull request, de la mettre à jour, de la marquer comme prête ou de la merger — et de générer son titre et sa description comme pour les messages de commit.
## Gérer les conflits
Si un merge, rebase ou integrate tombe sur un conflit, OpenChamber montre ce qui est bloqué et vous laisse le résoudre — y compris en le confiant à lagent.
## Pages liées
- [Issues et PR GitHub](/github/) — connecter GitHub et démarrer le travail depuis des issues
- [Sessions worktree](/worktrees/) — isoler une branche dans son propre dossier
- [Identités Git](/git-identities/) — commiter avec la bonne identité par dépôt
+34
View File
@@ -0,0 +1,34 @@
---
title: Issues et PR GitHub
description: Connectez GitHub et démarrez des sessions depuis des issues et pull requests.
---
# Issues et PR GitHub
Connectez votre compte GitHub et OpenChamber peut récupérer les issues et pull requests, démarrer une session directement depuis lune delles, et ouvrir ou mettre à jour des PR pour vous.
## Connecter GitHub
1. Ouvrez **Paramètres → Git**.
2. Sous GitHub, choisissez **Connect**. OpenChamber affiche un lien et un code court.
3. Ouvrez le lien, saisissez le code et approuvez.
Une fois connecté, votre compte apparaît dans la section GitHub. Vous pouvez connecter plusieurs comptes et passer de lun à lautre, ou vous déconnecter à tout moment.
## Démarrer le travail depuis une issue ou une PR
Lorsque vous créez une [session worktree](/worktrees/) avec GitHub connecté, vous pouvez choisir **Start from GitHub issue/PR** :
- choisissez une **issue** et OpenChamber nomme la branche daprès elle puis ouvre la session avec lissue et ses commentaires comme premier message
- choisissez une **pull request** et il récupère la branche de la PR ; vous pouvez inclure le diff de la PR pour que lagent ait tout le changement
Vous arrivez directement dans une session avec le contexte déjà chargé.
## Ouvrir et gérer des pull requests
Depuis longlet **PR** de la [vue git](/git/), vous pouvez créer une pull request, la mettre à jour, marquer un brouillon comme prêt ou la merger. OpenChamber peut générer le titre et la description de la PR à partir de vos changements.
## Pages liées
- [Workflows Git et GitHub](/git/) — commiter et gérer les branches
- [Sessions worktree](/worktrees/) — là où démarrent les sessions issues et PR
+32
View File
@@ -0,0 +1,32 @@
---
title: Documentation OpenChamber
description: Guide dinstallation et dexploitation dOpenChamber pour le web, le desktop et VS Code.
---
# Documentation OpenChamber
OpenChamber est lespace de travail visuel autour dOpenCode (lagent de codage IA qui tourne dans votre terminal). Il vous donne un écran pour suivre et piloter ce travail, au lieu de tout faire en ligne de commande.
Utilisez cette documentation pour :
- installer lapplication qui correspond à votre façon de travailler
- ouvrir OpenChamber pour un usage distant sûr
- personnaliser lapparence et corriger les problèmes courants
## À lire dabord
- [Installation](/install/)
- [Démarrage rapide](/quickstart/)
- [Tunnels](/tunnels/)
- [Dépannage](/troubleshooting/)
## Explorer
- [Projets](/projects/) et [sessions worktree](/worktrees/) — organiser et isoler votre travail
- [Fournisseurs, modèles et agents](/providers/) — connecter OpenCode et choisir un modèle
- [Workflows Git et GitHub](/git/) — commiter, relire et ouvrir des PR
- [Sécurité](/security/) et [tunnels](/tunnels/) — protéger et joindre votre instance
## À quoi sert OpenChamber
OpenChamber sert aux parties du codage IA qui gagnent à être pilotées depuis une salle de contrôle : sessions par branche, revue des diffs, gestion des terminaux, suivi de lavancement des outils, lancement dactions de projet et vue densemble pendant que lagent travaille.
+33
View File
@@ -0,0 +1,33 @@
---
title: Installation
description: Installez OpenChamber pour le desktop, le web ou VS Code.
---
# Installation
Il existe trois façons dutiliser OpenChamber :
- lapplication desktop pour macOS
- lapplication web servie par la CLI, que vous pouvez installer comme une application de téléphone (une PWA)
- lextension VS Code
## Prérequis
Installez dabord [OpenCode](https://opencode.ai) — OpenChamber fonctionne par-dessus.
## Web + PWA
```bash
curl -fsSL https://raw.githubusercontent.com/openchamber/openchamber/main/scripts/install.sh | bash
openchamber --ui-password be-creative-here
```
Ouvrez lURL affichée par la CLI (souvent `http://localhost:3000`). Vous devriez voir la liste des sessions OpenChamber. Pour la garder à portée de main, utilisez loption « Installer » de votre navigateur dans la barre dadresse pour lajouter comme application.
## Desktop
Téléchargez la dernière version desktop depuis la page des releases GitHub ou la page de téléchargement OpenChamber. Ouvrez-la et connectez-la à votre workflow OpenCode habituel.
## VS Code
Installez lextension depuis le VS Code Marketplace et connectez-la à votre workflow OpenCode habituel. La vue OpenChamber souvre ensuite dans la barre latérale.
@@ -0,0 +1,26 @@
---
title: Magic Prompts
description: Personnalisez les prompts intégrés derrière les flux automatisés dOpenChamber.
---
# Magic Prompts
OpenChamber utilise des prompts intégrés en arrière-plan chaque fois quil fait quelque chose automatiquement — écrire un message de commit, rédiger une PR, relire une issue, résoudre un conflit, résumer une session. Magic Prompts est lendroit où vous lisez et réécrivez ces prompts. Ouvrez-le dans **Paramètres → Magic Prompts**.
Vous navez pas besoin de cette page pour un usage normal. Utilisez-la lorsque vous voulez quun flux se comporte autrement — par exemple des messages de commit dans un style précis.
## Modifier un prompt
1. Ouvrez **Paramètres → Magic Prompts**.
2. Choisissez un prompt dans les groupes de la barre latérale — Git, GitHub, Planning et Session.
3. Modifiez le texte et enregistrez.
Certains prompts ont une partie visible (le message que vous verriez) et une partie instructions (des consignes cachées pour lagent). Les prompts peuvent contenir des `{{placeholders}}` quOpenChamber remplit, comme le diff ou le titre de lissue — gardez-les en place.
## Réinitialiser
Vous avez changé davis ? Chaque prompt possède **reset to default**, et il existe aussi **reset all** si vous voulez tout reprendre depuis le début.
## Pages liées
- [Workflows Git et GitHub](/git/) — beaucoup de ces prompts alimentent les flux git
+30
View File
@@ -0,0 +1,30 @@
---
title: Serveurs MCP
description: Ajoutez des serveurs MCP pour donner des outils supplémentaires aux agents.
---
# Serveurs MCP
Un serveur MCP donne des outils supplémentaires à vos agents — par exemple chercher dans une base de données, appeler une API ou lire un service que vous utilisez. Ajoutez-les dans **Paramètres → MCP**.
## Ajouter un serveur
1. Ouvrez **Paramètres → MCP**.
2. Ajoutez un serveur et choisissez son type :
- **local** — OpenChamber lance une commande sur votre machine. Vous fournissez la commande à exécuter et, si nécessaire, des variables denvironnement.
- **remote** — OpenChamber se connecte à une URL hébergée par quelquun dautre. Vous fournissez lURL et les headers nécessaires (par exemple un token dauthentification).
3. Enregistrez. Le serveur est activé par défaut ; vous pouvez le désactiver sans le supprimer.
## Où il sapplique
Choisissez le scope quand vous ajoutez un serveur :
- **personal** — disponible dans tous les projets
- **project** — disponible uniquement dans le projet actuel et enregistré avec les autres paramètres du projet
Les noms de serveur utilisent des lettres minuscules, des chiffres, des tirets et des underscores.
## Pages liées
- [Fournisseurs, modèles et agents](/providers/) — connecter dabord un modèle
- [Skills](/skills/) — une autre façon d’étendre ce que les agents peuvent faire
+31
View File
@@ -0,0 +1,31 @@
---
title: PWA et accès mobile
description: Installez OpenChamber comme application et utilisez-le depuis votre téléphone.
---
# PWA et accès mobile
Lapplication web OpenChamber sinstalle comme une application de téléphone (une PWA), pour rester sur votre écran daccueil et sutiliser en plein écran. Associez-la à un [tunnel](/tunnels/) et vous pouvez vérifier une session depuis nimporte où.
## Linstaller
OpenChamber utilise linstallation intégrée de votre navigateur, donc il ny a pas de téléchargement séparé :
- **navigateur desktop** — utilisez loption **Installer** dans la barre dadresse
- **iPhone/iPad (Safari)** — Partager → **Ajouter à l’écran daccueil**
- **Android (Chrome)** — menu → **Installer lapplication** / **Ajouter à l’écran daccueil**
Une fois installée, elle souvre dans sa propre fenêtre sans chrome de navigateur.
## Y accéder depuis votre téléphone
Pour ouvrir OpenChamber sur votre téléphone quand le serveur tourne sur votre ordinateur, démarrez un [tunnel](/tunnels/) et ouvrez le lien (ou scannez le QR code) sur le téléphone. Utilisez toujours un [mot de passe UI](/security/) robuste lorsque vous faites cela.
## Paramètres mobile
Sous **Paramètres → OpenChamber**, quelques options ajustent lexpérience mobile et installée — le nom installé de lapplication, lorientation de l’écran et le comportement du clavier à l’écran.
## Pages liées
- [Tunnels](/tunnels/) — joindre votre instance depuis un autre réseau
- [Sécurité](/security/) — protéger lUI avant de lexposer
@@ -0,0 +1,34 @@
---
title: Multi-run
description: Lancez le même prompt sur plusieurs modèles ou sessions à la fois.
---
# Multi-run
Multi-run lance plusieurs sessions depuis un seul formulaire — pratique pour essayer la même tâche avec différents modèles et comparer les résultats. Ouvrez-le depuis le bouton en haut de la barre latérale des sessions.
## Démarrer un multi-run
1. Ouvrez le lanceur multi-run.
2. Choisissez le projet et nommez le groupe dexécutions.
3. Écrivez le prompt et choisissez les modèles qui doivent lexécuter (jusqu’à cinq par groupe).
4. Choisissez si vous voulez **isoler les exécutions**.
5. Lancez.
Chaque modèle reçoit sa propre session, et toutes commencent avec votre prompt.
## Exécutions isolées
Activez **isolate runs** pour donner à chaque exécution son propre [worktree](/worktrees/) et sa propre branche, afin quelles ne touchent jamais les mêmes fichiers. Cela nécessite un dépôt git — loption est désactivée automatiquement pour les dossiers qui nen sont pas un. Choisissez la branche de départ des exécutions.
Sans isolation, chaque exécution est une session simple dans le dossier du projet.
## Comparer les résultats
Chaque exécution est une session normale que vous pouvez ouvrir, lire, conserver ou jeter. Si vous avez lancé des exécutions pour comparer des approches, relisez-les côte à côte et continuez avec la meilleure.
Si une seule exécution ne démarre pas, les autres se lancent quand même — vous verrez simplement moins de sessions que demandé.
## Pages liées
- [Sessions worktree](/worktrees/) — comment lisolation fonctionne sous le capot
@@ -0,0 +1,37 @@
---
title: Notes, todos et plans de projet
description: Gardez des notes, une todo list et des plans enregistrés pour chaque projet.
---
# Notes, todos et plans de projet
Chaque projet a son propre espace de brouillon pour les notes, une todo list et les plans enregistrés. Ils appartiennent au projet, pas à une session particulière, donc ils restent disponibles lorsque vous passez dune session à lautre. Retrouvez-les dans longlet **Contexte** de la barre latérale droite (un onglet dédié sur mobile).
## Notes
Une zone de notes libre pour tout ce que vous voulez retenir sur le projet. Elle senregistre toute seule pendant que vous tapez.
## Todos
Une checklist simple. Ajoutez des éléments, cochez-les, réordonnez-les par glisser-déposer et supprimez ceux qui sont terminés.
Chaque todo possède un menu **envoyer** pour la confier à lagent :
- lenvoyer à la session actuelle
- démarrer une nouvelle session avec elle
- démarrer une nouvelle [session worktree](/worktrees/) avec elle (uniquement si le projet est un dépôt git)
## Plans
Un endroit pour conserver des plans plus longs sous forme de fichiers enregistrés. Vous pouvez :
- importer un plan depuis un fichier Markdown ou texte
- ouvrir un plan pour le lire dans le panneau latéral
- supprimer les plans dont vous navez plus besoin
Vous devriez revenir dans longlet Contexte avec votre note enregistrée, votre todo cochée ou votre plan listé — cest le signe que laction a réussi.
## Pages liées
- [Sessions worktree](/worktrees/) — exécuter une todo dans sa propre branche
- [Projets](/projects/) — ces éléments appartiennent au projet actif
@@ -0,0 +1,34 @@
---
title: Notifications
description: Soyez prévenu quand une session a besoin de vous ou se termine.
---
# Notifications
Les notifications vous signalent quand quelque chose demande votre attention, sans devoir surveiller l’écran — une session sest terminée, a rencontré une erreur, a posé une question ou a besoin dune permission. Configurez-les dans **Paramètres → OpenChamber → Notifications**.
## Les activer
1. Ouvrez **Paramètres → OpenChamber → Notifications**.
2. Autorisez les notifications lorsque votre navigateur ou système le demande.
3. Choisissez ce dont vous voulez être informé :
- une session **se termine**
- une session rencontre une **erreur**
- une session **pose une question**
- une session a besoin dune **permission**
- des **sous-tâches** se terminent
## Comment elles vous atteignent
- sur **desktop**, vous recevez des notifications système natives
- dans un **navigateur ou une application installée**, vous recevez des notifications web push, qui arrivent même lorsque longlet est en arrière-plan
Les sessions configurées en auto-accept ne vous dérangent pas avec des notifications de permission.
## Personnaliser le texte
Chaque type de notification a un modèle de titre et de message que vous pouvez modifier, avec des champs comme le nom de lagent et le modèle. Il existe aussi une limite sur la quantité du dernier message incluse, pour que les notifications restent courtes.
## Pages liées
- [Mode vocal](/voice/) — entendre les réponses lues à voix haute à la place
@@ -0,0 +1,97 @@
---
title: Serveur OpenCode
description: Connectez OpenChamber à un serveur OpenCode local ou distant.
---
# Serveur OpenCode
OpenChamber fonctionne par-dessus un serveur OpenCode. Par défaut, il en démarre un pour vous, donc vous navez rien à faire. Vous navez besoin de cette page que si vous voulez pointer OpenChamber vers un serveur que vous exécutez déjà, ou gérer celui quil démarre.
## Comment OpenChamber trouve un serveur
Au démarrage, OpenChamber cherche un serveur dans cet ordre :
1. réutiliser un serveur quil a déjà démarré
2. se connecter à un serveur externe si vous le lui avez indiqué (voir ci-dessous)
3. détecter automatiquement un serveur sur le port par défaut (`4096`)
4. sinon, démarrer et gérer son propre serveur
Si rien nest configuré, l’étape 4 se fait automatiquement et vous pouvez commencer.
## Se connecter à un serveur que vous exécutez déjà
Définissez ces variables avant de lancer OpenChamber :
```bash
OPENCODE_HOST=http://localhost:4096 OPENCODE_SKIP_START=true openchamber
```
- `OPENCODE_HOST` — ladresse complète de votre serveur OpenCode, port inclus (par exemple `http://localhost:4096`). Elle ne doit pas se terminer par un chemin.
- `OPENCODE_SKIP_START=true` — indique à OpenChamber de ne pas démarrer son propre serveur.
Si vous voulez seulement changer le port, définissez `OPENCODE_PORT` au lieu de `OPENCODE_HOST`.
Si `OPENCODE_HOST` na pas de port ou contient un chemin, OpenChamber lignore et revient au démarrage de son propre serveur. Surveillez les logs de démarrage pour un avertissement `[config]` si une connexion attendue ne se fait pas.
## Gérer le serveur depuis la CLI
```bash
openchamber status
openchamber logs
openchamber restart
openchamber stop
```
`openchamber` seul démarre le serveur en arrière-plan. Ajoutez `--foreground` pour le garder attaché à votre terminal.
## Lancer OpenChamber à la connexion
Utilisez `startup enable` pour installer un service utilisateur natif. OpenChamber utilise `launchd` sur macOS, `systemd --user` sur Linux et le Planificateur de tâches sur Windows.
```bash
openchamber startup enable
openchamber startup status
openchamber startup disable
```
Pour protéger lUI, définissez le mot de passe lors de lactivation du service :
```bash
OPENCHAMBER_UI_PASSWORD='secret' openchamber startup enable
```
Pour un serveur headless qui démarre à la connexion et doit servir des clients desktop ou mobile, ajoutez `--api-only` et un host joignable :
```bash
openchamber startup enable --port 3000 --api-only --host 0.0.0.0 --ui-password secret
```
`startup enable` capture votre environnement actuel dans le service, pour quil se comporte davantage comme un lancement de `openchamber` depuis le même shell. Les tokens de fournisseurs, `PATH`, les réglages dagent SSH et les autres variables dauth/config CLI restent ainsi disponibles. Utilisez `--no-env-snapshot` si vous voulez un environnement de service minimal.
Le service de démarrage mémorise `--port`, `--host`, `--ui-password` et `--api-only`. Les redémarrages CLI et les redémarrages après mise à jour réutilisent ces réglages enregistrés.
Pour créer un lien de connexion pour une autre application OpenChamber, utilisez :
```bash
openchamber connect-url --port 3000 --server http://your-host:3000 --qr
```
Lancez `openchamber connect-url --help` pour voir toutes les options de lien, dont `--name`, `--lan`, `--server`, `--api-only`, `--ui-password` et `--qr`.
Vous pouvez toujours gérer les tunnels séparément pour ce service en cours dexécution :
```bash
openchamber tunnel start --port 3000
openchamber tunnel stop --port 3000
```
Arrêter le tunnel ne redémarre ni le service ni lapplication.
## « OpenCode redémarre »
Pendant que le serveur démarre ou redémarre, OpenChamber affiche l’état « OpenCode redémarre » et met les requêtes en pause jusqu’à ce quil soit prêt. Cest normal juste après un lancement ou un redémarrage. Si l’état ne disparaît jamais, consultez [Connexion à OpenCode](/troubleshooting/opencode-connection/).
## Pages liées
- [Fournisseurs, modèles et agents](/providers/) — configurer ce avec quoi le serveur communique
- [Connexion à OpenCode](/troubleshooting/opencode-connection/) — si la connexion ne se fait pas
+32
View File
@@ -0,0 +1,32 @@
---
title: Aperçu et serveurs de dev
description: Ouvrez un serveur de dev en cours dexécution dans OpenChamber.
---
# Aperçu et serveurs de dev
Quand vous démarrez un serveur de dev, OpenChamber peut louvrir directement dans lapplication au lieu dun onglet de navigateur séparé — vous voyez ainsi votre site à côté du chat, vous capturez sa console et vous pouvez pointer des éléments pour poser des questions à leur sujet.
## Ouvrir un aperçu
OpenChamber surveille la sortie du terminal pour détecter une adresse locale (la ligne `Local:` affichée par des outils comme Vite, Next.js ou Astro). Quand il en trouve une :
- dans le terminal, un bouton **Ouvrir laperçu** apparaît
- une [action de projet](/project-actions/) avec louverture automatique activée louvre pour vous
- un lien local dans un message de chat peut aussi louvrir
Le site se charge dans le panneau latéral. Seules les adresses locales (sur votre propre machine) peuvent être prévisualisées.
## Console et inspection
Dans le panneau daperçu, vous pouvez :
- regarder la **console** de la page — erreurs, avertissements et logs, filtrés comme vous le voulez
- activer **inspect**, cliquer sur nimporte quel élément et envoyer une note à son sujet — sélecteur, styles, position et capture d’écran — directement dans le chat
Cest le moyen le plus rapide de dire à lagent « ce bouton, ici » sans devoir le décrire.
## Pages liées
- [Actions de projet](/project-actions/) — ouvrir automatiquement un serveur quand vous le démarrez
- [Navigateur desktop](/desktop-browser/) — les mêmes outils pour nimporte quelle page, sur desktop
@@ -0,0 +1,28 @@
---
title: Actions de projet
description: Enregistrez les commandes que vous lancez souvent et démarrez-les en un clic.
---
# Actions de projet
Une action de projet est une commande shell que vous enregistrez une fois et lancez dun clic — votre serveur de dev, un build, une passe de tests. Chaque projet garde sa propre liste. Configurez-les dans **Paramètres → Projets → Actions de projet**.
## Ajouter une action
1. Ouvrez **Paramètres → Projets** et trouvez la section **Actions de projet**.
2. Ajoutez une action, donnez-lui un nom, choisissez une icône et saisissez la commande à lancer.
3. Enregistrez.
Vous pouvez limiter une action à certains systèmes dexploitation si une commande na de sens que sur lun deux.
## Lancer une action
Les actions vivent dans un menu dans len-tête de lapplication. Cliquez sur lune delles et OpenChamber la lance dans un terminal dans le dossier de votre projet, puis bascule vers la vue terminal pour que vous puissiez suivre la sortie. Arrêtez-la depuis le même menu.
## Ouvrir automatiquement un serveur de dev
Activez **auto-open URL** pour une action qui démarre un serveur. OpenChamber surveille la sortie pour détecter une adresse locale et propose de louvrir — voir [Aperçu et serveurs de dev](/preview/). Sur desktop, vous pouvez aussi la faire passer par un transfert de port SSH.
## Pages liées
- [Aperçu et serveurs de dev](/preview/) — ouvrir un serveur de dev en cours dexécution dans OpenChamber
@@ -0,0 +1,20 @@
---
title: Icônes de projet
description: Donnez à chaque projet une icône reconnaissable.
---
# Icônes de projet
Une icône de projet permet de distinguer vos projets dun coup d’œil. OpenChamber essaie den trouver une pour vous, et vous pouvez toujours définir la vôtre. Gérez-la dans **Paramètres → Projets**.
## Découverte automatique
Quand vous ajoutez un projet, OpenChamber cherche un fichier `favicon` dedans et lutilise comme icône du projet. Si votre dépôt fournit déjà un favicon, licône apparaît généralement toute seule — rien à faire.
## Définir la vôtre
Ouvrez **Paramètres → Projets** et uploadez une image (PNG, JPEG ou SVG, jusqu’à 5 Mo). Une image personnalisée a priorité sur celle découverte automatiquement. Vous pouvez aussi choisir une couleur à la place, ou retirer limage pour revenir à la découverte.
## Pages liées
- [Projets](/projects/) — nommer, colorer et organiser vos projets
@@ -0,0 +1,34 @@
---
title: Projets
description: Organisez votre travail en projets et passez de lun à lautre.
---
# Projets
Un projet est un dossier de votre ordinateur quOpenChamber suit — généralement un codebase. Changer de projet change le dossier dans lequel lagent travaille, ainsi que les sessions et paramètres de ce projet.
## Ajouter un projet
Vous pouvez ajouter un projet depuis plusieurs endroits :
- lentrée **Ajouter un projet** dans la palette de commandes
- le bouton **+** en haut de la barre latérale des sessions
- le navigateur de dossiers lorsque vous choisissez un répertoire
Pointez vers un dossier et OpenChamber sen souvient. Le nom vient du dossier ; vous pouvez le modifier plus tard.
## Changer de projet
Choisissez un projet dans la barre latérale pour le rendre actif. Tout — sessions, git, notes — suit le projet ouvert.
## Rendre un projet reconnaissable
Ouvrez **Paramètres → Projets** pour donner à un projet un nom, une couleur ou une icône personnalisés. OpenChamber essaie de trouver une icône automatiquement — voir [Icônes de projet](/project-icons/).
> Dans VS Code, OpenChamber utilise toujours le dossier ouvert comme seul projet ; il ny a donc rien à ajouter ni à changer. La page de paramètres Projets y est masquée.
## Pages liées
- [Notes, todos et plans de projet](/notes-todos-plans/) — garder des notes de travail par projet
- [Actions de projet](/project-actions/) — enregistrer les commandes que vous lancez souvent
- [Contexte](/context/) — voir quelle part de la mémoire du modèle une session utilise
@@ -0,0 +1,49 @@
---
title: Fournisseurs, modèles et agents
description: Connectez des fournisseurs IA, choisissez des modèles et configurez des agents.
---
# Fournisseurs, modèles et agents
Avant quOpenChamber puisse faire quoi que ce soit, au moins un fournisseur IA doit être connecté. Cette page explique comment connecter un fournisseur, choisir un modèle et adapter les agents.
## Connecter un fournisseur
1. Ouvrez **Paramètres → Fournisseurs**.
2. Ouvrez le menu **Add provider** et choisissez un fournisseur qui nest pas encore connecté.
3. Connectez-vous de lune des deux façons, selon le fournisseur :
- **API key** — collez votre clé et enregistrez.
- **Sign-in (device flow)** — OpenChamber affiche un lien et un code court. Ouvrez le lien, saisissez le code et approuvez. OpenChamber termine la connexion tout seul.
Quand un fournisseur apparaît comme connecté, ses modèles deviennent disponibles dans le chat.
Pour vous déconnecter, ouvrez le fournisseur et choisissez de supprimer sa connexion.
## Choisir un modèle
Vous choisissez le modèle là où vous travaillez :
- dans le chat, utilisez le sélecteur de modèle dans la barre de message pour définir le fournisseur et le modèle de cette session
- par agent, définissez un modèle par défaut (ci-dessous)
## Configurer des agents
Un agent est une configuration nommée — un modèle, une personnalité et ce quil est autorisé à faire.
1. Ouvrez **Paramètres → Agents**.
2. Choisissez un agent ou créez-en un nouveau.
3. Modifiez au besoin :
- **description** — à quoi sert lagent
- **model** — son modèle par défaut
- **temperature** — le niveau de créativité de ses réponses
- **prompt** — les instructions permanentes quil suit toujours
- **tool rules** — les outils quil peut utiliser
## Où vivent vos connexions
Les connexions aux fournisseurs sont stockées par OpenCode, pas OpenChamber ; elles sont donc partagées avec la CLI OpenCode. Si vous définissez le même fournisseur à plusieurs endroits, le réglage le plus spécifique gagne : un réglage par projet remplace votre réglage personnel.
## Pages liées
- [Serveurs MCP](/mcp/) — ajouter des outils supplémentaires aux agents
- [Utilisation et quotas](/usage/) — suivre votre consommation
@@ -0,0 +1,26 @@
---
title: Démarrage rapide
description: Lancez OpenChamber rapidement et choisissez la bonne application pour la tâche.
---
# Démarrage rapide
## Chemin le plus rapide
1. Installez [OpenCode](https://opencode.ai).
2. Installez la CLI OpenChamber (voir [Installation](/install/) pour la commande en une ligne).
3. Lancez `openchamber --ui-password be-creative-here`.
4. Ouvrez lURL affichée par la CLI (souvent `http://localhost:3000`).
5. Pour lutiliser depuis votre téléphone, démarrez un [tunnel](/tunnels/) et scannez le QR code.
Vous devriez voir la liste des sessions OpenChamber dans votre navigateur. Si elle se charge, tout est prêt.
Utilisez un mot de passe UI robuste, surtout si vous prévoyez douvrir linstance à internet.
Si la page ne se charge pas, consultez le [dépannage](/troubleshooting/).
## Quelle application utiliser ?
- utilisez **desktop** pour le travail quotidien sur macOS
- utilisez **web** pour laccès distant et la revue depuis votre téléphone
- utilisez **VS Code** pour garder les sessions juste à côté de votre code
@@ -0,0 +1,42 @@
---
title: Instances distantes
description: Connectez lapplication desktop à OpenChamber sur une autre machine via SSH.
---
# Instances distantes
Lapplication desktop peut se connecter à OpenChamber exécuté sur une autre machine via SSH — serveur de travail, machine cloud, homelab — et afficher son UI sur votre écran comme si elle était locale. Configurez cela dans **Paramètres → Instances distantes**.
> Les instances distantes sont une fonctionnalité **desktop uniquement**. Sur le web ou dans VS Code, connectez-vous à un serveur distant avec les variables denvironnement de [Serveur OpenCode](/opencode-server/) à la place.
## Ajouter une instance distante
1. Ouvrez **Paramètres → Instances distantes** et ajoutez-en une.
2. Donnez la commande SSH que vous utilisez normalement pour joindre la machine, plus un surnom.
3. Choisissez comment OpenChamber sy exécute :
- **managed** — OpenChamber sinstalle et se démarre sur la machine distante
- **external** — se connecter à une instance déjà en cours dexécution
4. Connectez-vous.
OpenChamber déroule les étapes — vérification de la connexion, configuration du remote, démarrage du serveur et transfert du port — et montre où il en est à chaque étape. Quand il atteint **ready**, lUI distante se charge localement.
## Identifiants
Vous décidez denregistrer les mots de passe SSH et UI ou de les saisir à chaque fois. Si la connexion tombe, OpenChamber indique l’étape qui a échoué pour vous aider à corriger — voir [Accès distant](/troubleshooting/remote-access/).
## Liens de connexion directe
Si une machine distante exécute déjà OpenChamber, créez un lien de connexion là-bas et importez-le dans **Paramètres → Instances distantes → Liens de serveur** :
```bash
openchamber connect-url --port 3000 --server http://your-host:3000 --qr
```
`connect-url` démarre dabord le serveur si rien ne tourne sur ce port. Ajoutez `--api-only` pour un serveur headless, `--lan` pour écouter sur le LAN au démarrage, `--ui-password` pour protéger laccès navigateur et `--name` pour nommer la connexion enregistrée.
Le lien généré contient un token client pour les applications OpenChamber. Ce token est séparé du mot de passe de lUI navigateur et survit aux redémarrages du serveur jusqu’à révocation ou suppression.
## Pages liées
- [Serveur OpenCode](/opencode-server/) — se connecter à un serveur distant sur web ou VS Code
- [Accès distant](/troubleshooting/remote-access/) — quand une connexion ne se termine pas
@@ -0,0 +1,347 @@
---
title: Reverse proxy
description: Configurez correctement OpenChamber derrière Nginx, Nginx Proxy Manager ou un autre reverse proxy.
---
# Reverse proxy
Utilisez cette page si vous exécutez OpenChamber derrière Nginx, Nginx Proxy Manager, Caddy, Cloudflare ou un autre reverse proxy.
## Avant de le proxifier
1. Confirmez dabord quOpenChamber fonctionne en accès direct.
2. Ouvrez `http://<server-ip>:3000` ou votre port personnalisé depuis le même réseau.
3. Najoutez le reverse proxy quune fois la connexion directe fonctionnelle.
## Ce que le proxy doit prendre en charge
- WebSockets pour le transport des messages en direct :
- `/api/event/ws`
- `/api/global/event/ws`
- `/api/terminal/ws`
- SSE sans buffering :
- `/api/event`
- `/api/global/event`
- `/api/notifications/stream`
- `/api/openchamber/events`
- `/api/terminal/:sessionId/stream`
- corps de requête volumineux pour les pièces jointes et les opérations de fichiers
- timeouts de lecture longs pour les flux en direct et les sessions de terminal
## Règles importantes
- Activez le proxy WebSocket.
- Désactivez le buffering sur les routes SSE.
- Désactivez gzip sur le proxy si OpenChamber compresse déjà les réponses.
- Gardez la compression active dans une seule couche.
- Transmettez les headers proxy normaux comme `Host`, `X-Forwarded-For` et `X-Forwarded-Proto`.
- Augmentez les limites de taille de corps si les utilisateurs uploadent des fichiers.
## Checklist rapide
- OpenChamber joignable directement sur le LAN
- WebSockets activés dans le proxy
- buffering désactivé sur les routes SSE
- `gzip off` sur le proxy host, ou compression proxy désactivée autrement
- `client_max_body_size` assez grand pour les pièces jointes
- `proxy_read_timeout` assez long pour les streams
## Exemple : Nginx
<details>
<summary>Afficher lexemple de configuration</summary>
```nginx
client_max_body_size 50M;
client_body_buffer_size 50M;
proxy_request_buffering off;
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $host;
gzip off;
location = /api/terminal/ws {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_buffering off;
proxy_cache off;
proxy_read_timeout 3600s;
proxy_send_timeout 3600s;
}
location = /api/global/event/ws {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_buffering off;
proxy_cache off;
proxy_read_timeout 3600s;
proxy_send_timeout 3600s;
}
location = /api/event/ws {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_buffering off;
proxy_cache off;
proxy_read_timeout 3600s;
proxy_send_timeout 3600s;
}
location ~ ^/api/(event|global/event|notifications/stream|openchamber/events)$ {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Accept "text/event-stream";
proxy_set_header Cache-Control "no-cache";
proxy_buffering off;
proxy_cache off;
gzip off;
add_header X-Accel-Buffering "no" always;
add_header Cache-Control "no-cache, no-transform" always;
proxy_read_timeout 3600s;
proxy_send_timeout 3600s;
}
location ~ ^/api/terminal/.+/stream$ {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Accept "text/event-stream";
proxy_set_header Cache-Control "no-cache";
proxy_buffering off;
proxy_cache off;
gzip off;
add_header X-Accel-Buffering "no" always;
add_header Cache-Control "no-cache, no-transform" always;
proxy_read_timeout 3600s;
proxy_send_timeout 3600s;
}
location /api {
proxy_pass http://127.0.0.1:3000;
proxy_read_timeout 3600s;
proxy_send_timeout 3600s;
}
location / {
proxy_pass http://127.0.0.1:3000;
}
```
</details>
## Exemple : Nginx Proxy Manager
<details>
<summary>Afficher lexemple pour longlet Advanced</summary>
```nginx
client_max_body_size 50M;
client_body_buffer_size 50M;
proxy_request_buffering off;
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $host;
gzip off;
location = /api/terminal/ws {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_buffering off;
proxy_cache off;
proxy_read_timeout 3600s;
proxy_send_timeout 3600s;
proxy_connect_timeout 30s;
}
location = /api/global/event/ws {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_buffering off;
proxy_cache off;
proxy_read_timeout 3600s;
proxy_send_timeout 3600s;
proxy_connect_timeout 30s;
}
location = /api/event/ws {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_buffering off;
proxy_cache off;
proxy_read_timeout 3600s;
proxy_send_timeout 3600s;
proxy_connect_timeout 30s;
}
location = /api/event {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Accept "text/event-stream";
proxy_set_header Cache-Control "no-cache";
proxy_buffering off;
proxy_cache off;
gzip off;
add_header X-Accel-Buffering "no" always;
add_header Cache-Control "no-cache, no-transform" always;
proxy_read_timeout 3600s;
proxy_send_timeout 3600s;
proxy_connect_timeout 30s;
}
location = /api/global/event {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Accept "text/event-stream";
proxy_set_header Cache-Control "no-cache";
proxy_buffering off;
proxy_cache off;
gzip off;
add_header X-Accel-Buffering "no" always;
add_header Cache-Control "no-cache, no-transform" always;
proxy_read_timeout 3600s;
proxy_send_timeout 3600s;
proxy_connect_timeout 30s;
}
location = /api/notifications/stream {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Accept "text/event-stream";
proxy_set_header Cache-Control "no-cache";
proxy_buffering off;
proxy_cache off;
gzip off;
add_header X-Accel-Buffering "no" always;
add_header Cache-Control "no-cache, no-transform" always;
proxy_read_timeout 3600s;
proxy_send_timeout 3600s;
proxy_connect_timeout 30s;
}
location = /api/openchamber/events {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Accept "text/event-stream";
proxy_set_header Cache-Control "no-cache";
proxy_buffering off;
proxy_cache off;
gzip off;
add_header X-Accel-Buffering "no" always;
add_header Cache-Control "no-cache, no-transform" always;
proxy_read_timeout 3600s;
proxy_send_timeout 3600s;
proxy_connect_timeout 30s;
}
location ~ ^/api/terminal/.+/stream$ {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Accept "text/event-stream";
proxy_set_header Cache-Control "no-cache";
proxy_buffering off;
proxy_cache off;
gzip off;
add_header X-Accel-Buffering "no" always;
add_header Cache-Control "no-cache, no-transform" always;
proxy_read_timeout 3600s;
proxy_send_timeout 3600s;
proxy_connect_timeout 30s;
}
location /api {
proxy_pass http://127.0.0.1:3000;
proxy_read_timeout 3600s;
proxy_send_timeout 3600s;
proxy_connect_timeout 30s;
}
location / {
proxy_pass http://127.0.0.1:3000;
}
```
</details>
Activez aussi `Websockets Support` dans Nginx Proxy Manager pour ce host.
## Signes courants de panne
### La page se charge, mais lenvoi de messages échoue
- les WebSockets ne sont pas activés dans le proxy
- `/api/event/ws` ou `/api/global/event/ws` ne passe pas correctement
### Les notifications ou le statut en direct ne se mettent pas à jour
- lune des routes SSE est bufferisée ou mise en cache
- `X-Accel-Buffering "no"` manque
### Les uploads de fichiers échouent
- `client_max_body_size` est trop petit
### Tout fonctionne en local, mais casse seulement derrière le proxy
- le proxy compresse et bufferise le trafic en direct
- le proxy na pas le support WebSocket
## Exemple : Caddy
<details>
<summary>Afficher lexemple de configuration</summary>
```caddy
reverse_proxy 127.0.0.1:3000 {
# WebSocket support is automatic in Caddy
# Flush SSE responses immediately
flush_interval -1
# Pass through Host and proxy headers
header_up Host {host}
header_up X-Real-IP {remote_host}
header_up X-Forwarded-For {remote_host}
header_up X-Forwarded-Proto {scheme}
# Increase timeouts for long-lived streams
transport http {
read_timeout 3600s
write_timeout 3600s
}
}
```
</details>
Caddy gère automatiquement les upgrades WebSocket — aucune configuration supplémentaire nest nécessaire. La directive `flush_interval -1` garantit que les morceaux SSE sont transmis immédiatement, sans buffering.
## Avertissement CDN et double compression
Si vous placez un CDN (comme Cloudflare) devant votre reverse proxy, faites attention à la double compression :
- OpenChamber compresse les réponses HTTP avec gzip (seuil de 1 Ko).
- Cloudflare et dautres CDN compressent aussi les réponses par défaut.
- Cela peut produire des réponses compressées deux fois ou des headers `Content-Encoding` incorrects.
Pour éviter cela, désactivez la compression à **une** couche :
- **Cloudflare :** Rules → Compression → désactiver (ou utiliser le mode « Passthrough »).
- **Nginx :** `gzip off` (déjà montré dans les exemples ci-dessus).
- **Caddy :** Caddy ne re-compresse pas par défaut si lupstream envoie déjà du contenu compressé.
Les routes de streaming SSE sont exclues de la compression par OpenChamber, mais le CDN peut encore les bufferiser. Consultez la documentation de votre CDN pour désactiver le buffering sur les chemins SSE.
## Pages liées
- [Tunnels](/tunnels/)
- [Dépannage](/troubleshooting/)
@@ -0,0 +1,33 @@
---
title: Tâches planifiées
description: Lancez automatiquement un prompt selon un planning.
---
# Tâches planifiées
Une tâche planifiée lance un prompt pour vous selon un planning — par exemple un « résume les changements dhier » quotidien ou un nettoyage hebdomadaire. Quand elle sexécute, OpenChamber démarre une nouvelle session et envoie le prompt tout seul. Ouvrez le planificateur depuis le bouton en haut de la barre latérale des sessions.
## Créer une tâche
1. Ouvrez la boîte de dialogue des tâches planifiées depuis la barre latérale des sessions.
2. Ajoutez une tâche et donnez-lui un nom.
3. Choisissez quand elle sexécute :
- **daily** — à une ou plusieurs heures chaque jour
- **weekly** — certains jours de la semaine et à certaines heures
- **once** — une seule date et heure
4. Définissez ce quelle fait : le prompt à envoyer, ainsi que le fournisseur, le modèle et lagent à utiliser. Le prompt peut être une commande slash, comme `/review`.
5. Enregistrez, puis vérifiez que la tâche est activée.
Vous pouvez lancer nimporte quelle tâche immédiatement avec **run now** pour vérifier quelle fait ce que vous attendez.
## À quoi ressemble une réussite
Après une exécution, la tâche indique quand elle a tourné pour la dernière fois, si elle a réussi et un lien vers la session créée. Si une exécution échoue, lerreur saffiche aussi à cet endroit.
## À garder en tête
Les tâches ne se déclenchent que lorsque le serveur OpenChamber tourne. Si vous le fermez, les exécutions planifiées sont en pause jusqu’à son retour.
## Pages liées
- [Commandes et snippets](/commands-snippets/) — réutiliser une commande slash comme prompt
@@ -0,0 +1,37 @@
---
title: Sécurité
description: Protégez lUI avec un mot de passe et des passkeys avant de lexposer.
---
# Sécurité
OpenChamber donne accès à votre machine et à votre code ; verrouillez-le donc avant que quelquun dautre que vous puisse latteindre. Cette page couvre le mot de passe UI, les passkeys et ce quil faut savoir avant dexposer OpenChamber sur un réseau.
## Définir un mot de passe UI
Démarrez OpenChamber avec un mot de passe et lUI navigateur le demandera :
```bash
openchamber --ui-password be-creative-here
```
Vous pouvez aussi le définir avec la variable denvironnement `OPENCHAMBER_UI_PASSWORD` au lieu de le mettre en ligne de commande. Après connexion, OpenChamber mémorise lappareil pendant un moment pour ne pas vous le redemander à chaque fois.
Définissez toujours un mot de passe si linstance est joignable par quelquun dautre — surtout via un [tunnel](/tunnels/) ou internet public.
## Passkeys
Une fois un mot de passe défini, vous pouvez ajouter des passkeys (Face ID, Touch ID, clé de sécurité) pour vous connecter plus vite. Ajoutez-les dans **Paramètres → OpenChamber → Passkeys**.
Les passkeys sont liées au mot de passe actuel. Si vous changez ou supprimez le mot de passe, les passkeys enregistrées sont effacées et vous devrez les ajouter à nouveau.
## Avant de lexposer
- Par défaut, OpenChamber n’écoute que sur votre propre machine (`127.0.0.1`). Écouter plus largement demande un changement volontaire, et vous devriez définir un mot de passe dabord.
- Préférez un [tunnel](/tunnels/) ou un réseau privé (comme un VPN) plutôt que douvrir un port sur internet.
- Si vous placez OpenChamber derrière votre propre serveur HTTPS, consultez [Reverse proxy](/reverse-proxy/).
## Pages liées
- [Tunnels](/tunnels/) — la façon recommandée de joindre une instance à distance
- [Reverse proxy](/reverse-proxy/) — exécuter OpenChamber derrière votre propre serveur
@@ -0,0 +1,27 @@
---
title: Catalogue de skills
description: Parcourez et installez des skills prêts à lemploi.
---
# Catalogue de skills
Le catalogue de skills vous permet dinstaller des skills publiés par dautres personnes au lieu d’écrire les vôtres. Ouvrez-le dans **Paramètres → Skills → Catalog**.
Pour écrire vos propres skills, voir [Skills](/skills/).
## Installer un skill
1. Ouvrez le catalogue.
2. Parcourez les sources intégrées — le dépôt de skills Anthropic et le registre communautaire ClawdHub — ou lancez une recherche.
3. Choisissez un skill et installez-le.
4. Choisissez où linstaller : pour tout ce que vous faites, ou seulement pour le projet actuel.
Si un skill du même nom existe déjà, OpenChamber vous demande quoi faire — lignorer, l’écraser ou décider skill par skill.
## Ajouter votre propre source
Vous pouvez ajouter nimporte quel dépôt Git comme source avec son nom `owner/repo` ou une URL Git complète. Les dépôts privés nécessitent un accès configuré sur votre machine (clé SSH ou identifiants enregistrés) ; si une source ne peut pas sauthentifier, le catalogue lindique au lieu d’échouer silencieusement.
## Pages liées
- [Skills](/skills/) — créer et gérer les skills installés
+30
View File
@@ -0,0 +1,30 @@
---
title: Skills
description: Créez des instructions réutilisables que les agents chargent à la demande.
---
# Skills
Un skill est un ensemble réutilisable dinstructions quun agent peut charger quand cest pertinent — par exemple « comment nous écrivons les messages de commit » ou « nos conventions dAPI ». Gérez-les dans **Paramètres → Skills**.
Pour installer des skills prêts à lemploi au lieu d’écrire les vôtres, voir [Catalogue de skills](/skills-catalog/).
## Créer un skill
1. Ouvrez **Paramètres → Skills**.
2. Créez un skill et donnez-lui un nom et une courte description. La description est ce qui permet à lagent de décider quand le skill sapplique, donc soyez précis.
3. Écrivez les instructions. Ajoutez des fichiers de support si le skill en a besoin.
4. Choisissez où il vit :
- **personal** — disponible dans tous les projets
- **project** — disponible uniquement dans le projet actuel
## Utiliser un skill dans le chat
Tapez `/` au milieu dun message pour afficher le sélecteur de skills, puis choisissez-en un. Lagent charge les instructions de ce skill pour la réponse.
Un `/` au tout début du message ouvre plutôt les [commandes](/commands-snippets/).
## Pages liées
- [Catalogue de skills](/skills-catalog/) — installer des skills publiés par dautres
- [Commandes et snippets](/commands-snippets/) — autres façons de réutiliser du texte dans le chat
@@ -0,0 +1,48 @@
---
title: Hosts SSH et proxy
description: Importez des hosts SSH enregistrés et ajoutez des transferts de ports SSH dans lapplication desktop.
---
# Hosts SSH et proxy
Utilisez **Paramètres → Instances distantes** dans lapplication desktop pour importer des hosts SSH enregistrés, vous connecter à une machine distante et rendre des ports supplémentaires disponibles via la même connexion SSH.
> Les hosts SSH et le proxy SSH sont des fonctionnalités **desktop uniquement**. Elles utilisent le client SSH de votre ordinateur.
## Importer un host SSH
OpenChamber peut lire les hosts depuis votre config SSH locale, le même endroit que les commandes comme `ssh work-server` utilisent.
1. Ouvrez **Paramètres → Instances distantes**.
2. Choisissez un host dans **Saved SSH hosts**.
3. Si le host est un pattern, saisissez la vraie destination, par exemple `deploy@app.example.com`.
4. Enregistrez et connectez-vous.
OpenChamber crée une instance distante avec cette commande SSH. Quand elle atteint **ready**, lUI OpenChamber distante souvre dans lapplication desktop.
## Ajouter des transferts de ports
Chaque instance distante possède une section **Port Forwards**. Utilisez-la quand quelque chose dun côté de la connexion SSH doit joindre un port de lautre côté.
OpenChamber prend en charge trois types de transfert :
- **Local (-L)** — ouvre un port sur votre ordinateur qui se connecte à quelque chose sur la machine distante.
- **Remote (-R)** — ouvre un port sur la machine distante qui se reconnecte à votre ordinateur.
- **Dynamic (-D)** — ouvre un proxy SOCKS local via la connexion SSH.
Pour la plupart des aperçus dapp et dashboards qui tournent sur la machine distante, utilisez **Local (-L)**.
## Utiliser le proxy SOCKS
Choisissez **Dynamic (-D)** quand vous voulez que dautres outils sur votre ordinateur naviguent via la machine distante. OpenChamber ouvre un port proxy SOCKS local pour cette connexion SSH.
Une fois la connexion prête, copiez ou utilisez ladresse proxy locale depuis la ligne du transfert. Configurez votre navigateur ou outil pour lutiliser comme proxy SOCKS5.
## Garder cela privé
Utilisez `127.0.0.1` ou `localhost` comme hosts de bind locaux, sauf si vous voulez volontairement que dautres appareils de votre réseau atteignent le port transféré.
## Pages liées
- [Instances distantes](/remote-instances/) — connecter lapplication desktop à OpenChamber sur une autre machine
- [Accès distant](/troubleshooting/remote-access/) — quand SSH ou laccès distant ne se connecte pas
+30
View File
@@ -0,0 +1,30 @@
---
title: Thèmes
description: Personnalisez OpenChamber avec des thèmes intégrés et définis par lutilisateur.
---
# Thèmes
OpenChamber prend en charge les thèmes intégrés et les fichiers JSON de thème personnalisés.
## Ajouter un thème personnalisé
1. Créez le dossier des thèmes :
```bash
mkdir -p ~/.config/openchamber/themes
```
2. Ajoutez votre fichier JSON dans ce dossier (par exemple `my-theme.json`).
3. Ouvrez OpenChamber, puis allez dans **Paramètres -> Thème -> Reload themes**.
4. Choisissez votre thème dans le menu déroulant. Il sapplique immédiatement.
## Emplacement des thèmes
- macOS/Linux : `~/.config/openchamber/themes/`
## Référence complète du format JSON
Utilisez le guide complet du format dans la documentation du dépôt principal :
- [`docs/CUSTOM_THEMES.md`](https://github.com/openchamber/openchamber/blob/main/docs/CUSTOM_THEMES.md)
@@ -0,0 +1,40 @@
---
title: Dépannage
description: Problèmes courants dinstallation et dexécution, avec corrections rapides.
---
# Dépannage
Vous êtes bloqué ? Trouvez le symptôme ci-dessous et essayez la correction.
## La commande OpenChamber se ferme ou ne démarre pas
- confirmez que Node.js est en version `>=22`
- lancez `openchamber --version`
- réinstallez la dernière CLI si nécessaire
## LUI web nest pas joignable
- consultez les logs serveur avec `openchamber logs`
- vérifiez le port actif (par défaut `3000`)
- ouvrez dabord `http://localhost:3000` directement avant de tester les liens de tunnel
## Le lien distant/tunnel ne fonctionne pas
- lancez `openchamber tunnel status --all`
- redémarrez le tunnel depuis la même instance/le même port
- régénérez le lien de connexion si le token précédent a déjà été utilisé
Voir [Tunnels](/tunnels/) pour la configuration complète, et [Reverse proxy](/reverse-proxy/) si vous en utilisez un.
## Lextension VS Code ne se connecte pas
- confirmez que le serveur OpenChamber tourne
- vérifiez que lextension est à jour
- rechargez la fenêtre VS Code et réessayez la connexion
## Pages liées
- [Démarrage rapide](/quickstart/)
- [Tunnels](/tunnels/)
- [Reverse proxy](/reverse-proxy/)
@@ -0,0 +1,34 @@
---
title: Connexion à OpenCode
description: Corrigez OpenChamber lorsquil ne se connecte pas à son serveur OpenCode.
---
# Connexion à OpenCode
Si OpenChamber se charge mais reste bloqué sur « OpenCode redémarre », ou si le chat ne répond pas, le serveur auquel il parle nest pas joignable. Suivez ces vérifications.
## Il reste bloqué sur « OpenCode redémarre »
- laissez-lui un moment juste après le lancement — cet état est normal pendant le démarrage du serveur
- vérifiez si le serveur est vivant avec `openchamber status`
- redémarrez-le avec `openchamber restart`
- consultez les détails de démarrage avec `openchamber logs`
## Vous vous connectez à votre propre serveur
Si vous avez configuré OpenChamber pour utiliser un serveur existant, revérifiez la configuration depuis [Serveur OpenCode](/opencode-server/) :
- `OPENCODE_HOST` doit inclure le port, sans chemin — par exemple `http://localhost:4096`
- définissez `OPENCODE_SKIP_START=true` pour quOpenChamber ne démarre pas aussi le sien
- si ladresse est invalide, OpenChamber lignore et démarre son propre serveur à la place — cherchez un avertissement `[config]` dans les logs
## Toujours en échec
- confirmez que Node.js est en version `20` ou plus récente
- réinstallez la dernière CLI
- ouvrez `http://localhost:3000` directement avant de tester un tunnel ou lien distant
## Pages liées
- [Serveur OpenCode](/opencode-server/) — comment OpenChamber trouve et gère le serveur
- [Dépannage](/troubleshooting/) — autres problèmes courants
@@ -0,0 +1,38 @@
---
title: Accès distant
description: Corrigez les tunnels, instances distantes et accès à OpenChamber depuis un autre appareil.
---
# Accès distant
Quand vous ne pouvez pas joindre OpenChamber depuis votre téléphone ou une autre machine, la correction dépend de votre méthode de connexion.
## Vérifiez dabord les bases
- ouvrez dabord `http://localhost:3000` sur le même ordinateur — si cela échoue, ce nest pas un problème distant ; voir [Connexion à OpenCode](/troubleshooting/opencode-connection/)
- confirmez que le serveur tourne avec `openchamber status`
## Le lien de tunnel ne fonctionne pas
- lancez `openchamber tunnel status --all`
- redémarrez le tunnel depuis la même instance et le même port
- régénérez le lien de connexion si le précédent a déjà été utilisé
Voir [Tunnels](/tunnels/) pour la configuration complète.
## Linstance distante ne se connecte pas (desktop)
Quand une [instance distante](/remote-instances/) bloque, OpenChamber nomme l’étape qui a échoué :
- **auth** — votre mot de passe SSH ou UI a été refusé ; saisissez-le à nouveau
- **install / start** — OpenChamber na pas pu configurer ou démarrer le serveur sur la machine distante ; vérifiez les prérequis de cette machine
- **forwarding** — la connexion est établie mais le port ne vous rejoint pas ; essayez un autre port local
## Derrière votre propre serveur
Si vous placez OpenChamber derrière un reverse proxy et quil se charge bizarrement ou ne se connecte pas, consultez [Reverse proxy](/reverse-proxy/).
## Pages liées
- [Tunnels](/tunnels/) · [Instances distantes](/remote-instances/) · [Reverse proxy](/reverse-proxy/)
- [Sécurité](/security/) — protéger lUI avant de lexposer
@@ -0,0 +1,35 @@
---
title: Worktrees et Git
description: Corrigez les problèmes courants de worktree et de git.
---
# Worktrees et Git
Problèmes qui apparaissent avec les [sessions worktree](/worktrees/) et la [vue git](/git/), et comment les résoudre.
## Un worktree demande votre attention
OpenChamber signale un worktree quand quelque chose ne va pas :
- **folder missing** — le dossier du worktree a été supprimé ou déplacé hors dOpenChamber ; supprimez la session et créez un nouveau worktree
- **detached or unborn branch** — le worktree nest pas sur une branche normale ; checkout une branche
- **merge, rebase, or cherry-pick in progress** — une opération est restée à moitié terminée ; terminez-la ou annulez-la depuis la vue git
## Impossible de créer un worktree
- **branch already exists** — choisissez un autre nom de branche, ou utilisez loption branche existante
- **name already in use** — choisissez un autre nom de worktree
## La génération de commit ou PR échoue
Générer un message de commit ou une description de PR sexécute dans votre session active ; vous devez donc avoir une session ouverte avec un modèle fonctionnel sélectionné. Ouvrez ou choisissez une session et réessayez.
## Problèmes SSH ou chemins Windows
- vérifiez que la clé SSH utilisée par le dépôt est celle définie dans votre [identité git](/git-identities/)
- sur Windows, git utilise des chemins de style Unix (comme `/c/Users/...`) — OpenChamber gère cela, mais les chemins de clés SSH personnalisés doivent suivre la même forme
## Pages liées
- [Sessions worktree](/worktrees/) — comment les worktrees sont créés et supprimés
- [Identités Git](/git-identities/) — définir la bonne clé et identité par dépôt
+117
View File
@@ -0,0 +1,117 @@
---
title: Tunnels
description: Exposez OpenChamber en sécurité pour laccès distant et mobile.
---
# Tunnels
Un tunnel est un lien public vers votre OpenChamber, pour y accéder depuis votre téléphone ou un autre réseau. Utilisez `openchamber tunnel` pour en créer un pour une instance en cours dexécution.
## Prérequis
OpenChamber démarre la CLI du fournisseur de tunnel sur votre machine. Installez dabord le fournisseur que vous voulez utiliser :
```bash
brew install cloudflared
brew install ngrok
```
Les tunnels rapides Cloudflare peuvent fonctionner avec `cloudflared`. Ngrok nécessite un compte ngrok et un authtoken depuis le dashboard ngrok :
```bash
ngrok config add-authtoken <your-ngrok-token>
```
## Démarrage rapide
1. Démarrez OpenChamber :
```bash
openchamber
```
Si vous sautez cette étape, `openchamber tunnel start` peut démarrer automatiquement un serveur CLI. Lors de lauto-démarrage, vous pouvez passer des options serveur comme `--port`, `--host`, `--lan`, `--ui-password` et `--api-only`.
2. Démarrez un tunnel Cloudflare :
```bash
openchamber tunnel start --provider cloudflare --mode quick
```
Ou démarrez un tunnel Ngrok :
```bash
openchamber tunnel start --provider ngrok --mode quick
```
3. Vérifiez l’état :
```bash
openchamber tunnel status
```
Quand le tunnel est actif, `status` affiche une URL publique. Ouvrez-la, ou scannez le QR code, pour joindre OpenChamber depuis nimporte où.
Par défaut, OpenChamber affiche un QR code dans les sessions TTY interactives. Utilisez `--qr` pour forcer la sortie QR, ou `--no-qr` pour la désactiver.
## Fournisseurs
- `cloudflare` : modes quick, managed remote et managed local
- `ngrok` : mode quick
## Modes gérés
### Managed remote
Utilisez un token + hostname gérés par Cloudflare :
```bash
openchamber tunnel start --provider cloudflare --mode managed-remote --token-file ~/.secrets/cf-token --hostname app.example.com
```
### Managed local
Utilisez une configuration `cloudflared` locale :
```bash
openchamber tunnel start --provider cloudflare --mode managed-local --config ~/.cloudflared/config.yml
```
## Profils (managed-remote)
Enregistrez un profil réutilisable :
```bash
openchamber tunnel profile add --provider cloudflare --mode managed-remote --name prod-main --hostname app.example.com --token-file ~/.secrets/cf-token
```
Démarrez avec le profil enregistré :
```bash
openchamber tunnel start --profile prod-main
```
## Commandes utiles
```bash
openchamber tunnel providers
openchamber tunnel ready --provider cloudflare
openchamber tunnel ready --provider ngrok
openchamber tunnel doctor --provider cloudflare
openchamber tunnel doctor --provider ngrok
openchamber tunnel stop --port 3000
```
## Notes de comportement
- un tunnel actif par instance OpenChamber (port)
- démarrer un nouveau mode/fournisseur sur la même instance remplace le tunnel précédent
- générer un nouveau lien de connexion révoque le précédent lien inutilisé
- lauto-démarrage du tunnel conserve les flags serveur comme `--ui-password` et `--api-only` dans les paramètres dinstance utilisés par les flux de redémarrage/mise à jour
## Pages liées
- [Sécurité](/security/) — protéger lUI avant de lexposer
- [Tunnels desktop](/desktop-tunnels/) — configuration des tunnels de lapplication desktop sans démarrage CLI
- [PWA et mobile](/mobile/) — joindre OpenChamber depuis votre téléphone
- [Dépannage](/troubleshooting/) — si le lien de tunnel ne fonctionne pas
+31
View File
@@ -0,0 +1,31 @@
---
title: Mises à jour
description: Gardez OpenChamber à jour sur desktop, web et VS Code.
---
# Mises à jour
La façon de mettre OpenChamber à jour dépend de votre méthode dinstallation. Dans tous les cas, vous pouvez vérifier votre version actuelle dans **Paramètres → OpenChamber → À propos**.
## Application desktop
Lapplication desktop vérifie les mises à jour via les releases GitHub. Quand une mise à jour est disponible, OpenChamber vous le signale, la télécharge lorsque vous le choisissez et linstalle au prochain redémarrage. Vous gardez toujours le contrôle — rien ne sinstalle sans votre accord.
## Web / CLI
Si vous avez installé la CLI, mettez-la à jour depuis **À propos** avec les boutons de vérification et de mise à jour, ou depuis le terminal :
```bash
openchamber update
```
OpenChamber détecte comment il a été installé (npm, pnpm, yarn ou bun) et lance la bonne mise à jour pour vous.
## Le serveur OpenCode
OpenChamber et OpenCode se mettent à jour séparément. Quand une nouvelle version dOpenCode est disponible, OpenChamber propose de la mettre à jour puis redémarre le serveur. Voir [Serveur OpenCode](/opencode-server/) pour comprendre comment ce serveur est géré.
## Pages liées
- [Installation](/install/) — comment chaque application est installée au départ
- [Serveur OpenCode](/opencode-server/) — mettre à jour le serveur sous-jacent
+28
View File
@@ -0,0 +1,28 @@
---
title: Utilisation et quotas
description: Suivez la part de votre forfait fournisseur déjà utilisée.
---
# Utilisation et quotas
La page Utilisation montre quelle part du forfait de chaque fournisseur vous avez consommée, pour savoir à quel point vous approchez dune limite. Ouvrez-la dans **Paramètres → Utilisation**.
## Ce que vous voyez
Pour chaque fournisseur connecté, OpenChamber affiche :
- la part de la fenêtre actuelle déjà utilisée, sous forme de barre
- une répartition par modèle
- un indicateur de rythme, pour savoir si vous êtes en voie d’épuiser le quota
Vous pouvez choisir les fournisseurs affichés, et le même résumé est disponible depuis un menu déroulant dans len-tête de lapplication.
## Fournisseurs pris en charge
Lutilisation fonctionne pour les fournisseurs qui publient un quota, notamment Claude, Codex, GitHub Copilot, Google, OpenRouter, Kimi, NanoGPT, z.ai, Zhipu, MiniMax, Ollama Cloud et Wafer.
Un fournisseur naffiche lutilisation quaprès connexion sur la page [Fournisseurs](/providers/). Quelques fournisseurs demandent une étape supplémentaire — par exemple, Ollama Cloud lit un fichier de session que vous configurez séparément. Si un fournisseur naffiche aucune donnée, cela signifie généralement que cet identifiant supplémentaire manque.
## Pages liées
- [Fournisseurs, modèles et agents](/providers/) — connectez-vous avant que lutilisation apparaisse
+36
View File
@@ -0,0 +1,36 @@
---
title: Mode vocal
description: Parlez à OpenChamber et écoutez les réponses lues à voix haute.
---
# Mode vocal
Le mode vocal vous permet de dicter des messages et dentendre les réponses lues à voix haute. Activez-le dans **Paramètres → OpenChamber → Voix**.
## Lecture des réponses à voix haute (text-to-speech)
Choisissez comment les réponses sont lues :
- **browser** — les voix intégrées de votre navigateur, sans configuration
- **OpenAI** — les voix dOpenAI ; collez votre clé API et choisissez une voix
- **OpenAI-compatible** — tout service qui parle le format OpenAI ; saisissez son URL et, sil en demande une, une clé API
- **macOS say** — la commande intégrée `say`, sur les Mac qui lont
Une fois activé, un bouton de lecture apparaît sur les messages pour les écouter à voix haute.
## Dicter des messages (speech-to-text)
Choisissez comment votre parole est transcrite :
- **browser** — la reconnaissance intégrée de votre navigateur, sans configuration
- **server** — un service de transcription compatible OpenAI ; saisissez son URL et, si nécessaire, une clé API
- **on-device** — un modèle vocal qui sexécute dans votre navigateur et se télécharge à la première utilisation
## Note pour les téléphones
Pour lire les réponses à voix haute sur un téléphone, les options OpenAI ou compatibles OpenAI sont les plus fiables — les navigateurs mobiles limitent les voix intégrées.
## Pages liées
- [Notifications](/notifications/) — recevoir un ping au lieu d’écouter
- [Fournisseurs, modèles et agents](/providers/) — là où votre clé OpenAI existe peut-être déjà
@@ -0,0 +1,36 @@
---
title: Sessions worktree
description: Donnez à une session sa propre branche et son propre dossier pour garder le travail isolé.
---
# Sessions worktree
Une session worktree sexécute dans sa propre copie extraite de votre dépôt, sur sa propre branche (un git worktree). Les sessions parallèles ne se marchent donc pas sur les fichiers — lune peut refactorer pendant quune autre corrige un bug, sans allers-retours constants.
## En créer une
1. Ouvrez la boîte de dialogue nouveau worktree depuis le bouton en haut de la barre latérale des sessions.
2. Choisissez un point de départ :
- **new branch** — nommez la branche et choisissez depuis quelle branche partir
- **existing branch** — récupérez une branche que vous avez déjà
3. Confirmez le dossier du worktree (OpenChamber en propose un à partir du nom de branche).
4. Créez-le.
OpenChamber crée la branche, prépare le dossier et démarre une session dedans. Vous pouvez aussi en lancer une directement depuis une [todo](/notes-todos-plans/) ou une [issue ou PR GitHub](/github/).
## Ramener le travail
Quand le travail est bon, utilisez **Integrate** dans la vue Git pour ramener les commits du worktree sur une autre branche (comme `main`). Si un changement entre en conflit, vous pouvez confier la résolution du conflit à lagent.
## Nettoyer
Supprimer ou archiver la session peut retirer le worktree. Vous choisissez aussi si la branche doit être supprimée — locale, et distante sil y en a une. Rien nest supprimé sans votre demande.
## Si quelque chose semble étrange
Un worktree peut demander votre attention si son dossier a disparu, si sa branche est détachée, ou si un merge ou rebase est à moitié terminé. OpenChamber signale ces cas pour que vous puissiez les corriger — voir [Worktrees et Git](/troubleshooting/worktrees-git/).
## Pages liées
- [Multi-run](/multi-run/) — lancer plusieurs sessions worktree à la fois
- [Workflows Git et GitHub](/git/) — commiter et intégrer depuis OpenChamber
+98 -47
View File
@@ -8,7 +8,8 @@
"es": "Empieza aquí",
"pt-BR": "Comece aqui",
"ko": "여기서 시작",
"pl": "Zacznij tutaj"
"pl": "Zacznij tutaj",
"fr": "Commencer ici"
},
"items": [
{
@@ -20,7 +21,8 @@
"es": "Visión general",
"pt-BR": "Visão geral",
"ko": "개요",
"pl": "Przegląd"
"pl": "Przegląd",
"fr": "Vue densemble"
}
},
{
@@ -32,7 +34,8 @@
"es": "Instalación",
"pt-BR": "Instalação",
"ko": "설치",
"pl": "Instalacja"
"pl": "Instalacja",
"fr": "Installation"
}
},
{
@@ -44,7 +47,8 @@
"es": "Inicio rápido",
"pt-BR": "Início rápido",
"ko": "빠른 시작",
"pl": "Szybki start"
"pl": "Szybki start",
"fr": "Démarrage rapide"
}
},
{
@@ -56,7 +60,8 @@
"es": "Servidor OpenCode",
"pt-BR": "Servidor OpenCode",
"ko": "OpenCode 서버",
"pl": "Serwer OpenCode"
"pl": "Serwer OpenCode",
"fr": "Serveur OpenCode"
}
},
{
@@ -68,7 +73,8 @@
"es": "Variables de entorno",
"pt-BR": "Variáveis de ambiente",
"ko": "환경 변수",
"pl": "Zmienne środowiskowe"
"pl": "Zmienne środowiskowe",
"fr": "Variables denvironnement"
}
}
]
@@ -81,7 +87,8 @@
"es": "Flujos de trabajo",
"pt-BR": "Fluxos de trabalho",
"ko": "워크플로",
"pl": "Przepływy pracy"
"pl": "Przepływy pracy",
"fr": "Workflows"
},
"items": [
{
@@ -93,7 +100,8 @@
"es": "Proyectos",
"pt-BR": "Projetos",
"ko": "프로젝트",
"pl": "Projekty"
"pl": "Projekty",
"fr": "Projets"
}
},
{
@@ -105,7 +113,8 @@
"es": "Contexto",
"pt-BR": "Contexto",
"ko": "컨텍스트",
"pl": "Kontekst"
"pl": "Kontekst",
"fr": "Contexte"
}
},
{
@@ -117,7 +126,8 @@
"es": "Notas, tareas y planes",
"pt-BR": "Notas, tarefas e planos",
"ko": "메모, 할 일, 계획",
"pl": "Notatki, zadania i plany"
"pl": "Notatki, zadania i plany",
"fr": "Notes, todos et plans"
}
},
{
@@ -129,7 +139,8 @@
"es": "Tareas programadas",
"pt-BR": "Tarefas agendadas",
"ko": "예약 작업",
"pl": "Zaplanowane zadania"
"pl": "Zaplanowane zadania",
"fr": "Tâches planifiées"
}
},
{
@@ -141,7 +152,8 @@
"es": "Acciones del proyecto",
"pt-BR": "Ações do projeto",
"ko": "프로젝트 작업",
"pl": "Akcje projektu"
"pl": "Akcje projektu",
"fr": "Actions de projet"
}
},
{
@@ -153,7 +165,8 @@
"es": "Vista previa y servidores de desarrollo",
"pt-BR": "Pré-visualização e servidores de desenvolvimento",
"ko": "미리보기 및 개발 서버",
"pl": "Podgląd i serwery deweloperskie"
"pl": "Podgląd i serwery deweloperskie",
"fr": "Aperçu et serveurs de dev"
}
},
{
@@ -165,16 +178,23 @@
"es": "Sesiones de worktree",
"pt-BR": "Sessões de worktree",
"ko": "Worktree 세션",
"pl": "Sesje worktree"
"pl": "Sesje worktree",
"fr": "Sessions worktree"
}
},
{
"label": "Multi-run",
"link": "/multi-run/"
"link": "/multi-run/",
"translations": {
"fr": "Multi-run"
}
},
{
"label": "Git & GitHub",
"link": "/git/"
"link": "/git/",
"translations": {
"fr": "Git et GitHub"
}
},
{
"label": "GitHub Issues & PRs",
@@ -185,7 +205,8 @@
"es": "Issues y PRs de GitHub",
"pt-BR": "Issues e PRs do GitHub",
"ko": "GitHub 이슈 및 PR",
"pl": "Zgłoszenia i PR-y GitHub"
"pl": "Zgłoszenia i PR-y GitHub",
"fr": "Issues et PR GitHub"
}
},
{
@@ -197,7 +218,8 @@
"es": "Prompts mágicos",
"pt-BR": "Prompts mágicos",
"ko": "매직 프롬프트",
"pl": "Magiczne prompty"
"pl": "Magiczne prompty",
"fr": "Magic Prompts"
}
},
{
@@ -209,7 +231,8 @@
"es": "Identidades de Git",
"pt-BR": "Identidades do Git",
"ko": "Git 아이덴티티",
"pl": "Tożsamości Git"
"pl": "Tożsamości Git",
"fr": "Identités Git"
}
}
]
@@ -222,7 +245,8 @@
"es": "Configuración de OpenCode",
"pt-BR": "Configuração do OpenCode",
"ko": "OpenCode 설정",
"pl": "Konfiguracja OpenCode"
"pl": "Konfiguracja OpenCode",
"fr": "Configuration OpenCode"
},
"items": [
{
@@ -234,7 +258,8 @@
"es": "Proveedores, modelos y agentes",
"pt-BR": "Provedores, modelos e agentes",
"ko": "공급자, 모델, 에이전트",
"pl": "Dostawcy, modele i agenci"
"pl": "Dostawcy, modele i agenci",
"fr": "Fournisseurs, modèles et agents"
}
},
{
@@ -246,7 +271,8 @@
"es": "Servidores MCP",
"pt-BR": "Servidores MCP",
"ko": "MCP 서버",
"pl": "Serwery MCP"
"pl": "Serwery MCP",
"fr": "Serveurs MCP"
}
},
{
@@ -258,7 +284,8 @@
"es": "Habilidades",
"pt-BR": "Habilidades",
"ko": "스킬",
"pl": "Umiejętności"
"pl": "Umiejętności",
"fr": "Skills"
}
},
{
@@ -270,7 +297,8 @@
"es": "Catálogo de habilidades",
"pt-BR": "Catálogo de habilidades",
"ko": "스킬 카탈로그",
"pl": "Katalog umiejętności"
"pl": "Katalog umiejętności",
"fr": "Catalogue de skills"
}
},
{
@@ -282,7 +310,8 @@
"es": "Comandos y fragmentos",
"pt-BR": "Comandos e trechos",
"ko": "명령 및 스니펫",
"pl": "Polecenia i fragmenty"
"pl": "Polecenia i fragmenty",
"fr": "Commandes et snippets"
}
},
{
@@ -294,7 +323,8 @@
"es": "Uso y cuotas",
"pt-BR": "Uso e cotas",
"ko": "사용량 및 할당량",
"pl": "Zużycie i limity"
"pl": "Zużycie i limity",
"fr": "Utilisation et quotas"
}
}
]
@@ -307,7 +337,8 @@
"es": "Acceso remoto",
"pt-BR": "Acesso remoto",
"ko": "원격 접속",
"pl": "Dostęp zdalny"
"pl": "Dostęp zdalny",
"fr": "Accès distant"
},
"items": [
{
@@ -319,7 +350,8 @@
"es": "Túneles",
"pt-BR": "Túneis",
"ko": "터널",
"pl": "Tunele"
"pl": "Tunele",
"fr": "Tunnels"
}
},
{
@@ -331,7 +363,8 @@
"es": "Proxy inverso",
"pt-BR": "Proxy reverso",
"ko": "리버스 프록시",
"pl": "Reverse proxy"
"pl": "Reverse proxy",
"fr": "Reverse proxy"
}
},
{
@@ -343,7 +376,8 @@
"es": "PWA y móvil",
"pt-BR": "PWA e celular",
"ko": "PWA 및 모바일",
"pl": "PWA i urządzenia mobilne"
"pl": "PWA i urządzenia mobilne",
"fr": "PWA et mobile"
}
},
{
@@ -355,7 +389,8 @@
"es": "Seguridad",
"pt-BR": "Segurança",
"ko": "보안",
"pl": "Bezpieczeństwo"
"pl": "Bezpieczeństwo",
"fr": "Sécurité"
}
}
]
@@ -368,7 +403,8 @@
"es": "Personalizar",
"pt-BR": "Personalizar",
"ko": "맞춤 설정",
"pl": "Dostosuj"
"pl": "Dostosuj",
"fr": "Personnaliser"
},
"items": [
{
@@ -380,7 +416,8 @@
"es": "Temas",
"pt-BR": "Temas",
"ko": "테마",
"pl": "Motywy"
"pl": "Motywy",
"fr": "Thèmes"
}
},
{
@@ -392,7 +429,8 @@
"es": "Notificaciones",
"pt-BR": "Notificações",
"ko": "알림",
"pl": "Powiadomienia"
"pl": "Powiadomienia",
"fr": "Notifications"
}
},
{
@@ -404,7 +442,8 @@
"es": "Modo de voz",
"pt-BR": "Modo de voz",
"ko": "음성 모드",
"pl": "Tryb głosowy"
"pl": "Tryb głosowy",
"fr": "Mode vocal"
}
},
{
@@ -416,7 +455,8 @@
"es": "Iconos de proyecto",
"pt-BR": "Ícones de projeto",
"ko": "프로젝트 아이콘",
"pl": "Ikony projektów"
"pl": "Ikony projektów",
"fr": "Icônes de projet"
}
}
]
@@ -429,7 +469,8 @@
"es": "Escritorio",
"pt-BR": "Desktop",
"ko": "데스크톱",
"pl": "Pulpit"
"pl": "Pulpit",
"fr": "Desktop"
},
"items": [
{
@@ -441,7 +482,8 @@
"es": "Instancias remotas",
"pt-BR": "Instâncias remotas",
"ko": "원격 인스턴스",
"pl": "Zdalne instancje"
"pl": "Zdalne instancje",
"fr": "Instances distantes"
}
},
{
@@ -453,7 +495,8 @@
"es": "Navegador de escritorio",
"pt-BR": "Navegador desktop",
"ko": "데스크톱 브라우저",
"pl": "Przeglądarka na pulpicie"
"pl": "Przeglądarka na pulpicie",
"fr": "Navigateur desktop"
}
},
{
@@ -465,7 +508,8 @@
"es": "Túneles de escritorio",
"pt-BR": "Túneis no desktop",
"ko": "데스크톱 터널",
"pl": "Tunele w aplikacji desktopowej"
"pl": "Tunele w aplikacji desktopowej",
"fr": "Tunnels desktop"
}
},
{
@@ -477,7 +521,8 @@
"es": "Hosts SSH y proxy",
"pt-BR": "Hosts SSH e proxy",
"ko": "SSH 호스트 및 프록시",
"pl": "Hosty SSH i proxy"
"pl": "Hosty SSH i proxy",
"fr": "Hosts SSH et proxy"
}
},
{
@@ -489,7 +534,8 @@
"es": "Actualizaciones",
"pt-BR": "Atualizações",
"ko": "업데이트",
"pl": "Aktualizacje"
"pl": "Aktualizacje",
"fr": "Mises à jour"
}
}
]
@@ -502,7 +548,8 @@
"es": "Ayuda",
"pt-BR": "Ajuda",
"ko": "도움말",
"pl": "Pomoc"
"pl": "Pomoc",
"fr": "Aide"
},
"items": [
{
@@ -514,7 +561,8 @@
"es": "Resolución de problemas",
"pt-BR": "Solução de problemas",
"ko": "문제 해결",
"pl": "Rozwiązywanie problemów"
"pl": "Rozwiązywanie problemów",
"fr": "Dépannage"
}
},
{
@@ -526,7 +574,8 @@
"es": "Conexión con OpenCode",
"pt-BR": "Conexão com o OpenCode",
"ko": "OpenCode 연결",
"pl": "Połączenie z OpenCode"
"pl": "Połączenie z OpenCode",
"fr": "Connexion à OpenCode"
}
},
{
@@ -538,7 +587,8 @@
"es": "Worktrees y Git",
"pt-BR": "Worktrees e Git",
"ko": "Worktree 및 Git",
"pl": "Worktree i Git"
"pl": "Worktree i Git",
"fr": "Worktrees et Git"
}
},
{
@@ -550,7 +600,8 @@
"es": "Acceso remoto",
"pt-BR": "Acesso remoto",
"ko": "원격 접속",
"pl": "Dostęp zdalny"
"pl": "Dostęp zdalny",
"fr": "Accès distant"
}
}
]