Deterministische Logik
Reine TypeScript-Schritte für fetches, Transformationen, branches, loops, parallele Arbeit, waits und verschachtelte pipeline-Aufrufe. Prüfe Typen, refaktorisiere, teste und versioniere sie wie normalen Code.
Erstelle typisierte TypeScript pipelines, die deterministischen Code, einmalige Inferenz und vollständige agent-Schleifen hinter default-deny-Berechtigungen und einem gateway unter deiner Kontrolle kombinieren. Betreibe schnelle Automatisierungen, cron jobs, webhooks, dauerhafte Freigaben und persistente Chat-workflows mit derselben Modulform.
$ npm install -g skelm
$ skelm init my-bot && cd my-bot && npm install
$ skelm run workflows/hello.workflow.mts --input '{"name":"world"}'
Ein workflow ist ein typisiertes TypeScript-Modul. Nutze deterministischen Code, Modell-Inferenz und agent-Schleifen direkt, und hoste denselben workflow über das gateway, wenn er schedules, webhooks, queues oder dauerhaften Zustand braucht.
Reine TypeScript-Schritte für fetches, Transformationen, branches, loops, parallele Arbeit, waits und verschachtelte pipeline-Aufrufe. Prüfe Typen, refaktorisiere, teste und versioniere sie wie normalen Code.
Ein Modellaufruf mit typisierter Eingabe und strukturiertem output. `infer()` ist für LLM-Urteilsvermögen ohne Tool-Schleife gedacht, gestützt durch provider wie OpenAI-kompatible Endpunkte, Anthropic, Pi, Vercel AI oder eigene backends.
Vollständige agent-Schritte mit tools, MCP-Servern, skills, workspaces und default-deny-Berechtigungen. Backends umfassen @skelm/agent, Opencode, Pi, Codex, Vercel AI, ACP agents und eigene provider.
Jede privilegierte Aktion läuft durch das gateway unter Berechtigungen, die im Code deklariert sind. Ein backend, das eine deklarierte Berechtigung nicht durchsetzen kann, scheitert beim Schrittstart, statt sie still zu umgehen.
Incident response aus den aktuellen Beispielen: parallele deterministische Triage, danach ein agent-Schritt mit expliziten Berechtigungen für tools, MCP, Dateisystem und Netzwerk.
import { agent, code, parallel, pipeline } from 'skelm'
import { z } from 'zod'
export default pipeline({
id: 'incident-response',
input: z.object({
incidentId: z.string(),
service: z.string(),
description: z.string(),
}),
output: z.object({
rootCause: z.string(),
immediateActions: z.array(z.string()),
}),
triggers: [{ kind: 'webhook', path: '/webhooks/incident' }],
steps: [
parallel({
id: 'triage',
steps: [
code({ id: 'search-issues', run: () => ({ issues: [] }) }),
code({ id: 'open-channel', run: () => ({ channel: 'inc-001' }) }),
],
}),
agent({
id: 'root-cause',
backend: 'opencode',
prompt: (ctx) => `Analyze this incident:\n${ctx.input.description}`,
permissions: {
allowedTools: ['gh.search_issues', 'slack.post_message'],
allowedMcpServers: ['github'],
allowedExecutables: [],
fsRead: [],
fsWrite: [],
networkEgress: { allowHosts: ['api.github.com', 'slack.com'] },
},
output: z.object({
rootCause: z.string(),
immediateActions: z.array(z.string()),
}),
maxTurns: 4,
}),
],
})
skelm wird als fokussierte Pakete ausgeliefert. Installiere das Meta-Paket `skelm` für runtime und CLI, und füge backend-, integration-, memory-, metrics- oder tracing-Pakete nach Bedarf hinzu.
skelmMeta-Paket — installiere dieses. Re-exportiert @skelm/core, liefert das skelm CLI-binary und hängt von CLI, scheduler und integration SDK ab, die für lokale Ausführung nötig sind.
@skelm/coreRuntime, Typen, builders, schemas, events, Berechtigungen, registries, backend-Schnittstelle, system-prompt-Komposition und primitive pipeline-Ausführung.
@skelm/cliCommand-line interface und programmatische Primitiven. Nicht ausgenommene Befehle dispatchen an das lokale gateway; `init`, `validate` und `gateway *` funktionieren ohne laufendes gateway.
@skelm/gatewayLanglebiger Orchestrator, der config, registries, Berechtigungen, audit, agent-Lifecycle, trigger, HTTP/SSE, dashboard API und die execution trust boundary besitzt.
@skelm/schedulerTrigger-Management für cron-, interval- und webhook-schedules mit Deduplizierung und Overlap-Policies; vom gateway für geplante Arbeit genutzt.
@skelm/integrationsTypisiertes Integrationspaket für Drittanbieter wie GitHub, Slack, Jira, Telegram, Matrix und chat UI trigger sources.
@skelm/integration-sdkAuthoring SDK für eigene skelm-Integrationen und trigger sources. Baue damit Konnektoren, die sich ins gateway einstecken.
@skelm/agentFirst-party natives agent backend. Führt infer() und agent() gegen OpenAI-kompatible Chat-Endpunkte mit in-process TrustEnforcer-Berechtigungsprüfungen aus.
@skelm/agentmemoryTypisierter REST-Client und gateway-verdrahteter AgentmemoryHandle für sitzungsübergreifenden recall. Operationen sind default-deny und laufen durch gateway enforcement.
@skelm/opencodeOpencode.ai coding-agent backend mit nativer Berechtigungszuordnung, granularer Durchsetzung und gateway-supervised Lifecycle-Unterstützung.
@skelm/piPi coding-agent SDK backend mit nativer tool-allowlist-Durchsetzung, infer()-Support, sandbox defaults und Queue-Steuerung.
@skelm/codexOpenAI Codex backend über @openai/codex-sdk mit boundary-Berechtigungszuordnung, MCP-Injektion, skill-Laden, session lifecycle und streaming.
@skelm/vercel-aiVercel AI SDK backend, das infer() und agent() mit tool-Filterung und Call-time-Berechtigungsprüfungen unter skelm policy antreibt.
@skelm/metricsPrometheus-format Metriken für skelm event streams: run-Zähler, step-Zeiten, permission denials, approvals und trigger fires.
@skelm/otelOpenTelemetry tracing für skelm event streams, das run- und step-spans ausgibt, ohne exporter für dich zu konfigurieren.
Installiere die CLI, scaffold ein Projekt oder nutze `skelm builder`, um einen workflow aus einer natürlichsprachlichen Spezifikation zu entwerfen.