@tty-pt/ndc-tty
v1.0.0
Published
NDC PTY multiplexer module
Downloads
59
Maintainers
Readme
ndc-tty
WebSocket PTY multiplexer module for libndc
A dynamic module for ndc that adds:
- WebSocket-to-PTY bridging (browser terminal sessions)
- Telnet negotiation (NAWS window resize, ECHO, SGA)
- Browser terminal JS/CSS assets (
ndc.js,ndc.css,ndc-tty.js) shcommand handler — spawns a login shell over WebSocket
Quick Start
# Run ndc with the mux module loaded
ndc -d -A -p 8080 -m libndc-ttyCommand Line Options (inherited from ndc)
| Option | Description |
|--------|-------------|
| -m PATH | Load module from PATH (colon-separated list) |
| -A | Auto-authenticate all WebSocket connections |
| -p PORT | HTTP/WS listen port |
| -C PATH | Change directory before starting |
| -d | Don't detach (run in foreground) |
NPM for Web Terminal
Install the package:
npm install @tty-pt/libndc-ttyJavaScript/TypeScript API:
import { create } from "@tty-pt/libndc-tty";
// Create terminal instance
const term = create(document.getElementById("terminal"), {
proto: "ws", // or "wss" for secure
port: 4201,
sub: {
onOpen: (term, ws) => {
console.log("Connected to server");
},
onClose: (ws) => {
console.log("Disconnected, reconnecting...");
},
onMessage: (ev, arr) => {
// Return true to continue default processing
return true;
},
cols: 80,
rows: 25,
},
debug: false,
});See types/ndc.d.ts for full TypeScript definitions.
C API
#include <ttypt/ndc-tty.h>
// Spawn login shell on a WebSocket connection
call_ndc_mux_shell(fd);
// Spawn specific command
char *argv[] = { "/bin/bash", NULL };
call_ndc_mux_exec(fd, argv);Building
make
sudo make installRequires libndc and libndx.
Documentation
- API:
include/ttypt/ndc-tty.h - pkg-config:
libndc-tty.pc
Installation: See install docs
Entry points: src/libndc-tty.c (native), ndc-cli.js (npm)
