Developer Mode
Extension views appear in the sidebar's Extensions tab (next to Sessions and Runbooks), one collapsible section per view; extensions without a view list their commands there.
Settings > Developer > Turn on Developer Mode. A purple DEV badge shows in the title bar while it is on (click it to come back here).
Load an extension folder
Load extension folder... and choose the folder with manifest.json. Shellaro checks the manifest, shows the permissions it asks for, and after you approve, the extension runs like an installed one: its commands are in the palette, its view in the sidebar. It activates lazily, exactly as it would when installed.
The folder stays yours: removing a development extension never deletes files.
The edit loop
shellaro ext dev
in the project folder builds dist/ and rebuilds on every change. While Developer Mode is on, Shellaro notices the new build (it checks every 1.5 s) and reloads the extension: the old worker is deactivated and stopped, the manifest and code are read again, and the extension is started again if it was running. A toast says "Reloaded after a change".
If the manifest now asks for more permissions, the extension stops in Needs approval until you click Approve (only the new permissions are listed).
What you can see
For each extension (development extensions first, then installed ones):
- state: Ready (enabled, not running), Running with its activation time, Starting, Disabled, Failed (with the reason), Incompatible (manifest problems), Needs approval
- the folder, granted permissions and network hosts, when it was activated
- the log: Shellaro's lifecycle messages, every API call that was denied,
console.*andshellaro.log.*output, uncaught errors with line numbers; Copy and Clear - Reload, Enable/Disable, Remove (development folders)
Failure handling you can try
- Throwing in
activate: the extension goes to Failed with the message. - An uncaught error later is logged; ten in a minute stop the extension.
- A busy loop: the heartbeat finds it unresponsive after about 8 to 23 seconds, the worker is terminated, pending calls fail, and Shellaro is unaffected. Reload starts it again.