Skip to content
DeskSSH

Lifecycle

Versioning & restart-to-load

DeskSSH versions five things independently: the Desk, the Contract, the app-runtime, each app, and each adapter. Plugins declare the ranges they need; the Desk resolves them at load.

Under 0.x a minor bump is treated as potentially breaking — a caret range like ^0.1.0 does not admit 0.2.0. So an app pins a contract range and a desk range; an adapter pins a contract range. If a joint does not resolve, the plugin is declined with a readable reason instead of loading broken.

Plugins live under ~/.deskssh/plugins/. You add or update one from Settings → Import and it loads on the next restart — a predictable, auditable lifecycle, never hot code injection into a running session.

~/.deskssh/plugins bash
~/.deskssh/plugins/
├── adapters/      # .json  — OS adapters (declarative)
└── apps/          # .zip   — app plugins (bundled)