Default-deny by design
Every agent step declares its tools, executables, MCP servers, network egress, and filesystem roots. Anything not listed is denied — and the gateway is the only thing that enforces it.
Author pipelines as typed TypeScript. Compose them with Skills (and MCP servers when you need them). Run under default-deny permissions on a gateway you own.
Most "agent frameworks" make it easy to demo a chatbot and impossible to operate one. Tool calls leak credentials, prompts mutate at runtime, and the production story is "trust us." Skelm is the opposite: every privileged action — exec, network, filesystem, tool dispatch, MCP — flows through a gateway under permissions you declare in code, and every workflow is a typed module you can grep, refactor, and unit-test.
It sits in a deliberately narrow niche: between a one-off LangChain script and a managed agent platform. If you want to run agentic and deterministic workflows on your own infrastructure, with security primitives that don't disappear when the demo ends, that's what skelm is for.
Start with the Quickstart for the five-minute path, or skim the Recipes to see complete examples.