Supabase Development and Debugging
supabase/agent-skills
General Supabase skill for database, auth, Edge Functions, Realtime and storage work, plus client libraries, migrations, security audits, debugging and reading logs.
Integrate with NodeTool over REST, tRPC, MsgPack WebSocket, MCP, or the OpenAI-compatible Chat API, including the document surfaces and workflow execution.
$ npx skills add nodetool-ai/nodetool --skill nodetool-api-reference -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install nodetool-ai/nodetool nodetool-api-reference --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/nodetool-ai/nodetool.git skills-src && mkdir -p .claude/skills && cp -r skills-src/packages/system-skills/nodetool-api-reference .claude/skills/nodetool-api-reference && rm -rf skills-srcUse ~/.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/
Install the "nodetool-api-reference" agent skill from https://github.com/nodetool-ai/nodetool/tree/main/packages/system-skills/nodetool-api-reference into .claude/skills/nodetool-api-reference/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "nodetool-api-reference", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/nodetool-ai/nodetool/tree/main/packages/system-skills/nodetool-api-referenceType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add nodetool-ai/nodetool --skill nodetool-api-reference -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install nodetool-ai/nodetool nodetool-api-reference --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/nodetool-ai/nodetool.git skills-src && mkdir -p .agents/skills && cp -r skills-src/packages/system-skills/nodetool-api-reference .agents/skills/nodetool-api-reference && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "nodetool-api-reference" agent skill from https://github.com/nodetool-ai/nodetool/tree/main/packages/system-skills/nodetool-api-reference into .agents/skills/nodetool-api-reference/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "nodetool-api-reference", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add nodetool-ai/nodetool --skill nodetool-api-reference -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install nodetool-ai/nodetool nodetool-api-reference --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/nodetool-ai/nodetool.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/packages/system-skills/nodetool-api-reference .cursor/skills/nodetool-api-reference && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "nodetool-api-reference" agent skill from https://github.com/nodetool-ai/nodetool/tree/main/packages/system-skills/nodetool-api-reference into .cursor/skills/nodetool-api-reference/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "nodetool-api-reference", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/nodetool-ai/nodetool.git --path packages/system-skills/nodetool-api-reference--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add nodetool-ai/nodetool --skill nodetool-api-reference -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install nodetool-ai/nodetool nodetool-api-reference --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/nodetool-ai/nodetool.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/packages/system-skills/nodetool-api-reference .gemini/skills/nodetool-api-reference && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "nodetool-api-reference" agent skill from https://github.com/nodetool-ai/nodetool/tree/main/packages/system-skills/nodetool-api-reference into .gemini/skills/nodetool-api-reference/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "nodetool-api-reference", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install nodetool-ai/nodetool nodetool-api-referenceInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add nodetool-ai/nodetool --skill nodetool-api-reference -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/nodetool-ai/nodetool.git skills-src && mkdir -p .github/skills && cp -r skills-src/packages/system-skills/nodetool-api-reference .github/skills/nodetool-api-reference && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "nodetool-api-reference" agent skill from https://github.com/nodetool-ai/nodetool/tree/main/packages/system-skills/nodetool-api-reference into .github/skills/nodetool-api-reference/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "nodetool-api-reference", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add nodetool-ai/nodetool --skill nodetool-api-reference -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install nodetool-ai/nodetool nodetool-api-reference --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/nodetool-ai/nodetool.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/packages/system-skills/nodetool-api-reference .opencode/skills/nodetool-api-reference && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "nodetool-api-reference" agent skill from https://github.com/nodetool-ai/nodetool/tree/main/packages/system-skills/nodetool-api-reference into .opencode/skills/nodetool-api-reference/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "nodetool-api-reference", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
nodetool-api-referenceIntegrate with NodeTool over REST, tRPC, MsgPack WebSocket, MCP, or the OpenAI-compatible Chat API, including the document surfaces and workflow execution.
Nodetool API Reference is an agent skill from nodetool-ai/nodetool. Integrate with NodeTool over REST, tRPC, MsgPack WebSocket, MCP, or the OpenAI-compatible Chat API, including the document surfaces and workflow execution.
Its SKILL.md is about 2.8k 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 gRPC and Protobuf and Realtime and WebSockets. It works with tRPC, OpenAI, Model Context Protocol and Supabase. The repository describes itself as: Agent-first Creative Workspace. The licence is AGPL-3.0.
Read from SKILL.md and the folder at commit f99c652. It shows what the files ask for, not the result of running them.
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.
Shell commands in SKILL.md call:
curlnpmFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use curl and npm, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
SUPABASE_KEYSERVER_AUTH_TOKENOPENAI_API_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Nodetool API Reference loads about 2.8k tokens when it runs. Until then it costs about 45 tokens; SKILL.md has 641 words of instructions outside code blocks.
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.
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.
The full file from nodetool-ai/nodetool at commit f99c652, republished under its AGPL-3.0 licence (© nodetool-ai). 641 words, ~2,770 tokens.
.claude/skills/nodetool-api-reference/SKILL.md (or your agent's skills folder).You help users integrate with NodeTool's HTTP + WebSocket server (default http://localhost:7777). Start it with nodetool serve (flags: --host, --port).
| Surface | Path prefix | Use case |
|---|---|---|
| REST | /api/... | Workflows, assets, collections, models, bundles, health |
| tRPC | /trpc/... | The document surfaces: timelines, storyboards, sketches, scripts, applications, JS scripts, projects, skills, settings |
| OpenAI-compatible | /v1/... | Chat completions + model list |
| WebSocket | /ws | Run/cancel/stream jobs, live chat, live editor tools |
| MCP | /mcp | Agent tools over streamable HTTP, for Claude Desktop and CLI agents |
The server mode (desktop / private / public) and auth are controlled by
environment variables (NODETOOL_SERVER_MODE, AUTH_PROVIDER), not CLI flags.
Pick the right surface. REST covers workflows, assets and the portable
bundles. Everything that is a document someone edits (a timeline sequence, a
storyboard, a sketch, a script, a mini app, a JS script) is a tRPC router, and
the REST routes for those kinds cover only import, export and build. An
integration that reads or writes a document calls tRPC, or calls the agent
capability of the same name over /mcp.
Authenticated endpoints use a Bearer token:
Authorization: Bearer <TOKEN>The server picks its mode from the Supabase credentials:
SUPABASE_URL and SUPABASE_KEY both set): send a Supabase
JWT. Every non-public endpoint requires it."1". Other sources get 401.The server does not accept SERVER_AUTH_TOKEN as a bearer token.
# List workflows
curl http://localhost:7777/api/workflows \
-H "Authorization: Bearer TOKEN"
# Get a workflow
curl http://localhost:7777/api/workflows/<id> \
-H "Authorization: Bearer TOKEN"
# Export helpers
curl http://localhost:7777/api/workflows/<id>/dsl-export # TypeScript DSL
curl http://localhost:7777/api/workflows/<id>/export-bundle # .nodetool bundle (zip)Running a workflow is done over WebSocket (
/ws, see below), not via a REST/runendpoint. From a terminal you can also run with the CLI:nodetool workflows run <id> --params '{"key":"value"}'.
The routers under /trpc, one per document kind:
timeline, storyboards, sketch, scripts, applications, jsScripts,
workflows, projects, assets, collections, jobs, models, nodes,
memories, messages, threads, settings, skills, storage, packs,
costs, credits, files, fonts, games, integrations, triggers,
users, worker, workspace.
Each follows the same shape: list, get, create, update (compare-and-swap
on updated_at), delete, plus sub-routers. Whole-document snapshots are
timeline.versions, sketch.documentVersions and jsScripts.documentVersions
(sketch.versions is a different thing: the per-layer generation takes).
applications also carries publish, released, deploy, budget and
usage, because publishing an app locks in the current graph of every workflow
it runs and caps what it may spend. Read the router in
packages/websocket/src/trpc/routers/ for the exact procedure names rather than
guessing them. /trpc/healthz answers without auth.
An agent reaches the same data through the capability tools, which need no
client: list_timelines, get_storyboard, edit_sketch, save_js_script,
edit_app, and so on.
The REST side of the document kinds is import, export and build.
# Mini apps
curl http://localhost:7777/api/applications/:id/export-bundle # app + every bound graph
curl -X POST http://localhost:7777/api/applications/import-bundle
curl -X POST http://localhost:7777/api/applications/build # {prompt|spec, provider, model, ...}
curl -X POST http://localhost:7777/api/applications/debug
curl http://localhost:7777/api/applications/examples
curl -X POST http://localhost:7777/api/applications/examples/:slug/install
# Timelines and storyboards
curl http://localhost:7777/api/timelines/:id/export-zip
curl -X POST http://localhost:7777/api/timelines/import-zip
curl http://localhost:7777/api/storyboards/:id/export-zip
curl -X POST http://localhost:7777/api/timelines/:id/isolate-subject
# JS scripts
curl -X POST http://localhost:7777/api/js-scripts/:id/runA build or an interactive debug runs for minutes, so those routes accept
poll: true, return a session id, and are read at
GET /api/debug/sessions/:id until they settle. Cancel with
POST /api/debug/sessions/:id/cancel.
# Index a file into a collection
curl -X POST http://localhost:7777/api/collections/<name>/index \
-H "Authorization: Bearer TOKEN" \
-H "Content-Type: application/json" \
-d '{"file_path": "/path/to/document.pdf"}'# OpenAI-compatible model list
curl http://localhost:7777/v1/models -H "Authorization: Bearer TOKEN"# Asset bytes are served under /api/storage/...
curl http://localhost:7777/api/storage/<path>curl http://localhost:7777/health # liveness (no auth)
curl http://localhost:7777/ready # readiness
curl http://localhost:7777/api/health # detailed health# Chat completion
curl -X POST http://localhost:7777/v1/chat/completions \
-H "Authorization: Bearer TOKEN" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-5.4",
"messages": [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Hello!"}
],
"stream": false
}'
# Streaming (Server-Sent Events)
curl -X POST http://localhost:7777/v1/chat/completions \
-H "Authorization: Bearer TOKEN" \
-H "Content-Type: application/json" \
-d '{"model": "gpt-5.4", "messages": [{"role": "user", "content": "Hi"}], "stream": true}'import openai
client = openai.OpenAI(api_key="TOKEN", base_url="http://localhost:7777/v1")
response = client.chat.completions.create(
model="gpt-5.4",
messages=[{"role": "user", "content": "Hello!"}],
)
print(response.choices[0].message.content)
# Streaming
stream = client.chat.completions.create(
model="gpt-5.4",
messages=[{"role": "user", "content": "Hello!"}],
stream=True,
)
for chunk in stream:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="")const response = await fetch("http://localhost:7777/v1/chat/completions", {
method: "POST",
headers: {
Authorization: "Bearer TOKEN",
"Content-Type": "application/json",
},
body: JSON.stringify({
model: "gpt-5.4",
messages: [{ role: "user", content: "Hello!" }],
stream: false,
}),
});
const data = await response.json();
console.log(data.choices[0].message.content);Endpoint: ws(s)://<host>/ws. Messages are an envelope { command, data }.
(In the editor, MsgPack is used; JSON also works for simple clients.)
const socket = new WebSocket("ws://localhost:7777/ws");
// Start a workflow run
socket.send(JSON.stringify({
command: "run_job",
data: {
type: "run_job_request",
api_url: "http://localhost:7777/api",
workflow_id: "<uuid>",
job_type: "workflow",
auth_token: "<token>",
params: { input_name: "value" },
job_id: "<uuid>",
user_id: "1",
execution_strategy: "threaded",
},
}));
socket.onmessage = (event) => {
const msg = JSON.parse(event.data);
switch (msg.type) {
case "job_update":
console.log(`Job ${msg.status}`); // running | completed | failed | cancelled | suspended
if (msg.result) console.log("Result:", msg.result);
break;
case "node_update":
console.log(`Node ${msg.node_name}: ${msg.status}`);
break;
case "node_progress":
console.log(`Progress: ${msg.progress}/${msg.total}`);
break;
case "output_update":
console.log(`Output ${msg.output_name}:`, msg.value);
break;
case "chunk":
process.stdout.write(msg.content);
break;
case "log_update":
console.log(`[${msg.severity}] ${msg.content}`);
break;
}
};socket.send(JSON.stringify({ command: "cancel_job", data: { job_id: "...", workflow_id: "..." } }));
socket.send(JSON.stringify({ command: "pause_job", data: { job_id: "...", workflow_id: "..." } }));
socket.send(JSON.stringify({ command: "resume_job", data: { job_id: "...", workflow_id: "..." } }));
// Stream input into a running node, then close the stream
socket.send(JSON.stringify({ command: "stream_input", data: { input: "name", value: "data", handle: "..." } }));
socket.send(JSON.stringify({ command: "end_input_stream", data: { input: "name", handle: "..." } }));| Type | Key fields | Purpose |
|---|---|---|
job_update | status, result, error, cost | Job lifecycle |
node_update | node_id, node_name, status, error, result | Node lifecycle |
node_progress | progress, total, chunk | Progress tracking |
output_update | output_name, value, output_type | Node output values |
log_update | content, severity | Log messages |
chunk | content, done | Streaming text |
/mcp serves the agent capability tools over streamable HTTP, so an outside
agent drives NodeTool with the same calls the in-product agent uses. Reach it
three ways:
nodetool mcp install configures a CLI agent (Claude Code, Codex).npm run build:mcpb builds dist/nodetool.mcpb, a one-file bundle Claude
Desktop installs by drag-and-drop. It is a stdio-to-HTTP bridge against a
running server's /mcp, and it starts in offline mode when the server is
down, then hot-attaches when it appears./mcp with a token
minted in Settings → MCP → Connect an agent remotely.nodetool serve # Start server (default 127.0.0.1:7777)
nodetool serve --host 0.0.0.0 # Bind all interfaces
nodetool serve --port 8080 # Custom port
nodetool workflows list # List saved workflows
nodetool workflows get <id> # Get workflow details
nodetool workflows run <id> # Run a workflow (uses the local DB)
nodetool jobs list # List execution jobs
nodetool secrets store OPENAI_API_KEY # Store an API key© 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
Just SKILL.md in packages/system-skills/nodetool-api-reference of nodetool-ai/nodetool.
Open the folder on GitHubat commit f99c652
Nodetool API Reference 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Nodetool API Reference this skillnodetool-ai/nodetool | 554 | — | ~2.8k | Automated safety check: Pass | AGPL-3.0 | |
| Supabase Development and Debuggingsupabase/agent-skills | 2.7k | 3 repos | ~3.6k | Automated safety check: Pass | MIT | |
| Spider Kingaoyunyang/spider-king-skill | 507 | — | ~7.3k | Automated safety check: Pass | MIT | |
| Trpc PatternsFranciscoMoretti/chat-js | 1.2k | — | ~288 | Automated safety check: Pass | Apache-2.0 | |
| Lazy Prefetch PatternFranciscoMoretti/chat-js | 1.2k | — | ~217 | Automated safety check: Pass | Apache-2.0 | |
| MCP Integrationhomarr-labs/homarr | 5k | — | ~1.1k | Automated safety check: Pass | Apache-2.0 |
supabase/agent-skills
General Supabase skill for database, auth, Edge Functions, Realtime and storage work, plus client libraries, migrations, security audits, debugging and reading logs.
aoyunyang/spider-king-skill
Pure-web protocol reverse skill: turn hostile browser clients into browser-free Python collectors.
FranciscoMoretti/chat-js
Implement ChatJS tRPC routers, TanStack Query hooks, mutations, and cache invalidation.
FranciscoMoretti/chat-js
Use the ChatJS React Query v5 lazy-prefetch pattern without blocking server rendering.
homarr-labs/homarr
Expose Homarr tRPC procedures safely through MCP. An agent skill from homarr-labs/homarr.
aafqaq/codex-lb-enhanced
A skill your agent uses when the user asks how to build with OpenAI products or APIs and needs up-to-date official documentation with citations (for example: Codex, Responses API, Chat Completions…
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.
nodetool-ai/nodetool
Add and animate a consistent text layer on an existing NodeTool timeline.
nodetool-ai/nodetool
Choose and animate colour on a NodeTool timeline, including shape and text gradients, colour grades, 3D LUTs, and dither.
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.
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…
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.
Works with
Categories
Integrate with NodeTool over REST, tRPC, MsgPack WebSocket, MCP, or the OpenAI-compatible Chat API, including the document surfaces and workflow execution. Nodetool API Reference is an agent skill from nodetool-ai/nodetool. Integrate with NodeTool over REST, tRPC, MsgPack WebSocket, MCP, or the OpenAI-compatible Chat API, including the document surfaces and workflow execution.
Nodetool API Reference fits situations like: tasks that involve gRPC and Protobuf; tasks that involve Realtime and WebSockets.
Run `npx skills add nodetool-ai/nodetool --skill nodetool-api-reference -a claude-code`. Or copy the skill folder (packages/system-skills/nodetool-api-reference in nodetool-ai/nodetool) into .claude/skills/nodetool-api-reference in your project. Claude Code loads it when a task matches its description.
Run `npx skills add nodetool-ai/nodetool --skill nodetool-api-reference -a codex`. Or copy the skill folder (packages/system-skills/nodetool-api-reference in nodetool-ai/nodetool) into .agents/skills/nodetool-api-reference in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add nodetool-ai/nodetool --skill nodetool-api-reference -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/nodetool-api-reference, .gemini/skills/nodetool-api-reference, .github/skills/nodetool-api-reference and .opencode/skills/nodetool-api-reference in your project.
Going by SKILL.md and its folder, Nodetool API Reference needs the command-line tools its instructions call (curl and npm) and credentials named SUPABASE_KEY, SERVER_AUTH_TOKEN and OPENAI_API_KEY. Our summary lists: Python 3; A credential in SUPABASE_KEY; A credential in SERVER_AUTH_TOKEN.
SKILL.md contains no URLs. Its commands use curl and npm, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
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.
Nodetool API Reference 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.
About 2.8k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Nodetool API Reference: Supabase Development and Debugging (supabase/agent-skills, 2.7k stars), Spider King (aoyunyang/spider-king-skill, 507 stars), Trpc Patterns (FranciscoMoretti/chat-js, 1.2k stars) and Lazy Prefetch Pattern (FranciscoMoretti/chat-js, 1.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
nodetool-ai (a GitHub organization) maintains it in nodetool-ai/nodetool, which has 554 GitHub stars. The repository holds 130 skills in this directory. The repository was last updated on October 7, 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.