A minimal HTTP server that executes shell commands via simple HTTP endpoints, ideal for prototyping and remote control.
shell2http is a command-line tool that creates an HTTP server to execute shell commands via defined endpoints. It solves the problem of quickly exposing system scripts or commands as web services for remote access, automation, or testing without writing custom server code.
Developers and system administrators who need to create simple HTTP interfaces for shell scripts, automate tasks via webhooks, or mock APIs during development.
Developers choose shell2http for its extreme simplicity and zero-configuration approach, allowing them to turn any shell command into a web endpoint instantly, with built-in features like form handling, authentication, and CGI support.
Executing shell commands via HTTP server
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Define endpoints and shell commands directly from the command line with just two arguments, eliminating the need for custom server code, as shown in the simple usage examples.
Parses query parameters and file uploads into environment variables like $v_NNN and $filepath_ID, enabling dynamic script inputs without complex parsing, demonstrated in the form and upload examples.
Cache command output for specified seconds using the -cache option to reduce redundant executions, improving efficiency for repetitive requests such as monitoring endpoints.
Available via binaries, Docker, and package managers for macOS, Linux, Windows, and Raspberry Pi, ensuring easy installation and wide compatibility across environments.
Exposing shell commands directly can lead to command injection if user inputs are not sanitized, and the README lacks comprehensive security best practices beyond basic auth.
Does not support advanced HTTP features like WebSockets, custom middleware, or complex routing, restricting its use for modern, feature-rich web applications.
Each HTTP request spawns a new shell process, which can be slow and resource-intensive under high load compared to dedicated HTTP servers or frameworks.