puter/packages/terminal/README.md
2024-04-12 20:53:32 -04:00

2.4 KiB

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"

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.

The terminal emulator needs a shell to communicate with. You can run it with Puter's shell, 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, 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.