When I started building Terminalwire over six months ago, I didn’t have much time to consider licensing, so I keep it closed source and though, “I’ll open source it later when I have more time to think about it.”
Today is that day! Terminalwire, including the source code, is now available under the GNU Affero General Public License (AGPL). This means that you can confidently use Terminalwire in your project and not have to worry about what happens if the company behind it goes 🥷💨.
If AGPL doesn’t work for your organization don’t worry, Terminalwire is still available under a commercial license.
Terminalwire streams the command-line from your web framework to a thin-client that runs on your users’ workstations. It borrows a lot of concepts from web browsers like cookies, same-domain policies so that it’s familiar to people who use web frameworks, like Rails.
The source code is available on GitHub. Do me a favor and give it a star ⭐️ while you’re there!
The Terminalwire server is split into two parts:
Terminalwire Server - Most of the Terminalwire server is implemetend in here, including the protocol that emits commands to the thin-client and the Thor wrapper. It’s designed to work on Rack-compatible web servers across a wide variety of Ruby servers & frameworks.
Terminalwire Rails - The Rails integration for Terminalwire provides generators so you can run commands like rails g terminalwire:install MyApp
and you get the files you expect in the ./app/terminal/*.rb
directory.
The Terminalwire thin-client is split into a few parts too:
Terminalwire Client - The Terminalwire client is implemented in here, including the protocol that receives commands from the server and the UI that displays them.
Terminalwire executable - The Terminalwire executable is implemented in here, including the protocol that receives commands from the server and the UI that displays them.
If you like what you read and want to see more articles like this, please consider using Terminalwire for your web application’s command-line interface. In under 10 minutes you can build a command-line in your favorite language and web framework, deploy it to your server, then stream it to the Terminalwire thin-client that runs on your users desktops. Terminalwire manages the binaries, installation, and updates, so you can focus on building a great CLI experience.