HiTIDE logo

Puter Terminal Emulator

« LIVE DEMO »

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

animated demo


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.