Ir para o conteúdo
DeskSSH

SDK

O app-runtime

Os apps compilam contra @deskssh/app-runtime — o mesmo SDK que os apps nativos usam. Ele dá um hook de registro, contexto de sessão, primitivas de UI e chamadas ao gateway tipadas.

Sua entrada se auto-registra com registerApp, devolvendo uma definição de app: id, título, ícone, as faixas de versão e uma função render. Esse render recebe um AppContext com o tradutor t, a sessão ao vivo e ajudantes como openTerminal e openEditor.

O runtime também reexporta o kit de UI do host (Card, Button, ScrollArea…), o conjunto completo de ícones e as funções do gateway (listServices, serviceAction e o resto do Contract). Externalize react e @deskssh/app-runtime no build para que seu app compartilhe as instâncias únicas do 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} />;
  },
}));

Comece pelo app de referência

O plugin app-services no repo do core é um exemplo completo e compilável — o caminho mais rápido para um scaffold funcional.