Conductor ferme : lancer plusieurs agents Claude Code / Codex en parallèle sans lui (guide git worktree)

Meta a racheté Conductor. Selon l'annonce officielle, Conductor Cloud passe en lecture seule le 13 novembre et ferme le 20 novembre, date à laquelle la suppression des données cloud commence ; l'app Mac locale reste mise à jour jusqu'au début de 2027. Ce guide présente le calendrier et ce qu'il faut exporter, puis montre comment faire la même chose sans Conductor : un git worktree par tâche, une session Claude Code ou Codex par worktree, une API Key, puis fusion, vérification et nettoyage. Avec nos tests de claude --worktree, codex --worktree, d'un conflit de fusion, et des alternatives comme Orca, Emdash et Claude Squad.

13 分钟阅读
Conductor ferme : lancer plusieurs agents Claude Code / Codex en parallèle sans lui (guide git worktree)

En bref :

  • Selon l'annonce de Conductor, Conductor rejoint Meta. Les inscriptions et téléchargements sont arrêtés depuis le 4 novembre ; Conductor Cloud passe en lecture seule le 13 novembre et ferme le 20 novembre, date à laquelle la suppression des données cloud commence. L'app Mac locale continue de recevoir de nouveaux modèles et des correctifs critiques jusqu'au début de 2027, puis commencera à s'arrêter.
  • Si vous utilisez encore Conductor Cloud, faites un clic droit sur chaque espace de travail et choisissez « Transfer to local » avant le 13 novembre, ou exportez tout via Settings → Account → Export data.
  • Le mécanisme central de Conductor est un git worktree et une branche par espace de travail, comme l'indique sa documentation. Vous pouvez le faire sans Conductor : créez des dossiers avec git worktree add, lancez Claude Code ou Codex dans chacun, puis fusionnez dans votre branche principale.
  • Lors de notre test du 5 novembre, Claude Code et Codex ont tourné en même temps dans deux worktrees, chacun écrivant une fonction avec ses tests. Durée totale : 66,3 s (Claude Code 27,0 s, Codex 66,3 s), et les 11 tests passaient après la fusion. claude -w dans Claude Code et --worktree dans Codex peuvent aussi créer le worktree pour vous.
  • Pour une interface graphique, regardez les projets open source Orca (MIT), Emdash (Apache-2.0) et l'outil en terminal Claude Squad (AGPL-3.0).

Créer une API Key et lancer des tâches Claude Code et Codex en parallèle →

Calendrier officiel

DateCe qui se passeCe qu'il faut faire
4 nov. (mer.)Conductor annonce rejoindre Meta ; plus d'inscriptions ni de téléchargements ; les utilisateurs existants ne peuvent plus passer en Pro, les utilisateurs Pro gardent leurs fonctions ProLes nouveaux utilisateurs ne peuvent plus l'installer : suivez la méthode ci-dessous
13 nov. (ven.)Les espaces Conductor Cloud passent en lecture seule : lecture des anciens chats et export possibles, plus de nouveaux messages ; les abonnés actifs sont remboursés« Transfer to local » de vos espaces cloud avant cette date
20 nov. (ven.)Conductor Cloud ferme et la suppression des données cloud commenceSettings → Account → Export data avant cette date
Début 2027Conductor local commence à s'arrêter ; d'ici là, nouveaux modèles et correctifs critiquesL'app locale fonctionne encore, mais mieux vaut passer dès maintenant à un flux qui n'en dépend pas

Les dates proviennent de l'annonce de Conductor et du changelog 0.93.0. Selon TechCrunch, Meta a confirmé le rachat sans donner de détails. Selon Axios, Conductor a été fondé par Charlie Holtz et Jackson de Campos, et les conditions financières n'ont pas été communiquées. Un résumé d'actualité tendance sur X circule aussi.

Ce que fait Conductor, en 4 étapes

Selon la documentation de Conductor, chaque nouvel espace de travail reçoit son propre git worktree avec une branche, en général sous ~/conductor/workspaces/<nom du dépôt>/<nom de l'espace>. L'agent ne modifie que les fichiers de ce dossier, les tests s'y exécutent, et la branche est ce que vous relisez, poussez et transformez en PR.

Sans Conductor, il vous reste donc 4 étapes à assurer vous-même :

  1. Une tâche, un dossier : git worktree add donne à chaque tâche son dossier et sa branche.
  2. Un dossier, une session : ouvrez une session Claude Code ou Codex dans chaque dossier.
  3. Modèles configurés : connectez Claude Code et Codex à la même API Key.
  4. Fusion et vérification : chaque branche lance ses tests et est committée, puis fusionnée dans main, et le worktree est supprimé.

git worktree est intégré à Git : un dépôt avec plusieurs dossiers de travail qui partagent l'historique mais gardent des fichiers séparés, si bien que deux agents qui modifient le même fichier ne s'écrasent pas sur le disque.

Étape 0 : créer une API Key et connecter Claude Code et Codex

  1. Inscrivez-vous sur aicodewith.ai et connectez-vous, puis cliquez sur « Gestion des clés » dans la barre de navigation à gauche.
  2. Cliquez sur « Créer une clé » en haut à droite et donnez-lui un nom facile à reconnaître, par exemple « agents parallèles - MacBook ».
  3. Après validation, copiez immédiatement la clé complète et conservez-la. Une fois la fenêtre fermée, la clé complète ne peut plus être affichée ; si vous la perdez, supprimez-la et créez-en une nouvelle. Détails dans la documentation Créer une API Key.

Créer une API Key →

Codex lit le fichier global ~/.codex/config.toml : tous les worktrees partagent ce fichier, inutile de configurer chaque dossier :

toml
# ~/.codex/config.toml
model = "gpt-6.1-sol"
model_provider = "aicodewith"

[model_providers.aicodewith]
name = "aicodewith"
base_url = "https://api.aicodewith.ai/chatgpt/v1"
wire_api = "responses"
experimental_bearer_token = "VOTRE_API_KEY"

Claude Code lit ~/.claude/settings.json, lui aussi global :

json
{
  "env": {
    "ANTHROPIC_BASE_URL": "https://api.aicodewith.ai",
    "ANTHROPIC_AUTH_TOKEN": "VOTRE_API_KEY"
  }
}

Si Codex n'est pas encore installé, voir le guide d'installation de Codex. Chaque champ de config.toml est expliqué dans le guide config.toml de Codex, et les autres configurations de Claude Code dans Connecter Claude Code à une API tierce.

Étape 1 : un worktree par tâche

Avant de commencer, ajoutez les artefacts de build et les worktrees créés par les agents à .gitignore. Nous l'avions oublié au premier essai et __pycache__ a bloqué la fusion (voir étape 4) :

bash
# Dans le dépôt principal, ignorez d'abord les artefacts de build et les worktrees créés par les agents
cat >> .gitignore <<'EOF'
__pycache__/
node_modules/
.claude/worktrees/
EOF
git add .gitignore && git commit -m "ignore build output and agent worktrees"

Créez ensuite un worktree par tâche :

bash
cd ~/code/demo                      # votre dépôt
git switch main && git pull
git worktree add ../demo-wt/slugify  -b feat/slugify
git worktree add ../demo-wt/truncate -b feat/truncate
git worktree list

Sortie :

text
~/code/demo              a97cf41 [main]
~/code/demo-wt/slugify   a97cf41 [feat/slugify]
~/code/demo-wt/truncate  a97cf41 [feat/truncate]

Avec beaucoup de tâches, un petit script aide : donnez un nom, il crée le dossier et une branche agent/<nom>, puis affiche le chemin :

bash
#!/usr/bin/env bash
# new-task.sh <name> [base]   crée un dossier de tâche et affiche son chemin
set -euo pipefail
name="${1:?usage: new-task.sh <name> [base]}"
base="${2:-main}"
repo="$(git rev-parse --show-toplevel)"
wt="$(dirname "$repo")/$(basename "$repo")-wt/$name"
git -C "$repo" worktree add -q "$wt" -b "agent/$name" "$base"
echo "$wt"

Utilisation :

bash
cd "$(./new-task.sh fix-login)" && claude
cd "$(./new-task.sh add-export)" && codex

Attention : un worktree ne contient que les fichiers suivis par Git. Les fichiers non suivis comme .env ou node_modules n'apparaissent pas dans le nouveau dossier : copiez-les ou réinstallez les dépendances. C'est ce que règle la page « Configure your project » de Conductor.

Étape 2 : un Claude Code ou un Codex par dossier

En interactif : ouvrez deux onglets de terminal, faites cd dans un worktree dans chacun, puis lancez claude ou codex. Avec tmux, vous voyez les deux sur un seul écran :

bash
# Claude Code à gauche, Codex à droite
tmux new-session -d -s agents -c ../demo-wt/slugify  "claude"
tmux split-window -h -t agents -c ../demo-wt/truncate "codex"
tmux attach -t agents

Dans notre test, Claude Code et Codex ont chacun demandé une fois s'il fallait faire confiance au dossier à la première ouverture d'un worktree, car c'est un nouveau chemin pour eux.

Sans surveillance : quand la tâche est bien définie et que seul le résultat compte, lancez claude -p et codex exec en arrière-plan en même temps :

bash
PA="Add textkit/slug.py with slugify(s) ... Add tests/test_slug.py ... Only create these two files. Then run: python3 -m unittest discover -s tests -v"
PB="Add textkit/truncate.py with truncate(s, width, suffix='...') ... Add tests/test_truncate.py ... Only create these two files. Then run the tests."

(cd ../demo-wt/slugify  && claude -p "$PA" --allowedTools "Write,Edit,Read,Bash(python3:*)") &
(cd ../demo-wt/truncate && codex exec -s workspace-write "$PB") &
wait

Les prompts précisent « Only create these two files », ce qui sépare les fichiers des deux tâches et évite les conflits à la fusion. D'autres façons de découper le travail dans Découper les tâches avec les sous-agents Codex.

Étape 3 : résultats des tests

Environnement de test : 5 novembre 2026, 06:16–06:30 (heure de Pékin, UTC+8), Linux, Claude Code 2.1.318, codex-cli 0.166.0 (modèle gpt-6.1-sol), notre propre Key ; HOME et CODEX_HOME pointaient vers un dossier isolé, et le dépôt de test était un petit paquet Python, textkit, avec une seule fonction.

Les deux tâches ont démarré ensemble : Claude Code a écrit slugify() dans feat/slugify, et Codex truncate() dans feat/truncate. Les deux devaient ajouter des tests unitaires et les lancer.

text
[Claude Code 2.1.318 · ~/code/demo-wt/slugify · feat/slugify]
All 7 tests pass. I added `textkit/slug.py` and `tests/test_slug.py`,
and those are the only files I created.
[exit 0, 27,0 s]

[Codex 0.166.0 · ~/code/demo-wt/truncate · feat/truncate]
workdir: ~/code/demo-wt/truncate
model: gpt-6.1-sol
provider: aicodewith
sandbox: workspace-write
...
Ran 5 tests in 0.000s
OK
[exit 0, 66,3 s]
ÉlémentRésultatDurée
Claude Code (worktree feat/slugify)2 nouveaux fichiers, 7 tests réussis27,0 s
Codex (worktree feat/truncate)2 nouveaux fichiers, 5 tests réussis66,3 s
Durée totale, les deux en même tempsfixée par le plus lent66,3 s
Fusion des deux branchesaucun conflit, 11 tests réussis sur mainmoins de 1 s
claude -w + codex exec --worktree en même tempsune fonction et un test chacun, tests réussis16,7 s / 24,4 s
Résolution d'un conflit de fusion avec Claude Codeles deux côtés conservés, 13 tests réussis17,5 s

Les deux tâches ne s'attendent pas : la durée totale est celle de la plus lente. L'une après l'autre, il faudrait additionner les deux durées.

Étape 4 : fusionner et vérifier

Chaque worktree lance ses propres tests et committe ; une fois tout committé, revenez dans le dépôt principal et fusionnez dans l'ordre :

bash
# Dans chaque worktree : lancez les tests, puis committez
cd ../demo-wt/slugify
git status --short
python3 -m unittest discover -s tests
git add -A && git commit -m "feat: slugify"
# De retour dans le dépôt principal, fusionnez
cd ~/code/demo
git merge --no-ff feat/slugify
git merge --no-ff feat/truncate
python3 -m unittest discover -s tests -v

Notre résultat de fusion :

text
*   9765c15 merge truncate
|\
| * 55ce497 feat: truncate
* |   b7b9d4c merge slugify
|\ \
| |/
|/|
| * c5c0b99 feat: slugify
|/
* a97cf41 init textkit

Ran 11 tests in 0.000s
OK

Au premier essai de fusion, nous avons eu cette erreur :

text
$ git merge --no-ff feat/slugify
error: The following untracked working tree files would be overwritten by merge:
	tests/__pycache__/test_core.cpython-313.pyc
	textkit/__pycache__/__init__.cpython-313.pyc
	textkit/__pycache__/core.cpython-313.pyc
Please move or remove them before you merge.
Aborting

Les tests avaient créé __pycache__, committé dans la branche, et des fichiers non suivis du même nom dans le dépôt principal bloquaient la fusion. Claude Code l'avait d'ailleurs signalé à la fin de sa tâche. La solution est le .gitignore de l'étape 1 ; si les fichiers sont déjà committés, retirez-les avec git rm -r --cached dans la branche avant de fusionner.

Liste de vérification :

  • git status --short dans chaque branche ne montre que les fichiers attendus ;
  • les tests de chaque branche passent, et la suite complète est relancée sur main après la fusion ;
  • si deux branches ont modifié le même fichier, traitez le conflit comme dans la section suivante.

Une fois terminé, supprimez les worktrees et les branches :

bash
git worktree remove ../demo-wt/slugify
git worktree remove ../demo-wt/truncate
git branch -d feat/slugify feat/truncate
git worktree prune
git worktree list

Sans commandes git : claude -w et codex --worktree

Les deux CLI savent désormais créer des worktrees elles-mêmes. Dans les versions testées, claude --help liste -w, --worktree [name], et codex --help comme codex exec --help listent --worktree (« Run the session in a new managed Git worktree »). Voir la documentation Claude Code et la documentation worktree de Codex.

bash
# Claude Code: à lancer depuis la racine du dépôt
claude -w words                   # = claude --worktree words
# Codex: en interactif ou sans surveillance
codex --worktree
codex exec --worktree -s workspace-write "Add title_case() to textkit/core.py ..."

Après les deux sessions lancées en même temps, git worktree list donnait :

text
$ git worktree list
~/code/demo                             987a3ea [main]
~/code/demo/.claude/worktrees/words     987a3ea [worktree-words] locked
~/.codex/worktrees/f0c2/demo            987a3ea (detached HEAD)

Trois points d'attention :

  • Emplacements différents : Claude Code crée le worktree dans le dépôt, sous .claude/worktrees/<nom>, sur une branche worktree-<nom> ; Codex le crée sous ~/.codex/worktrees/ en detached HEAD, sans branche. Ajoutez .claude/worktrees/ à .gitignore, et créez une branche dans le worktree Codex avant de fusionner.
  • Claude Code verrouille son worktree : le verrou reste après la session, donc un simple git worktree remove échoue tant que vous n'avez pas lancé git worktree unlock.
  • Deux tâches sur le même fichier entrent en conflit : cette fois, nous avons volontairement fait ajouter une fonction à textkit/core.py des deux côtés.

Commit et fusion :

bash
# le worktree de Claude Code est déjà sur la branche worktree-words
cd ~/code/demo/.claude/worktrees/words
git add -A && git commit -m "feat: count_words"
# le worktree de Codex est en detached HEAD, créez d'abord une branche
cd ~/.codex/worktrees/f0c2/demo
git switch -c feat/title-case
git add -A && git commit -m "feat: title_case"
cd ~/code/demo
git merge --no-ff worktree-words
git merge --no-ff feat/title-case

La deuxième fusion est entrée en conflit :

text
Auto-merging tests/test_core.py
CONFLICT (content): Merge conflict in tests/test_core.py
Auto-merging textkit/core.py
CONFLICT (content): Merge conflict in textkit/core.py
Automatic merge failed; fix conflicts and then commit the result.

Vous pouvez laisser un agent le résoudre. Notez que claude -p a besoin de --permission-mode acceptEdits : au premier essai nous n'avions passé que --allowedTools, les écritures de Claude Code ont été bloquées et le conflit est resté tel quel :

bash
claude -p "This repo is in the middle of a git merge with conflicts in textkit/core.py and tests/test_core.py. Keep both sides, remove the conflict markers, run python3 -m unittest discover -s tests, and report the result. Do not commit." \
  --permission-mode acceptEdits \
  --allowedTools "Edit,Read,Bash(python3:*),Bash(git status:*),Bash(git diff:*)"
# ne committez qu'après avoir vérifié qu'il ne reste aucun marqueur de conflit
grep -rn '<<<<<<<' textkit tests
git add textkit/core.py tests/test_core.py && git commit -m "merge title_case"
python3 -m unittest discover -s tests -v

Sortie :

text
A grep found no conflict markers left in `textkit/` or `tests/`.
I didn't stage or commit anything, so git still lists both files as unmerged (`UU`).
[exit 0, 17,5 s]

Ran 13 tests in 0.001s
OK

Le verrou rencontré au nettoyage :

text
$ git worktree remove .claude/worktrees/words
fatal: cannot remove a locked working tree, lock reason: claude session words (pid ...)
use 'remove -f -f' to override or unlock first

$ git worktree unlock .claude/worktrees/words && git worktree remove .claude/worktrees/words
$ git worktree remove ~/.codex/worktrees/f0c2/demo
$ git branch -d worktree-words feat/title-case

Besoin d'une interface graphique ? Les outils qui peuvent remplacer Conductor

Nous ne listons que des projets dont nous avons vérifié la licence et la description sur GitHub :

OutilCe que c'estIsolationPlateformesLicence
OrcaApp de bureau pour piloter de nombreux agents CLI, dont Claude Code, Codex et OpenCodeun git worktree par tâchemacOS, Windows, Linux, plus une app mobileMIT
EmdashApp de bureau pour lancer des agents de code en parallèle, avec revue des diffs et PRun worktree et une branche par agentmacOS, Windows, LinuxApache-2.0
Claude SquadApp en terminal qui gère plusieurs sessions Claude Code, Codex, OpenCode, Amp, etc.sessions tmux + git worktreesterminal (tmux requis)AGPL-3.0
claude -wIntégré à Claude Codeun worktree par sessionpartout où tourne Claude Code—
codex --worktreeIntégré à la CLI Codex ; l'app Codex a aussi des worktreesun worktree par sessionpartout où tourne Codex—

Tous reposent sur git worktree, donc les 4 étapes ci-dessus restent valables : la Key est dans la configuration globale de Claude Code et Codex, et n'importe lequel de ces outils peut l'utiliser directement.

Avant de paralléliser, demandez-vous si c'est utile

Plus d'agents n'est pas toujours mieux. Des tâches qui partagent des fichiers entrent en conflit, comme vu plus haut, et les étapes d'une même tâche conviennent souvent mieux à des sous-agents :

Règle simple : fonctionnalités et correctifs indépendants dans des worktrees parallèles ; recherche, code et tests d'une même fonctionnalité dans des sous-agents.

Créer une API Key et connecter Claude Code et Codex →

FAQ

Combien de temps l'app Conductor locale va-t-elle encore fonctionner ?

Selon l'annonce, Conductor local fonctionne normalement et reçoit de nouveaux modèles et des correctifs critiques jusqu'au début de 2027, puis commence à s'arrêter. Les téléchargements étant arrêtés, il n'est plus possible de l'installer si vous ne l'avez pas déjà.

Comment exporter mes données Conductor Cloud ?

Clic droit sur un espace de travail, puis « Transfer to local » pour déplacer l'espace et ses chats sur votre Mac ; pour tout exporter, Settings → Account → Export data. L'export reste possible après le passage en lecture seule du 13 novembre ; la suppression commence le 20 novembre.

Quelle différence entre git worktree et deux clones ?

Les worktrees partagent un seul .git : commits, branches et remotes sont les mêmes, un commit dans un dossier est visible tout de suite dans l'autre, et vous ne retéléchargez pas le dépôt. La limite : une même branche ne peut pas être extraite dans deux worktrees à la fois.

Combien d'agents lancer en même temps ?

Autant de diffs que vous pouvez relire. Nous conseillons de commencer par 2 ou 3, avec des fichiers bien séparés par tâche. Toutes les sessions peuvent partager une seule Key, et chaque requête apparaît dans le journal d'utilisation de la console.

Est-ce que ça marche sous Windows ?

git worktree, Claude Code et Codex prennent en charge Windows ; tmux nécessite WSL. Orca et Emdash proposent tous deux une version Windows.

Sources

相关文章

Sous-agents en arrière-plan de Claude Code : moins de quota consommé, Haiku 5.5 écrit la ligne d'état dès la 2.1.316 (mise à jour, vérification, configuration)

Sous-agents en arrière-plan de Claude Code : moins de quota consommé, Haiku 5.5 écrit la ligne d'état dès la 2.1.316 (mise à jour, vérification, configuration)

Selon le compte officiel d'Anthropic @ClaudeDevs, la ligne d'état qu'un sous-agent en arrière-plan de Claude Code rafraîchit toutes les 30 secondes relisait à chaque fois toute la conversation du sous-agent. Haiku 5.5 l'écrit désormais à partir de notes courtes, ce qui demande environ 99 % de moins par rafraîchissement ; les sessions avec sous-agents en arrière-plan consomment environ 5 % de quota en moins, soit environ 6 % de prompts en plus. Il faut la v2.1.316+. Ce guide explique qui est concerné, comment mettre à jour et vérifier la version, un test réel sur Claude Code 2.1.318 avec une API Key, et comment choisir le modèle des sous-agents avec CLAUDE_CODE_SUBAGENT_MODEL, les fichiers d'agent et /tasks.

Postman a-t-il installé des plugins dans Claude Code et Codex ? Vérifier et supprimer en 3 étapes (plugins, hooks, MCP, config.toml)

Postman a-t-il installé des plugins dans Claude Code et Codex ? Vérifier et supprimer en 3 étapes (plugins, hooks, MCP, config.toml)

Selon l'issue GitHub #14370 et The New Stack, l'application de bureau Postman (macOS 12.33.4 et 12.35.1) a installé son plugin dans Claude Code et Codex lors d'une mise à niveau d'utilisateur existant, et a écrit un trusted_hash dans ~/.codex/config.toml pour que son propre hook SessionStart s'exécute. Ce guide explique les faits et la réponse de Postman, donne une vérification en 3 étapes pour Claude Code, Codex et Cursor, la commande officielle de suppression et ce qu'elle laisse derrière elle, avec notre reproduction via l'installateur officiel de Postman dans un répertoire isolé.

DeepSeek Harness Creator Mode : installation, connexion d'une API tierce et premier plugin testé

DeepSeek Harness Creator Mode : installation, connexion d'une API tierce et premier plugin testé

Le 2 novembre, le compte officiel DeepSeek Harness a présenté Creator Mode : vous décrivez un outil en une phrase, et l'agent écrit le plugin, l'installe dans Harness et vérifie qu'il est chargé. Ce guide explique ce qu'est Creator Mode, comment lancer Harness avec npx, comment brancher une API tierce compatible OpenAI (URL de base + clé aicodewith) pour utiliser les modèles Claude, GPT et DeepSeek, puis construit un plugin todo_scan avec Creator Mode, avec les sorties réelles, les erreurs courantes et les équivalents Claude Code / Codex.