Features
Sentinel is a focused utility application. Its core functionality can be grouped into four areas.
Script Management
Add, edit, and delete scripts and folders; start, stop, and restart from the menu bar.
1. Script Management
- Add, edit, and delete scripts — a name, the shell command (I recommend using a shell script file - e.g.
./serve.sh), and a working directory. - Organise scripts into folders, with add/rename/delete and drill-in navigation from the menu bar.
- Start, stop, and restart from the menu bar, with a status dot per row.
- At the folder level, you will see an activity bar that gives you a view of what proportion of scripts in that folder are running.
- Search flattens folder grouping while you’re typing so you can search across all folders.
- Runs each script through an interactive login shell, so anything sourced in your
.zshrc—nvm,rbenv, etc. should just work. - Stop and restart clean up forked child processes, not just the top-level process.
Adding, editing, and deleting a script
Open the editor
Click the + button in the menu bar dropdown (or Edit on an existing row).
Fill in the details
A name, the command to run, and the working directory it should run from. Optionally assign it to a folder.
Save
The script appears in the menu bar list immediately — it isn't started for you.
To edit, click the row’s Edit action and change any of the same fields; Sentinel keeps the script’s running/stopped state across the edit. To delete, use the row’s Delete action — this stops the script first if it’s running.
Adding, renaming, and deleting a folder
Folders are a flat, single-level grouping — a script belongs to at most one folder, which becomes the Folder half of its Folder/Name identifier.
- Add a folder from the folder management screen, or by picking “new folder” while assigning a script to one.
- Rename a folder from the same screen; every script inside it picks up the new
Folder/Nameidentifier automatically. - Delete a folder to ungroup its scripts back to the top level — it does not delete the scripts themselves.
Drill into a folder from the menu bar to see just its scripts; start typing to search and the folder grouping flattens so results span every folder at once.
2. Reliability
- Auto-restart on crash, on by default, but can be disabled on a per-script basis.
- A rolling-window guard stops crash-loops and avoids infinite restart loops.
- A notification is triggered when auto-restart trips, or when a script crashes with auto-restart off.
A clean exit 0 is not treated as a crash.
3. Logging
- A live-tailing log window per script, combined
stdoutandstderr, in its own window. - Copy, save to file, clear, or start/stop straight from the log window.
Saving to file is the only way to persist output long-term — the in-memory buffer is capped for saftey.
4. Configuration
Configuration options can be accessed in Sentinel’s settings dialog.
General
Launch at login, update checks (manual and automatic), install command line tool (CLI).
Data
JSON export/import backup, option to delete-all scripts.
Footer
Configurable footer stats, including (whole-Mac) CPU and memory utilisation.
About
Version and application info — includes a link to this site.
Launch at login
Settings → General → Launch at login. Sentinel opens as a menu bar app on login, with every script stopped — script status isn’t remembered across a restart of Sentinel or a reboot of the Mac, so nothing auto-starts on its own; start what you need from the menu bar.
Sentinel is intended for managing that middle ground between running something in your terminal and moving on, and having a service handled via a scheduler. If you need the latter, something to run persistently, take a look at utilising launchd.
Export and import
Settings → Data covers backup and transfer, all as JSON:
- Export all — every script and folder, for a full backup or moving to another Mac.
- Export a folder — just that folder’s scripts, for sharing a project’s setup with a teammate without handing over your whole library.
- Export a script — a single script definition, for sending one command to someone else.
Import reads the same JSON back in. Importing a folder or full-library export recreates any folders that don’t already exist by name; importing a single script drops it in at the top level (or into its folder, if that folder already exists).
Delete all scripts and folders
Settings → Data → Delete all clears every script and folder in one step — stopping anything currently running first. There’s no per-item confirmation after that, so treat it as a hard reset, not a bulk-delete shortcut for a handful of items.
Paired with export/import, it’s a clean way to reset a library that’s grown messy: export everything first as a safety copy, delete all, then re-import only the folders you actually want kept.
Footer options
Settings → Footer controls the status strip shown at the bottom of the menu bar dropdown. It can show whole-Mac CPU and memory utilisation — not just Sentinel’s own — so you get a system-level read at a glance without opening Activity Monitor. Each stat can be toggled independently; turn both off to keep the footer minimal.
If you have a need to do more with Sentinel from outside the user interface, see the section on Automation.