mirror of
https://github.com/HeyPuter/puter
synced 2024-11-15 06:15:47 +00:00
3526d5d9eb
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. |
||
---|---|---|
.. | ||
assets | ||
config | ||
doc | ||
src | ||
.gitignore | ||
LICENSE | ||
local.json5 | ||
notalicense-license-checker-config.json | ||
package-lock.json | ||
package.json | ||
README.md | ||
rollup.config.js | ||
run-http.json5 | ||
run-https.json5 | ||
run-phoenix-http.json5 | ||
run.json5 |
Puter Terminal Emulator
« LIVE DEMO »
Puter.com
·
Discord
·
Reddit
·
X (Twitter)
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"