@ai-matrx/terminal
v0.1.24
Published
The AI Matrx terminal: xterm 6 with fit (to its box or to the visual viewport above an on-screen keyboard), a theme that follows the app, a transport-free handle any PTY drives, phone-grade touch (momentum scroll, long-press word select, copy), a Termius-
Maintainers
Readme
@ai-matrx/terminal
The AI Matrx terminal: xterm 6 with everything a host would otherwise rebuild, phone first.
pnpm add @ai-matrx/terminal| Entry | What it is |
|---|---|
| @ai-matrx/terminal | Framework-free core: accessory keys and their bytes, the Ctrl/Alt latch, the touch gesture recognizer, selection and visual-viewport math, the theme, and createLineEditor. |
| @ai-matrx/terminal/react | <Terminal> and <AccessoryBar>. |
| @ai-matrx/terminal/styles.css | Structural CSS (imported by <Terminal> itself). |
| @ai-matrx/terminal/tokens.css | Default --mxt-* colours, for a host without its own theme. |
A PTY
import { Terminal } from "@ai-matrx/terminal/react";
<Terminal
fit="viewport" // phones: grow to the bottom of the visual viewport, above the keyboard
onReady={(term) => pty.onOutput((bytes) => term.write(bytes))} // write() resolves after parse
onData={(keys) => pty.write(keys)} // already modified by the bar's Ctrl / Alt
onResize={({ cols, rows }) => pty.resize(cols, rows)}
/>;One command per call (no PTY)
import { createLineEditor } from "@ai-matrx/terminal";
const editor = createLineEditor({
write: (d) => term.xterm.write(d),
prompt: () => "$ ",
history: () => commands,
onSubmit: async (line) => {
term.write(await run(line));
editor.done(); // prompt again, then any typeahead or pasted lines
},
});
// <Terminal onData={(d) => editor.input(d)} … />On a coarse pointer the terminal turns on its phone layer: tap to type, drag to scroll with
momentum, press and hold to select a word (drag to extend, Copy), and a 44px keyboard bar
(Esc Tab Ctrl Alt, arrows, | / ~ -, Home End PgUp PgDn, Paste, hide keyboard). Ctrl: tap = the
next key, double-tap = locked.
Colours: map the --mxt-* tokens to your theme, or import tokens.css.
MIT © AI Matrix Engine
