[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-81651":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":14,"stars7d":17,"stars30d":17,"stars90d":16,"forks30d":16,"starsTrendScore":18,"compositeScore":19,"rankGlobal":10,"rankLanguage":10,"license":20,"archived":21,"fork":21,"defaultBranch":22,"hasWiki":23,"hasPages":23,"topics":24,"createdAt":10,"pushedAt":10,"updatedAt":45,"readmeContent":46,"aiSummary":47,"trendingCount":16,"starSnapshotCount":16,"syncStatus":14,"lastSyncTime":48,"discoverSource":49},81651,"skelm","scottgl9\u002Fskelm","scottgl9","skelm - open-source flexible agentic workflow engine for secure, long-running workflows. Authoring, scheduling, and operating typed pipelines that mix code, inference, and agents under default-deny permissions.","https:\u002F\u002Fskelm.dev",null,"TypeScript",25,8,2,41,0,4,6,2.86,"MIT License",false,"main",true,[25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44],"acp","agent","agentic","agentic-ai","agents","ai","ai-skills","automation","codex","mcp","n8n-alternative","opencode","orchestration","pi","pipeline","scheduler","telegram","vercel-ai","workflow","workflow-engine","2026-06-12 02:04:18","\u003Cp align=\"center\">\n  \u003Cimg src=\"docs\u002Fpublic\u002Fbanner.svg\" alt=\"skelm banner\" \u002F>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Cstrong>Build secure, agentic workflows in TypeScript. Run them anywhere Node runs.\u003C\u002Fstrong>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Fskelm\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fv\u002Fskelm\" alt=\"npm version\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fscottgl9.github.io\u002Fskelm\u002F\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fdocs-online-blue\" alt=\"Docs\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\".\u002FLICENSE\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-MIT-blue\" alt=\"License\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fscottgl9\u002Fskelm\u002Fstargazers\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002Fscottgl9\u002Fskelm\" alt=\"GitHub stars\" \u002F>\u003C\u002Fa>\n\u003C\u002Fp>\n\n---\n\n## What is skelm?\n\nskelm is a TypeScript framework for authoring and running **workflows** — typed orchestrations that mix deterministic code, LLM inference, and full agent loops behind a secure, default-deny execution model.\n\n**Key capabilities:**\n\n- **TypeScript-native** — Real `.mts` modules, no DSL or JSON config\n- **Default-deny security** — Every permission must be explicitly declared\n- **Multi-backend agents** — First-party agent, Pi, Opencode (native or ACP), Codex, Vercel AI, ACP (Copilot, Claude Code), Anthropic, OpenAI\n- **Multimodal prompts** — `llm()` and `agent()` accept image content parts; vision routed through vision-capable backends, denied at step start for the rest. Pair with `ctx.artifacts` to persist screenshots and other binary evidence on the run record\n- **MCP-native** — Model Context Protocol servers lifecycle-managed by the gateway\n- **Skill support** — Reusable `SKILL.md` capability bundles injected into agent system prompts; permission-gated via `allowedSkills`; auto-discovered from `skills\u002F**\u002FSKILL.md` by the gateway registry\n- **Trigger-rich runtime** — Cron, intervals, and webhooks via `@skelm\u002Fscheduler`; poll, queue, file-watch, and event-source triggers via the gateway's `TriggerCoordinator`\n- **Cross-session memory** — Optional [agentmemory](https:\u002F\u002Fgithub.com\u002Frohitg00\u002Fagentmemory) integration (`@skelm\u002Fagentmemory`): agents capture observations and recall prior context across runs, gated by a default-deny `agentmemory` permission and disabled until you opt in\n\n> **Status:** Early development. APIs are unstable until v1. Feedback and contributions welcome.\n\n---\n\n## Quick start\n\n```bash\n# Install the CLI\nnpm install -g skelm\n\n# Scaffold a project\nskelm init my-bot && cd my-bot && npm install\n\n# Run your first workflow\nskelm run workflows\u002Fhello.workflow.mts --input '{\"name\":\"world\"}'\n```\n\n`skelm run` (and the other workflow \u002F state commands) dispatch to a local **gateway** process. If none is running the CLI auto-starts one in the background; for a supervised service that survives reboots, install it with:\n\n```bash\nskelm gateway install --systemd   # linux\nskelm gateway install --launchd   # macOS\n```\n\n`skelm init` scaffolds canonical `.mts` modules (`skelm.config.mts` and `workflows\u002F*.mts`) so Node's native loader handles them regardless of `package.json` `\"type\"`. From here you can edit workflows, add agent steps, schedule them, or stand up the gateway:\n\n```bash\nskelm schedule add workflows\u002Fhello.workflow.mts --cron '0 * * * *'  # cron job\nskelm gateway start                                                # foreground (development)\n```\n\n📖 **Next:** [Quickstart guide](.\u002Fdocs\u002Fquickstart\u002FREADME.md)\n\n---\n\n## Backend support\n\nskelm supports multiple AI backends through pluggable adapters. Choose the one that fits your use case:\n\n| Backend | Package | Best for |\n|---------|---------|----------|\n| **First-party** | `@skelm\u002Fagent` | OpenAI-compatible LLM, in-process permission enforcement, built-in tool surface, no external runtime dependency |\n| **Pi** | `@skelm\u002Fpi` | Pi coding agent with full permission enforcement |\n| **Opencode** | `@skelm\u002Fopencode` | Open-source coding agent backend (native; ACP transport also supported) |\n| **Codex** | `@skelm\u002Fcodex` | OpenAI Codex via the official `@openai\u002Fcodex-sdk` — sandbox-aware (`read-only` \u002F `workspace-write`), MCP + skills injection, streaming, thread resumption |\n| **Vercel AI** | `@skelm\u002Fvercel-ai` | Vercel AI SDK with streaming support |\n| **ACP** | Built-in | GitHub Copilot, Claude Code via ACP (Opencode also available as native — see above) |\n\nSee [Backend documentation](.\u002Fdocs\u002Fbackends\u002FREADME.md) for setup guides, and [Codex backend](.\u002Fdocs\u002Fbackends\u002Fcodex.md) for OpenAI Codex specifically. Codex authenticates via the host `codex` CLI (`codex login`) or `CODEX_API_KEY`; skelm validates permissions at the boundary while Codex enforces its sandbox in-process.\n\n---\n\n## Core concepts\n\n### Workflow step kinds\n\n- **`code()`** — Deterministic logic, API calls, data transformation\n- **`llm()`** — Single LLM inference call\n- **`agent()`** — Multi-turn agent loops with tools, MCP, and skills\n\n### Control flow primitives\n\n- **`parallel`** — Run steps concurrently\n- **`forEach`** — Iterate over collections\n- **`branch`** — Conditional execution\n- **`loop`** — Repeat with exit conditions\n- **`wait`** — Pause and resume later\n- **`invoke`** — Call another pipeline by ID\n\n### Security model\n\n- **Default-deny permissions** — Tools, MCP servers, network hosts, filesystem roots must be declared\n- **Network egress enforcement** — Embedded CONNECT proxy blocks undeclared outbound connections\n- **Per-agent workspaces** — Isolated filesystem roots prevent cross-step corruption\n- **Tamper-evident audit** — Hash-chained decision journals for compliance\n\n---\n\n## What you can build\n\n- **Coding assistants** — Reachable on chat, open PRs in persistent workspaces\n- **Queue workers** — Watch Jira, GitHub, or email and act on tickets\n- **Email triage** — Classify, summarize, and journal decisions for audit\n- **Digest automation** — Fan out, enrich with LLM, post to Slack\n- **HTTP webhooks** — Typed workflows triggered by external events\n- **Research agents** — Poll sources, store findings, resume after restart\n- **Compliance bots** — Watch S3 buckets, run checks, escalate to agents\n- **UI automation** — Vision LLM + screenshot artifacts; see the [foundations recipe](.\u002Fdocs\u002Frecipes\u002Fui-automation-foundations.md)\n\n📁 See [`examples\u002F`](.\u002Fexamples\u002F) for runnable starting points.\n\n---\n\n## Package architecture\n\n| Package | Purpose |\n|---------|---------|\n| `skelm` | Meta-package — install this, re-exports `@skelm\u002Fcore` + CLI |\n| `@skelm\u002Fcore` | Runtime, types, builders, permission model, event bus |\n| `@skelm\u002Fcli` | CLI commands — `run`, `schedule`, `gateway`, `audit` |\n| `@skelm\u002Fgateway` | Long-running orchestrator: HTTP, scheduler, agent lifecycle |\n| `@skelm\u002Fscheduler` | Cron, interval, and webhook triggers (poll, queue, file-watch, event-source live in `@skelm\u002Fgateway`) |\n| `@skelm\u002Fintegrations` | Typed connectors for GitHub, Slack, Telegram |\n| `@skelm\u002Fintegration-sdk` | Authoring SDK for building custom skelm integrations |\n| `@skelm\u002Fpi` | Pi coding-agent backend |\n| `@skelm\u002Fopencode` | Opencode coding-agent backend |\n| `@skelm\u002Fcodex` | OpenAI Codex backend via the official `@openai\u002Fcodex-sdk` |\n| `@skelm\u002Fvercel-ai` | Vercel AI SDK backend with streaming |\n| `@skelm\u002Fagent` | First-party native agent backend with built-in tools |\n| `@skelm\u002Fagentmemory` | Optional cross-session memory via the agentmemory server: typed REST client + gateway-wired handle |\n| `@skelm\u002Fmetrics` | Prometheus-format metrics |\n| `@skelm\u002Fotel` | OpenTelemetry tracing |\n\n---\n\n## Documentation\n\n- **[Quickstart](.\u002Fdocs\u002Fquickstart\u002FREADME.md)** — Get started in 60 seconds\n- **[Backends](.\u002Fdocs\u002Fbackends\u002FREADME.md)** — Provider architecture and setup\n- **[Guides](.\u002Fdocs\u002Fguides\u002F)** — Testing, plugins, authoring patterns\n- **[Recipes](.\u002Fdocs\u002Frecipes\u002F)** — Complete workflow examples\n- **[Reference](.\u002Fdocs\u002Freference\u002F)** — CLI, HTTP API, OpenAPI spec\n- **[Contributing](.\u002F.github\u002FCONTRIBUTING.md)** — How to contribute\n\n---\n\n## Automated testing\n\nskelm is tested against itself. [**skelm-self-test**](https:\u002F\u002Fgithub.com\u002Fscottgl9\u002Fskelm-self-test) is a live agentic harness that runs skelm workflows to verify skelm — no external test runner required.\n\n```bash\n# From the skelm-self-test repo\npnpm install\nskelm run workflows\u002Ftest-runner.workflow.mts\ncat results\u002Flatest.md\n```\n\nSee [skelm-self-test](https:\u002F\u002Fgithub.com\u002Fscottgl9\u002Fskelm-self-test) for setup, environment variables, and the full test plan.\n\n---\n\n## Community\n\n- [GitHub Discussions](https:\u002F\u002Fgithub.com\u002Fscottgl9\u002Fskelm\u002Fdiscussions) — Questions and show & tell\n- [Issues](https:\u002F\u002Fgithub.com\u002Fscottgl9\u002Fskelm\u002Fissues) — Bug reports and feature requests\n- [Contributing](.\u002F.github\u002FCONTRIBUTING.md) — PRs welcome\n\n---\n\n## License\n\n[MIT](LICENSE)\n","skelm 是一个用于构建安全、长期运行的工作流的开源代理工作流引擎。它支持使用 TypeScript 编写和调度包含确定性代码、LLM 推理以及代理执行的任务流水线，并在默认拒绝权限模型下运行，确保了安全性。项目具备多后端代理支持、多模态提示处理能力、技能包复用等功能特点，适用于需要高度自定义与安全控制的自动化流程场景，如开发复杂AI应用或跨平台任务协调等。此外，skelm 提供丰富的触发机制，包括定时任务、Webhook等多种方式，增强了其实用性和灵活性。","2026-06-11 04:05:50","CREATED_QUERY"]