Skip to content
DeskSSH

Plugin type · .zip

Apps — add a window to the desktop

An app is a packaged application that appears on the desktop like the built-in Files, Terminal or Monitor. It is a .zip: a manifest plus a bundled entry point.

The manifest declares what the app is and the version ranges it targets: a contract range (which capabilities it needs) and a desk range (which app-runtime it compiles against). DeskSSH resolves both at load and gracefully degrades if the host adapter lacks a capability.

An app never invents host commands. It calls Contract capabilities through the SDK, so every action stays inside the same audited, transparent path as the rest of the desktop.

Build bundles your entry to a single file and packs the .zip; you import it from Settings → Import.

apps/services/manifest.json json
{
  "schema": 1,
  "kind": "app",
  "id": "services",
  "name": "Services",
  "version": "0.1.0",
  "author": { "name": "you", "github": "you" },
  "license": "AGPL-3.0-or-later",
  "contract": "^0.1.0",
  "desk": "^0.2.0",
  "capabilities": ["listServices", "serviceAction"],
  "entry": "index.js",
  "icon": "ServerCog",
  "category": "system"
}
capabilities
Contract capabilities the app uses, so the launcher can degrade against hosts that lack them.
contract
Contract range the app requires, e.g. ^0.1.0.
desk
app-runtime (SDK) range the app compiles against, e.g. ^0.2.0.
entry
The bundled entry file inside the .zip, e.g. index.js.