Saltar al contenido
DeskSSH

SDK

El app-runtime

Las apps compilan contra @deskssh/app-runtime — el mismo SDK que usan las apps integradas. Te da un hook de registro, contexto de sesión, primitivas de UI y llamadas al gateway tipadas.

Tu entrada se auto-registra con registerApp, devolviendo una definición de app: id, título, icono, los rangos de versión y una función render. Ese render recibe un AppContext con el traductor t, la sesión en vivo y ayudantes como openTerminal y openEditor.

El runtime también reexporta el kit de UI del host (Card, Button, ScrollArea…), el set completo de iconos y las funciones del gateway (listServices, serviceAction y el resto del Contract). Externaliza react y @deskssh/app-runtime al compilar para que tu app comparta las instancias únicas del host.

src/index.tsx tsx
import {
  registerApp,
  Card, CardHeader, CardTitle, CardContent,
  listServices, icons,
} from '@deskssh/app-runtime';

registerApp((t) => ({
  id: 'services',
  title: t('services.title'),
  description: t('services.description'),
  icon: icons.ServerCog,
  version: '0.1.0',
  contract: '^0.1.0',
  author: { name: 'you', github: 'you' },
  capabilities: ['listServices', 'serviceAction'],
  render: (ctx) => {
    // ctx.session, ctx.t, ctx.openTerminal, ctx.openEditor
    return <ServicesView session={ctx.session} />;
  },
}));

Empieza desde la app de referencia

El plugin app-services del repo del core es un ejemplo completo y compilable — el camino más rápido a un scaffold funcional.