← Tous les exemples
Terminal
iTerm2AppleScript

Lancer un script dans une nouvelle fenêtre iTerm2

Ouvrir iTerm2 dans un répertoire de projet précis, exécuter un script de configuration, puis basculer dans un shell interactif lorsque le script se termine. Le même schéma que l'exemple Ghostty, avec une petite particularité.

Le piège

iTerm2 expose un drapeau --command= qui prend toute une ligne shell comme valeur unique, exactement comme celui de Ghostty. Il n'est pas documenté sur iterm2.com (seulement dans la sortie --help du binaire), mais il est stable et se comporte comme on s'y attend.

La seule différence avec Ghostty : iTerm n'a aucun équivalent à --working-directory=. Vous fixez le répertoire de travail vous-même en faisant un cd au tout début de la commande.

Configuration qui fonctionne

{
  "label": "Ouvrir un shell projet (prod)",
  "type": "command",
  "command": "open",
  "args": [
    "-na", "iTerm",
    "--args",
    "--command=cd /Users/vous/Code/votre-projet && ./scripts/setup-env.sh prod; exec zsh -i"
  ]
}

Remplacez ces valeurs par les vôtres :

Pourquoi ça fonctionne

Variante : ouvrir un nouvel onglet dans la fenêtre iTerm existante

open -na iTerm ouvre toujours une nouvelle fenêtre. Si vous préférez un nouvel onglet dans la fenêtre iTerm courante, abandonnez l'approche CLI et passez par AppleScript :

{
  "label": "Ouvrir un shell projet (prod)",
  "type": "applescriptFile",
  "applescriptFile": "scripts/open-iterm-tab.applescript"
}

Avec scripts/open-iterm-tab.applescript (résolu relativement au directory de l'outil) :

tell application "iTerm"
  activate
  tell current window
    create tab with default profile command "/bin/zsh -lc 'cd /Users/vous/Code/votre-projet && ./scripts/setup-env.sh prod; exec zsh -i'"
  end tell
end tell

Cette variante exige la permission Automatisation (macOS la demande au premier lancement) et c'est la seule façon de contrôler le placement de l'onglet.

Prérequis