Terminal7 is a terminal multiplexer re-designed for remote servers and hi-res touch screens. A reincaranation of tmux and screen, Terminal7 is a hybrid app that works best on the iPad.
The code here is mainly ES6 with no framworks. We do use the following projects:
- capacitorjs for app packaging & plugins
- xterm.js for terminal emulation
- noble-ed25519 for key generation
- pion.ly for the WebRTC backend
- vite for packaging
- vitest for testing
For networking we use SSH or WebRTC, the web standard for real time communications. WebRTC is UDP based with wide support and a great implmentation in go - pion/webrtc - that we use as a base for our server's agent.
yarn install
To start terminal 7 in the browser use:
yarn start
and point your browser at http://localhost:3000. use npm run
for the list of
commands available
Terminal7 can use WebRTC data channels to stream standard i/o, providing secure, fast communication. Designed by the W3C for the mobile web, WebRTC let's T7 work well in bad internet weather and use a control data channel for advanced features like the clipboard integration and file sharing (soon...).
Our open source WebRTC server is written in go and is based on the pion server. You can install it using the one line installer or from the source
bash <(curl -sL https://get.webexec.sh)
We welcome bug reports, ideas for new features and pull requests. Please feel free to open an issue or if you are ready to code yourself, follow these steps:
- Fork it
- Clone it
yarn install
git remote add up [email protected]:tuzig/terminal7
git switch -c my-new-feature
git pull --rebase up master
dailyyarn test
to test your changes- Commit your changes (git commit -am 'Add some feature')
- Push to the branch (git push origin my-new-feature)
- Open a new pull request