puter/packages/terminal
Sam Atkins e355c77a4a Phoenix: Wait for apps to finish executing, and connect stdio to them
After launching an app, if successful, we connect stdio streams to it,
and wait for it to exit before we return to the prompt.

stdio is implemented as regular AppConnection messages:
- stdin:  `{ $: 'stdin',  data: Uint8Array }` from phoenix -> child
- stdout: `{ $: 'stdout', data: Uint8Array }` from child -> phoenix

Terminal and Phoenix now communicate with each other using the same
style, instead of 'input' and 'output' messages. This will help with
eventually running subshells.

SIGINT currently is not sent. We also suffer from the same "one more
read from stdin happens after app exits" bug that's in
PathCommandProvider where I copied the stdin code from.
2024-04-19 15:52:59 +01:00
..
assets Add missing asset for xterm, fix SDK url 2024-04-15 14:43:15 -04:00
config Copy over terminal 2024-04-12 20:53:32 -04:00
doc Copy over terminal 2024-04-12 20:53:32 -04:00
src Phoenix: Wait for apps to finish executing, and connect stdio to them 2024-04-19 15:52:59 +01:00
.gitignore Copy over terminal 2024-04-12 20:53:32 -04:00
LICENSE Copy over terminal 2024-04-12 20:53:32 -04:00
local.json5 Copy over terminal 2024-04-12 20:53:32 -04:00
notalicense-license-checker-config.json Copy over terminal 2024-04-12 20:53:32 -04:00
package-lock.json Copy over terminal 2024-04-12 20:53:32 -04:00
package.json Copy over terminal 2024-04-12 20:53:32 -04:00
README.md Update README.md files for monorepo'd projects 2024-04-12 23:54:41 -04:00
rollup.config.js Fix xterm.css not loading 2024-04-15 14:46:16 -04:00
run-http.json5 Copy over terminal 2024-04-12 20:53:32 -04:00
run-https.json5 Copy over terminal 2024-04-12 20:53:32 -04:00
run-phoenix-http.json5 Copy over terminal 2024-04-12 20:53:32 -04:00
run.json5 Copy over terminal 2024-04-12 20:53:32 -04:00

HiTIDE logo

Puter Terminal Emulator

« LIVE DEMO »

Puter.com · Discord · Reddit · X (Twitter)

animated demo


This is a Puter-compatible pure-javascript terminal emulator built on xtermjs. It integrates with an external shell provider. We develop and test the terminal emulator alongside Puter's shell: phoenix.

The Terminal as a Whole

This terminal emulator alongside phoenix give you an AGPL-3.0-licensed pure-javascript terminal experience which integrates with Puter's filesystem, AI services, and more.

Here are a few examples of what you can do:

  • ai "write me a story"
  • txt2img "a blue computer on a cloud" > puter.png
  • neofetch
  • echo $(echo "command substitution")
  • cat example.txt | grep "find me"
  • cat example.json | jq "name"