Skip to content
Bindings to forkpty(3) for node.js.
C++ JavaScript Python Makefile
Latest commit 7d05463 Jan 17, 2016 @chjj Merge pull request #145 from apoco/paused-socket
Optional resuming of the socket


forkpty(3) bindings for node.js. This allows you to fork processes with pseudo terminal file descriptors. It returns a terminal object which allows reads and writes.

This is useful for:

  • Writing a terminal emulator.
  • Getting certain programs to think you're a terminal. This is useful if you need a program to send you control sequences.

Example Usage

var pty = require('pty.js');

var term = pty.spawn('bash', [], {
  name: 'xterm-color',
  cols: 80,
  rows: 30,
  cwd: process.env.HOME,
  env: process.env

term.on('data', function(data) {

term.resize(100, 40);
term.write('ls /\r');



  • Add tcsetattr(3), tcgetattr(3).
  • Add a way of determining the current foreground job for platforms other than Linux and OSX/Darwin.

Contribution and License Agreement

If you contribute code to this project, you are implicitly allowing your code to be distributed under the MIT license. You are also implicitly verifying that all code is your original work. </legalese>


Copyright (c) 2012-2015, Christopher Jeffrey (MIT License).

Something went wrong with that request. Please try again.