const WebSocket = require('ws'); const os = require('os'); const pty = require('node-pty'); // Create WebSocket server const wss = new WebSocket.Server({ port: 6060 }); wss.on('connection', function connection(ws) { // Determine the shell to use based on the OS const shell = os.platform() === 'win32' ? 'powershell.exe' : 'bash'; // Spawn a terminal instance const ptyProcess = pty.spawn(shell, [], { name: 'xterm-color', env: process.env, }); // Send command to the terminal ws.on('message', (command) => { ptyProcess.write(command + '\n'); }); // Send terminal output to the WebSocket client ptyProcess.on('data', function (data) { ws.send(data); }); });