
Skillscript — a small declarative language for authoring agent workflows. Runtime, compiler, and CLI.
Safe, reusable automation authored by agents.
TL;DR —
npm install -g skillscript-runtime && skillfile init && skillfile dashboard. See Quickstart.
Skillscript came from asking: what would a Makefile look like if it built skills instead of binaries? The answer is a constrained language, inspired by Make, and a runtime that turns an agent's reasoning into persistent, inspectable automation. The agent writes the skill, you approve what it can do, and it runs the same way every time.
It is built for teams that want agents to create and run recurring workflows without giving them unrestricted shell access, arbitrary package installation, or direct control of production credentials.
An agent writes a skill. A human reviews and approves it. The runtime executes it through configured connectors, allowlists, and security policies.
npm install -g skillscript-runtime
skillfile init
skillfile dashboard
Then connect your agent to the MCP: http://localhost:7878/rpc and ask it to author a skill.
Agents usually re-derive routine tasks from scratch. That increases cost, latency, and behavioral drift.
Skillscript lets an agent crystallize a learned procedure into a named, reusable artifact that can be:
Skillscript is orchestration-only. Computation stays inside tools and connectors; skills coordinate those capabilities through a small declarative grammar. This can meaningfully cut frontier-model token usage in recurring workflows: the reasoning cost is paid once when the skill is authored, and each run after that executes deterministically, with routine sub-tasks handed to cheaper local models.
Python and Bash remain useful for implementation work. The risk is allowing agent-authored scripts to run unattended with unrestricted access to the host.
Skillscript narrows that execution surface:
eval, or subprocess escapeThe goal is not to replace scripts. It is to place scripts and APIs behind capabilities the operator explicitly exposes.
There is also a scaling reason. Reviewing arbitrary code means auditing everything it could do, which takes a skilled reader. A skillscript puts its full effect surface on the page, so approval stays tractable even when agents author faster than anyone can read code, and the operator who knows what their systems should allow can approve on the declared effects rather than by re-reading logic.
A skill is a typed, declarative workflow with variables, operations, dependencies, and an output template.
# Skill: hello
# Status: Approved
# Description: Greet someone by name.
# Vars: WHO=world
Hello, ${WHO}!
That is a complete, runnable skill. The body is rendered as its output.
Skills can also call connectors, branch, loop, run other skills, respond to events, and execute on schedules:
# Skill: daily-disk-check
# Status: Approved
# Triggers: cron:"0 6 * * *"
# Autonomous: true
Snapshot written for ${NOW}.
snapshot:
shell(command="df -h --output=source,pcent,target") -> USAGE
file_write(
path="/var/log/skillscript/disk-${EVENT.fired_at_unix}.txt",
content="${USAGE}"
)
default: snapshot
The runtime will refuse the shell command and file write until the operator allowlists the binary and path.
Draft, inert until you approve it.Skills can serve three roles:
| Kind | Purpose |
|---|---|
| Headless | Runs autonomously and sends output to a system or human |
| Augmenting | Prepares context for a frontier agent |
| Template | Gives an agent a reusable procedure to follow |
npm install -g skillscript-runtime
skillfile init
skillfile dashboard --host 127.0.0.1 --port 7878
Open http://localhost:7878.
Use --host 0.0.0.0 only when another container or machine must reach the runtime, and protect exposed ingress appropriately.
{
"mcpServers": {
"skillscript": {
"type": "http",
"url": "http://localhost:7878/rpc"
}
}
}
Author a skill that greets someone by name.
The agent writes the skill through MCP. Approve it in the dashboard or CLI:
skillfile approve hello
skillfile execute hello
Skills access external systems through configured connectors rather than direct credentials. Connectors can expose MCP tools, data stores, local models, agent delivery channels, or custom runtime capabilities.
Important operator controls:
Secrets are resolved by the runtime and passed only to approved sinks. Skills cannot print or inspect their raw values.
See the configuration guide and connector reference.
skillfile lint <skill>
skillfile compile <skill>
skillfile execute <skill>
skillfile approve <skill>
skillfile diagram <skill>
skillfile fires <skill>
skillfile replay <trace_id>
skillfile health
Run skillfile <command> --help for options.
Skillscript is pre-1.0. The core language and connector contracts are stabilizing; external adoption and distribution work are ongoing.
Bug reports and feature requests are welcome through Issues. Open an Issue before proposing grammar changes so the design can be discussed first.
MIT. See LICENSE.
| Setting | Default |
|---|
SKILLSCRIPT_SHELL_ALLOWLIST | deny all binaries |
SKILLSCRIPT_FS_ALLOWLIST | deny all paths |
SKILLSCRIPT_SECURED_MODE | off |
SKILLSCRIPT_MAX_DEADLINE_SECONDS | unset (no ceiling) |
SKILLSCRIPT_SUPERVISOR_SKILL | unset (off) |
SKILLSCRIPT_SECRET_<NAME> | unset |