Agent skill

API Workflows

by nodetool-ai in nodetool-ai/nodetool

Call nodetool.workflows, nodetool.jobs or nodetool.nodes from a code action: list, validate, save, run, debug and version workflow graphs, wait on background jobs, and look up or probe node types.

AGPL-3.0Auto-check passedBackend & APIs

Install API Workflows

skills CLI
$ npx skills add nodetool-ai/nodetool --skill api-workflows -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install nodetool-ai/nodetool api-workflows --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/nodetool-ai/nodetool.git skills-src && mkdir -p .claude/skills && cp -r skills-src/packages/system-skills/api-workflows .claude/skills/api-workflows && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
api-workflows
GitHub stars
556
Token cost
~1.7k tokens
SKILL.md length
800 words
Files
1
Skills in repo
127
Repo updated
First seen
Licence
AGPL-3.0

At a glance

Call nodetool.workflows, nodetool.jobs or nodetool.nodes from a code action: list, validate, save, run, debug and version workflow graphs, wait on background jobs, and look up or probe node types.

  • Tasks that involve Background jobs
  • SKILL.md covers nodetool.workflows, nodetool.jobs and nodetool.nodes
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

API Workflows is an agent skill from nodetool-ai/nodetool. Call nodetool.workflows, nodetool.jobs or nodetool.nodes from a code action: list, validate, save, run, debug and version workflow graphs, wait on background jobs, and look up or probe node types. Load before the first call into these namespaces.

Its SKILL.md is about 1.7k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Backend & APIs, covering Background jobs. The repository describes itself as: Agent-first Creative Workspace. The licence is AGPL-3.0.

When your agent uses it

  • Tasks that involve Background jobs

Example prompts

  • “/api-workflows”

What it can do on your machine

Read from SKILL.md and the folder at commit 515bd28. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are javascript).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

API Workflows loads about 1.7k tokens when it runs. Until then it costs about 65 tokens; SKILL.md has 800 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~65
When it runs · the whole SKILL.md, loaded when a task matches
~1.7k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from nodetool-ai/nodetool at commit 515bd28, republished under its AGPL-3.0 licence (© nodetool-ai). 800 words, ~1,657 tokens.

Download SKILL.mdSave it as .claude/skills/api-workflows/SKILL.md (or your agent's skills folder).
name
api-workflows
description
Call nodetool.workflows, nodetool.jobs or nodetool.nodes from a code action: list, validate, save, run, debug and version workflow graphs, wait on background jobs, and look up or probe node types. Load before the first call into these namespaces.

nodetool.workflows, nodetool.jobs, nodetool.nodes

These three namespaces cover saved graphs, the runs they start, and the node catalog a graph is built from. How to design a graph is nodetool-workflow-builder. This skill is the call reference.

Every method takes an id as the full id or its 12-character prefix, and every method throws when its backing tool is not on this belt.

nodetool.workflows

CallDoesAnswers
list({workflow_type, query, limit})Lists workflows. workflow_type is "user" (default), "example" or "all".{workflows: [{id, name, description, tags}]} — an envelope, not an array
get(id)Reads one workflow with its graph.The workflow record
create(name, graph, {description, tags, access, project_id})Saves a new workflow. graph is a DSL result, {nodes, edges}, or a workflow record. create({name, graph}) also works.The saved workflow with its id
validate(idOrGraph)Checks a graph against the node registry without a run.{ok, issues}. Throws when the graph has errors, so a broken graph cannot reach a paid run.
run(id, params, {interactive})Runs and blocks until the run settles.The run result. With interactive: true, a failed node returns status: "escalated".
start(id, params)Starts a run and returns at once.A receipt {job_id, id, status: "running"}
debug(id, params, {interactive, include_graph, log_limit})Runs and reports.{workflow_id, run, job, workflow}
resolve(sessionId, escalationId, action, {outputs, reason, apply_to})Answers an escalation.The next escalation, or the final report
example("<package>/<name>")Loads a shipped example with its graph. A bare name reads from nodetool-base.The example workflow
versions(id, {limit}), getVersion(id, n)Lists and reads snapshots.Version rows, newest first
snapshot(id, {name, description})Saves the current graph as a manual version.The new version number
restore(id, n)Rolls the graph back. The graph it replaces is snapshotted first, so a restore can be undone.—
deleteVersion(id, n)Deletes one snapshot. This cannot be undone.—
open(id?)Opens the editable object model of a graph that is open in the editor. Throws when no editor tools are on the belt.A workflow object: addNode, connect, commit()
The debug report

debug answers {workflow_id, run, job, workflow}:

  • run.status is the verdict of the run, and run.error names the failure.
  • run.outputs is keyed by output name. Each name holds an array of the values it emitted, so read run.outputs.summary[0], not run.outputs.summary.
  • run.verdict.issues lists what went wrong, node by node.
  • job carries the status, the cost and the logs.
Escalations

An interactive run parks on a failed node and answers status: "escalated" with a session_id, an escalation_id and the allowedActions. The actions are retry, substitute (with {outputs}, only when the escalation has a candidateOutput), skip, end_stream and fail (with {reason}). apply_to: "signature" also answers later failures with the same signature. Write the whole loop in one action:

js
let report = await nodetool.workflows.debug(id, params, { interactive: true });
while (report.status === "escalated") {
  const e = report;
  report = await nodetool.workflows.resolve(e.session_id, e.escalation_id, "skip");
}
return { status: report.run?.status, issues: report.run?.verdict?.issues };
Rules
  • A saved graph is not a run. When the user asked for results, call run.
  • Validate before create and before a paid run. validate throws on errors, and its message lists the errors only.
  • A *_model property left unset fails validation. Assign (await nodetool.models.pick(capability)).ref.
  • create checks model properties. An unknown provider or model id is refused and not saved.
Show full SKILL.md (300 more words)Show less

nodetool.jobs

A job is one execution of a workflow, and a render of a timeline is a job too.

CallAnswers
list({workflow_id, limit})Job rows with status, timing, error and the names of the outputs. The values are not in the list.
get(idOrReceipt)One job, with the outputs once it has settled
logs(idOrReceipt, {limit})The log tail. It answers for a failed job too, with the failure under job_error.
wait(idOrReceipt, {timeoutMs, pollMs})Polls until the status is completed, failed, cancelled or error, then answers the job. The default timeout is 600000 ms. On a timeout it throws with the last status.

Every call takes the id string or the receipt that start() answered. Start, do other work, then wait, all in one action:

js
const receipt = await nodetool.workflows.start(id, { prompt: "a fox" });
// … other work in the same action …
const settled = await nodetool.jobs.wait(receipt, { timeoutMs: 300000 });
return { status: settled.status, outputs: settled.outputs };

Do not write one get() per action. wait is the polling loop.

nodetool.nodes

CallDoesAnswers
search(query, {n_results, namespace, input_type, output_type, include_provider_nodes})Searches the catalog. query is a string or an array of terms.{total, results}. The node type of a result is on type, not node_type.
info(type)Reads one node type: properties, inputs, outputs, defaults.The node metadata
list({namespace, limit})Browses a namespace. An unknown namespace answers with the namespaces that exist.Node rows
run(type, inputs)Runs ONE node with a property bag, with no workflow.The outputs, keyed by slot
  • Never guess a node type. Search, then read info for the exact property names before you wire the node.
  • Provider nodes (openai.*, fal.* and others) are hidden unless you pass include_provider_nodes: true. Pass it only when the user named a provider.
  • run is the cheapest probe of what a node does. Try one node before you put it in a graph.
  • To call nodes as functions inside an action, import them from @nodetool-ai/sandbox-flow. To author a graph, import them from @nodetool-ai/sandbox-dsl. nodetool-js-scripting covers both packs.

© nodetool-ai, AGPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in packages/system-skills/api-workflows of nodetool-ai/nodetool.

Open the folder on GitHubat commit 515bd28

Compare with similar skills

API Workflows next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

API Workflows compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
API Workflows this skillnodetool-ai/nodetool556—~1.7kAutomated safety check: PassAGPL-3.0
Trigger.dev Configurationpapermark/papermark9.2k—~1.2kAutomated safety check: PassCustom licence
FoundatioFoundatioFx/Foundatio2.1k—~3.9kAutomated safety check: PassApache-2.0
AI Model NodejsTencentCloudBase/CloudBase-AI-Toolkit1.1k3 repos~5kAutomated safety check: PassMIT
Trigger.dev Realtimepapermark/papermark9.2k—~1.7kAutomated safety check: PassCustom licence
NubaseOtterMind/Nubase623—~2.2kAutomated safety check: NotesApache-2.0

Similar skills

  • Trigger.dev Configuration

    papermark/papermark

    Configures Trigger.dev projects through trigger.config.ts, with build extensions for Prisma, Playwright, Puppeteer, FFmpeg, Python and system packages.

    9.2k GitHub stars~1.2k tokensUpdated 1 mo ago
    Backend & APIsAuto-check passed
  • Foundatio

    FoundatioFx/Foundatio

    A skill your agent uses when working with Foundatio infrastructure abstractions for .NET -- caching, queuing, messaging, file storage, distributed locking, or background jobs.

    2.1k GitHub stars~3.9k tokensUpdated today
    Backend & APIsAuto-check passed
  • AI Model Nodejs

    TencentCloudBase/CloudBase-AI-Toolkit

    A skill your agent uses for Node.js backend AI via @cloudbase/node-sdk (=3.16.0) — cloud functions, CloudRun, Express/Koa/NestJS, serverless APIs, scheduled jobs, LLM proxies, agent orchestration.

    1.1k GitHub starsUsed in 3 repos~5k tokens
    Backend & APIsAuto-check passed
  • Trigger.dev Realtime

    papermark/papermark

    Shows how to subscribe to Trigger.dev task runs from the backend and from React for progress indicators, live dashboards, AI response streams and approval waits.

    9.2k GitHub stars~1.7k tokensUpdated 1 mo ago
    Backend & APIsAuto-check passed
  • Nubase

    OtterMind/Nubase

    A skill your agent uses when the user mentions Nubase broadly, wants a backend for an AI-generated app, or needs to deploy/publish generated code online — across Database, Auth, Storage, Assets…

    623 GitHub stars~2.2k tokensUpdated 9 days ago
    Backend & APIsAuto-check: notes
  • Trigger.dev Background Tasks

    papermark/papermark

    Guides building durable background tasks, scheduled jobs and queues with Trigger.dev, including retries, waits, idempotency and concurrency limits.

    9.2k GitHub stars~2.1k tokensUpdated 1 mo ago
    Backend & APIsAuto-check passed

More from nodetool-ai/nodetool

All 127 skills in this repo
  • Beat Sync Editing

    nodetool-ai/nodetool

    Cut a NodeTool timeline to music and shape its pacing — detect the beat grid, place cuts on phrases, pick a cut type, build speed ramps with time remap, and give the piece an arc.

    556 GitHub stars~2.6k tokensUpdated today
    Auto-check passed
  • Caption Titles

    nodetool-ai/nodetool

    Add and animate a consistent text layer on an existing NodeTool timeline.

    556 GitHub stars~1.9k tokensUpdated today
    Auto-check passed
  • Color Motion

    nodetool-ai/nodetool

    Choose and animate colour on a NodeTool timeline, including shape and text gradients, colour grades, 3D LUTs, and dither.

    556 GitHub stars~2.3k tokensUpdated today
    Auto-check passed
  • Commercial Beat Sheet

    nodetool-ai/nodetool

    Write a shootable, precisely timed commercial beat sheet and store it as a NodeTool storyboard, with a consistent entity roster behind every shot.

    556 GitHub stars~4.6k tokensUpdated today
    Auto-check passed
  • Elevenlabs Audio Prompting

    nodetool-ai/nodetool

    Direct ElevenLabs speech, dialogue, sound effects and music — the bracketed audio tags v3 acts on and why the voice decides whether a tag lands, stability as the delivery dial, punctuation instead…

    556 GitHub stars~1.9k tokensUpdated today
    Auto-check passed
  • Frame Composition

    nodetool-ai/nodetool

    Stage the frame on a NodeTool timeline — grids, focal placement, safe areas per aspect ratio, depth layers and parallax, camera moves, and where elements enter and leave.

    556 GitHub stars~3.5k tokensUpdated today
    Auto-check passed

Categories

Questions about API Workflows

What does API Workflows do?

Call nodetool.workflows, nodetool.jobs or nodetool.nodes from a code action: list, validate, save, run, debug and version workflow graphs, wait on background jobs, and look up or probe node types. API Workflows is an agent skill from nodetool-ai/nodetool.nodes from a code action: list, validate, save, run, debug and version workflow graphs, wait on background jobs, and look up or probe node types.

When should I use API Workflows?

API Workflows fits situations like: tasks that involve Background jobs.

How do I install API Workflows in Claude Code?

Run `npx skills add nodetool-ai/nodetool --skill api-workflows -a claude-code`. Or copy the skill folder (packages/system-skills/api-workflows in nodetool-ai/nodetool) into .claude/skills/api-workflows in your project. Claude Code loads it when a task matches its description.

How do I install API Workflows in Codex?

Run `npx skills add nodetool-ai/nodetool --skill api-workflows -a codex`. Or copy the skill folder (packages/system-skills/api-workflows in nodetool-ai/nodetool) into .agents/skills/api-workflows in your project. Codex loads it when a task matches its description.

Can I use API Workflows in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add nodetool-ai/nodetool --skill api-workflows -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/api-workflows, .gemini/skills/api-workflows, .github/skills/api-workflows and .opencode/skills/api-workflows in your project.

What does API Workflows need to run?

SKILL.md names no scripts, command-line tools or credentials: API Workflows is instructions for the agent only.

Does API Workflows access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is API Workflows safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does API Workflows use?

API Workflows is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does API Workflows use?

About 1.7k tokens (SKILL.md is roughly 6.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to API Workflows?

Skills that share tags, products or a category with API Workflows: Trigger.dev Configuration (papermark/papermark, 9.2k stars), Foundatio (FoundatioFx/Foundatio, 2.1k stars), AI Model Nodejs (TencentCloudBase/CloudBase-AI-Toolkit, 1.1k stars) and Trigger.dev Realtime (papermark/papermark, 9.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains API Workflows?

nodetool-ai (a GitHub organization) maintains it in nodetool-ai/nodetool, which has 556 GitHub stars. The repository holds 127 skills in this directory. The repository was last updated on October 8, 2026.

Source: nodetool-ai/nodetool on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.