Skip to main content
Le module PTY, ou pseudo-terminal, permet d’exécuter des sessions de terminal interactives dans la sandbox avec une communication bidirectionnelle en temps réel. Une session PTY prend en charge le streaming en temps réel, en transmettant continuellement la sortie du terminal via des callbacks à mesure qu’elle est produite, et fournit une entrée bidirectionnelle, permettant d’envoyer des données pendant que la session est toujours en cours d’exécution. Elle offre également une expérience de shell interactif avec un comportement complet de terminal, y compris les couleurs ANSI et les séquences d’échappement, et prend en charge la persistance de session, afin qu’une session en cours puisse être détachée puis reconnectée ultérieurement.

Créer une session PTY

Vous pouvez utiliser sandbox.pty.create() pour démarrer un shell bash interactif.
Le PTY lance un shell bash interactif avec TERM=xterm-256color, de sorte que les couleurs ANSI et les séquences d’échappement fonctionnent comme prévu.

Délai d’expiration

Le paramètre de délai d’expiration est configurable et détermine combien de temps la session PTY reste active. Vous pouvez garder une session PTY ouverte indéfiniment en définissant timeoutMs: 0 en JavaScript ou timeout=0 en Python. Par défaut, la session utilise un délai d’expiration de 60 secondes.

Envoyer une entrée au PTY

Vous pouvez utiliser sendInput() en JavaScript ou send_stdin() en Python pour envoyer des données au terminal. En JavaScript, sendInput() renvoie une Promise, et toute sortie du terminal est transmise via le callback onData plutôt que renvoyée directement. En Python, send_stdin() se termine de manière synchrone, et toute sortie du terminal est transmise via le callback on_pty passé à wait().

Redimensionner le terminal

Vous pouvez utiliser resize() pour notifier le PTY lorsque l’utilisateur modifie la taille de la fenêtre du terminal. Les valeurs cols et rows représentent les dimensions du terminal en caractères plutôt qu’en pixels.

Se déconnecter et se reconnecter

Une session PTY peut rester active même après la déconnexion du client. Vous pouvez détacher la session et vous y reconnecter plus tard avec un nouveau gestionnaire de données. Cela peut être utilisé pour récupérer après des interruptions réseau, prendre en charge l’accès au terminal depuis plusieurs clients et préserver l’état de la session lors des reconnexions.

Arrêter le PTY

Vous pouvez utiliser kill() pour terminer la session PTY.

Attendre la fin du PTY

Vous pouvez utiliser wait() pour bloquer l’exécution jusqu’à la fin de la session de terminal, par exemple lorsque l’utilisateur saisit exit.

Terminal interactif (semblable à SSH)

Vous pouvez utiliser la même API sandbox.pty décrite ci-dessus pour créer un terminal entièrement interactif comme SSH, en gérant le mode brut, la transmission de stdin et les événements de redimensionnement du terminal.
Dernière modification le 10 août 2026