HeyPuter / terminal

⌨️ Web-based terminal in pure JavaScript
https://puter.com/app/terminal
GNU Affero General Public License v3.0
115 stars 15 forks source link
javascript terminal terminal-emulator web-console web-terminal

Important notice

Puter's terminal has moved. Click here to see what's new!


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:

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.