Skip to main content
De PTY-, of pseudo-terminal-, module maakt interactieve terminalsessies binnen de sandbox mogelijk met realtime, bidirectionele communicatie. Een PTY-sessie ondersteunt realtime streaming, waarbij terminaluitvoer continu via callbacks wordt geleverd terwijl deze wordt geproduceerd, en biedt bidirectionele invoer, waardoor gegevens kunnen worden verzonden terwijl de sessie nog actief is. Het biedt ook een interactieve shell-ervaring met volledig terminalgedrag, inclusief ANSI-kleuren en escape-sequenties, en ondersteunt sessiepersistentie, zodat een actieve sessie kan worden losgekoppeld en later opnieuw kan worden verbonden.

Een PTY-sessie maken

Je kunt sandbox.pty.create() gebruiken om een interactieve bash-shell te starten.
De PTY start een interactieve bash-shell met TERM=xterm-256color, zodat ANSI-kleuren en escape-sequenties werken zoals verwacht.

Timeout

De timeout-instelling is configureerbaar en bepaalt hoelang de PTY-sessie actief blijft. Je kunt een PTY-sessie onbeperkt openhouden door timeoutMs: 0 in JavaScript of timeout=0 in Python in te stellen. De sessie gebruikt standaard een timeout van 60 seconden.

Invoer naar PTY verzenden

Je kunt sendInput() in JavaScript of send_stdin() in Python gebruiken om gegevens naar de terminal te verzenden. In JavaScript retourneert sendInput() een Promise, en alle terminaluitvoer wordt geleverd via de callback onData in plaats van direct te worden geretourneerd. In Python wordt send_stdin() synchroon voltooid, en alle terminaluitvoer wordt geleverd via de callback on_pty die aan wait() wordt doorgegeven.

De terminalgrootte wijzigen

Je kunt resize() gebruiken om de PTY te informeren wanneer de gebruiker de grootte van het terminalvenster wijzigt. De waarden cols en rows vertegenwoordigen de terminalafmetingen in tekens in plaats van pixels.

Verbinding verbreken en opnieuw verbinden

Een PTY-sessie kan actief blijven, zelfs nadat de client de verbinding heeft verbroken. Je kunt de sessie loskoppelen en er later opnieuw verbinding mee maken met een nieuwe data-handler. Dit kan worden gebruikt om te herstellen van netwerkonderbrekingen, terminaltoegang vanaf meerdere clients te ondersteunen en sessiestatus te behouden tussen nieuwe verbindingen.

De PTY beëindigen

Je kunt kill() gebruiken om de PTY-sessie te beëindigen.

Wachten tot PTY wordt afgesloten

Je kunt wait() gebruiken om te blokkeren totdat de terminalsessie eindigt, bijvoorbeeld wanneer de gebruiker exit typt.

Interactieve terminal (SSH-achtig)

Je kunt dezelfde sandbox.pty API gebruiken die hierboven is beschreven om een volledig interactieve terminal zoals SSH te maken door raw mode, stdin-forwarding en terminal resize events af te handelen.
Laatst gewijzigd op 10 augustus 2026