Outer Shell integrates with systemd on Linux and launchd on macOS. You add your app to Outer Shell by telling Outer Shell about an existing systemd/launchd unit. You do this via the socket API or by running outerctl.
So your job to create an app is:
- Create a command that starts a webserver on some local port or socket
- Register that command with your system’s service manager (systemd or launchd)
- Tell Outer Shell about it
Your app can rely on explicit start/stop via systemctl / launchctl, or it can rely on socket-based or port-based launching. For apps installed from Outer Shell UI, apps created from custom bash commands use the first approach, while the bundled apps like Files and Top use the latter.
You can use conventional HTML and JavaScript, or you can create an outerframe app. Go to outerframe.org for more info on building outerframe apps.
Here are some example apps, including the needed outerctl commands to register them: