Script file structure
Each script is stored as a small project with aSKILL.md definition, source files, and optional assets.
Script definition
SKILL.md is the canonical Script.it script definition. It follows the Agent Skills format: YAML frontmatter at the top, followed by a Markdown body. Each fenced yaml block in the body declares one executable block or one Markdown block.
Frontmatter fields
Common frontmatter fields:| Field | Purpose |
|---|---|
name | Required slug. It matches the script directory name. |
display-name | Optional user-facing title with spaces and punctuation. |
description | Required description used for discovery and display. |
arguments | Optional ordered list of script input names. |
argument-hint | Optional metadata for script inputs, including type, default, description, and UI hints. |
disable-model-invocation | Prevents the agent from auto-invoking the script unless referenced explicitly. |
always-include | Includes the full SKILL.md in the agent’s context on every prompt turn. |
metadata.id | Stable script ID assigned by Script.it. Do not edit it manually. |
flow.script.yaml, but new and migrated scripts use SKILL.md.
Path expressions
Use${{ ... }} expressions in block fields and inputs:
| Expression | Resolves to |
|---|---|
${{ src }} | The script’s scripts/ source directory. |
${{ script.assets }} | The script’s persistent assets/ directory. |
${{ session.data_files }} | The current session’s runtime data directory. |
${{ builtins }} | Built-in Script.it blocks. |
${{ inputs.name }} | A script-level input value. |
${{ block.fetch.outputs.file }} | A value returned by an earlier block. |
${{ block.fetch.output_directory }} | The output directory for an earlier block. |
Runtime files
Script files and session files are separate:- Script files live with the script and are shared across sessions.
- Script assets live in
assets/and persist across sessions. - Session files live in the session’s
data_files/directory and contain outputs from a specific run. - Runtime artifacts, logs, and block outputs belong to the session that produced them.
Agent context fields
Script.it usesSKILL.md frontmatter to control Agent context:
| App mode | Frontmatter update | Effect |
|---|---|---|
| Not Included | disable-model-invocation: true and always-include: null | Script not included in context, but searchable by the agent. |
| Description Included | disable-model-invocation: false and always-include: null | Agent will read the script if description is relevant. |
| Script Included | always-include: true and disable-model-invocation: null | The full script content is included in the agent context. |
Trigger payloads
When a trigger starts a script, Script.it creates a new session and passes event data into that session.- Webhook triggers receive an HTTP POST body.
- Integration event triggers receive event data from the connected tool.
- Schedule triggers receive schedule metadata such as the scheduled time.
data_files/trigger_event.json.
Schedules and cron
Schedule triggers can use presets or a custom five-field cron expression:| Cron expression | Meaning |
|---|---|
0 9 * * * | Every day at 9:00 AM |
0 9 * * 1 | Every Monday at 9:00 AM |
*/30 * * * * | Every 30 minutes |
Integrations and credentials
Integrations use OAuth, API keys, or custom headers depending on the connected service. Script.it stores integration credentials in encrypted form and does not write them into script source files or chat history. Custom integrations use a two-layer model:- The integration type defines the API shape: base URL, auth mode, OAuth URLs, docs URL, logo, and schema.
- The connection stores one user’s credentials for that type.