A react component and some helpers for building terminals in electron apps.
Based on xterm and node-pty.
There are two parts to this:
- A child process that is managed by node-pty and
- a view that is managed by xterm.
import { PtyManager, createCommand } from '@loopmode/xpty';
const command = createCommand({
cmd: 'ls -lah',
cwd: '~'
});
const ptyProcess = PtyManager.connect(command);If you do not want to immediatly execute the command, pass false as second argument.
The returned object is an pty.IPty instance.
Basically, you render the XTerminal component and pass a ptyProcess prop to it.
import React from 'react';
import { XTerminal } from '@loopmode/xpty';
export const Example = ({ ptyProcess }) => {
return (
<XTerminal ptyProcess={ptyProcess}>
)
}- hook, e.g.
usePty, to get aptyProcesseasily - docs for existing features and props
- more features and props
- tests