Puter Terminal Emulator
« LIVE DEMO »
Puter.com
·
Discord
·
Reddit
·
X (Twitter)
This is a [Puter](https://puter.com)-compatible pure-javascript terminal emulator
built on [xtermjs](https://xtermjs.org/).
It integrates with an external shell provider.
We develop and test the terminal emulator alongside [Puter's shell: phoenix](https://github.com/HeyPuter/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"`
## Quickstart
**Note:** we've released Puter's terminal and shell very recently, so you may
run into some hurdles.
If you encounter any inconvenience we'd greatly appreciate
[an issue report](https://github.com/HeyPuter/terminal/issues/new).
The terminal emulator needs a shell to communicate with.
You can run it with Puter's shell, [phoenix](https://github.com/HeyPuter/phoenix).
1. Clone `phoenix` as a sibling directory to this repo, to get a directory
structure like the following:
```
my-puter-repos/
terminal/
phoenix/
```
2. Ensure you've run `npm install` in both repos
3. Install `dev-runner`
```
npm install -g @heyputer/dev-runner
```
4. While `cd`'d into this repo, run `run-phoenix-http.json5`
```
dev-runner ./run-phoenix-http.json5
```
5. Navigate to [http://127.0.0.1:8082](http://127.0.0.1:8082),
and use the `login` command to access files on puter.com.
**Note:** You will need to ensure the login popup is allowed.
If you choose to allow it _after_ the popup was blocked,
it will break; you need to allow always and then reload.