I needed to run AI agent workflows locally, in TypeScript, with real permission enforcement. I spent time with the obvious options — n8n, OpenClaw, Hermes — and none of them quite fit. So I built skelm. This post is about what specifically didn't fit, what skelm does differently, and one concrete example of why the difference matters. What the existing tools get wrong (for my use case) n8n is a genuinely great tool. But it's built around visual flows and a node-graph model.