blocks-network
A technical reference for modifying, deploying, and troubleshooting existing Blocks Network agents.
Install
mkdir -p .claude/skills/blocks-network && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/18062" && unzip -o skill.zip -d .claude/skills/blocks-network && rm skill.zipInstalls to .claude/skills/blocks-network
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Non-linear reference for managing Blocks Network agents — features, configuration, CLI, IO schemas, streaming, consumer SDK, publishing, invites, troubleshooting. Use when working with an existing agent, modifying, deploying, calling agents from a script, or looking up a Blocks feature.Key capabilities
- →Manage Blocks Network agents after initial build
- →Configure agent settings and features
- →Use the Blocks CLI for agent operations
- →Handle streaming for agents
- →Utilize the consumer SDK for agents
- →Manage agent invites and publishing
How it works
This skill provides a non-linear reference for managing Blocks Network agents, covering configuration, CLI usage, streaming, and publishing, for agents that already exist.
Inputs & outputs
When to use blocks-network
- →Deploy an agent
- →Update agent configuration
- →Troubleshoot agent execution
- →Call an agent from a script
About this skill
Blocks Network -- Reference for Managing Agents
You are a Blocks Network specialist. This skill is a non-linear reference for working with Blocks agents that already exist or for looking up Blocks features. Jump to the section that matches what the user is asking for.
Building a brand-new agent from nothing? Stop and use the
blocks-getstarted skill (GETSTARTED.md). This skill covers
everything after the first build: modifying, deploying existing code,
streaming, calling agents from scripts, invite management, publishing
flags, troubleshooting.
Execute every command directly using the Bash tool. Never ask the user
to run commands themselves except where this skill explicitly says to
(e.g. blocks register, blocks publish, blocks run).
Language: Default to Node (TypeScript). Only use Python if the user explicitly requests it. For Python, see [Python Reference].
No TTY available / asking the user product questions. This skill
runs inside a coding assistant -- there is no interactive terminal for
blocks CLI prompts, and product decisions (agent name, description,
ambiguous directory) must be confirmed via the host's question tool
(AskUserQuestion in Claude Code). The full plumbing rules live in
GETSTARTED.md → Asking the User Questions / No TTY available --
treat that copy as authoritative and follow it.
Required Reading: the Agent Card Schema
The [Agent Card Schema] is the single source of truth for the
structure of agent-card.json — every field, type, and constraint the
platform enforces. blocks check validates your card against it, and
blocks publish rejects anything that does not conform. Read it
before authoring or editing any agent-card.json. Do not infer the
card shape from examples alone (including the snippets in this file) —
examples illustrate, the schema decides.
[Agent Card Schema] — https://config.blocks.ai/references/agent-card.schema.json
When the schema and any prose or example in this skill appear to disagree, the schema wins. See also [Agent Card Reference] (field guidance) and [IO Schema Reference] (input/output rules).
Section Index
- Required Reading: the Agent Card Schema -- read first -- canonical, enforced
agent-card.jsonstructure - CLI Reference -- install, login, whoami, run, check, dashboard, env overrides
- Agent Card Reference -- runtime config, optional fields
- IO Schema Rules -- transport classes, examples, drafting from a handler
- Streaming Agents -- direction/format matrix, handler I/O, consumer I/O
- Registering & Publishing -- register private/free first, promote to public/paid later, non-interactive flags, name conflicts, invite management
- Modifying an Existing Agent -- edit-and-republish recipe
- Deploying Code You've Already Written -- locate, draft missing card, publish
- Consumer Projects & Trigger / Client Code -- calling agents from scripts/apps
- Common Pitfalls -- error → cause lookup
- References -- external doc index
CLI Reference
Install / upgrade
npm i -g @blocks-network/cli
On OpenBSD (no npm in base), use the POSIX shell installer:
curl -fsSL https://config.blocks.ai/install.sh | sh
pkg_add xdg-utils # so `blocks login` can open a browser
On FreeBSD, install xdg-utils so blocks login can open a browser:
pkg install xdg-utils
Make blocks available for the rest of the session:
export PATH="$HOME/.blocks/bin:$PATH"
Self-update for users who installed via install.sh (no global npm):
blocks upgrade
blocks login
Always pass an explicit --write-env or --no-write-env. The CLI
auto-detects non-TTY stdin and skips the
Write BLOCKS_API_KEY to project .env? (Y/n): prompt without writing
anything, so bare blocks login does not hang -- but it also does not
write .env. Pass the flag explicitly so the outcome is deterministic:
--write-envopts in (recommended for the agent flow). Stores creds in~/.config/blocks/credentials.jsonand writesBLOCKS_API_KEYto the project.env.--no-write-envopts out (use when you must not touch the project.env).--dir <name>points--write-envat the named project's.envwhen invoking from a parent directory.
Verify or revoke credentials
| Command | Purpose |
|---|---|
blocks whoami | Print the current org, key id, and expiry. Errors with not logged in if no creds. |
blocks whoami --json | Same, structured for programmatic checks (org_name, org_id, key_id, expires_at, days_remaining, expired). |
blocks logout | Delete ~/.config/blocks/credentials.json and remove BLOCKS_API_KEY from the project .env. |
blocks version | Print the installed CLI version. |
blocks check
cd <your-agent-name> && blocks check
Validates agent-card.json against the schema and verifies that
the file referenced by runtime.handler exists on disk. A missing
handler file causes [FAIL] even when the JSON itself is valid.
blocks publish re-runs the same validation, so blocks check is a
fast pre-flight, not a gate the user must clear before publishing.
blocks run
Starts the agent locally. Reads agent-card.json, imports the handler,
and uses BLOCKS_API_KEY from .env. Don't run on the user's behalf
-- instruct the user to run cd <your-agent-name> && blocks run
themselves so they own the live process.
Install deps first if a manifest is present:
cd <your-agent-name>
[ -f package.json ] && npm install
[ -f setup.py ] || [ -f setup.cfg ] || [ -f pyproject.toml ] && \
pip install -e . && pip install blocks-network --upgrade
cd ..
blocks dashboard
cd <your-agent-name> && blocks dashboard
Reads the dashboard URL from BLOCKS_APP_BASE_URL /
BLOCKS_DASHBOARD_URL (or the active profile's dashboard origin) if
set, otherwise from the active deployment — BLOCKS_BACKEND_URL, the
active profile's backend, or the CDM config — so it opens the agent's
page on the deployment you're targeting rather than always stock Blocks
Network. When BLOCKS_BACKEND_URL points at a different backend than
the active profile was logged into, the profile's cached dashboard
origin is skipped so the link follows BLOCKS_BACKEND_URL. Override for
staging / a worktree / a self-hosted deploy:
BLOCKS_APP_BASE_URL=https://staging.blocks.ai blocks dashboard
Agent Card Reference
The authoritative structure of agent-card.json is the
[Agent Card Schema] (see Required Reading).
This section gives field-level guidance; the schema is what
blocks check and blocks publish enforce.
Recommended: runtime.maxRunningTimeSec
Strongly recommended: set runtime.maxRunningTimeSec in
agent-card.json. It is not enforced -- blocks check passes without
it and blocks init does not scaffold it -- but omitting it means the
platform applies a default that is often wrong for the workload. This
integer (seconds) declares the maximum wall-clock time a single task
invocation may run before the platform considers it timed out. Choose
a value appropriate for the workload:
- Simple request/response:
30-60 - LLM-backed or multi-step:
120-300 - Long-running pipe tasks:
600-3600
"runtime": {
"handler": "./handler.ts",
"concurrency": 5,
"maxRunningTimeSec": 300
}
If omitted, the platform applies a default that may be too short or too long for the agent's use case.
Other useful fields
Beyond the required structure, populate these to improve discoverability, security, and operational behavior:
| Section | Field | Purpose |
|---|---|---|
identity | documentationUrl | Link to external docs for the agent |
identity | repositoryUrl | Source code repository URL |
identity | iconUrl | Agent icon displayed in the dashboard/registry |
identity.provider | url | Organization homepage |
runtime | concurrency | Max concurrent tasks per instance (default 1) |
runtime | expectedInstances | Expected running instances for scaling (default 1) |
runtime | maxPendingBacklog | Max queued tasks before rejecting new ones |
tags[] | examples | Array of example prompts/inputs for each tag |
security | encryption | Declare E2E encryption requirements (algorithm, consumerKeyRequired, keys) |
services | webhooks | Set true if the agent accepts webhook triggers |
extensions | (any) | Freeform metadata for custom integrations |
Populate tags[].examples whenever possible — they power the dashboard
"Try it" UI and help consumers understand agent capabilities.
For full handler signatures, project structure, and trigger-script shape, see [Agent Card Reference] (external).
IO Schema Rules
Update agent-card.json io to match the handler's expected input
and output shapes. Without a correct schema, the dashboard cannot
render input forms.
Required fields:
On each io.inputs[] | On each io.outputs[] |
|---|---|
id, description, contentType, required | id, contentType, guaranteed |
Transport classes (determined by contentType):
| Class | contentType examples | Rules |
|---|---|---|
| form-class | application/json, */*+json | schema and example required. schema.type must be "object" with a properties map. Each property uses type and title. |
| text-class | text/plain, text/markdown | schema, accept, maxSizeBytes all forbidden. Renders as textarea. |
| file-class | image/png, application/pdf | schema forbidden. Optional |
Content truncated.
When not to use it
- →When building a brand-new agent from scratch
- →When needing to use Python for agent development without explicit user request
Limitations
- →Not for building brand-new agents from nothing.
- →Default language is Node (TypeScript), Python only on explicit request.
How it compares
This skill offers specialized guidance for post-build agent management within the Blocks Network, unlike general agent development instructions.
Compared to similar skills
blocks-network side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| blocks-network (this skill) | 0 | 19d | Caution | Intermediate |
| create-mcp-server | 0 | 4mo | No flags | Intermediate |
| mcp-builder | 136 | 3mo | Review | Advanced |
| playwright-browser-automation | 29 | 7mo | Review | Intermediate |
Try saying
Example prompts that trigger this skill in your AI assistant.
You might also like
create-mcp-server
appliedcognetics
Scaffold a local MCP server with synthetic data for agentic system development. Use when creating a new data source, building tool endpoints, or generating test data for agents to consume.
mcp-builder
anthropics
Guide for creating high-quality MCP (Model Context Protocol) servers that enable LLMs to interact with external services through well-designed tools. Use when building MCP servers to integrate external APIs or services, whether in Python (FastMCP) or Node/TypeScript (MCP SDK).
playwright-browser-automation
lackeyjb
Complete browser automation with Playwright. Auto-detects dev servers, writes clean test scripts to /tmp. Test pages, fill forms, take screenshots, check responsive design, validate UX, test login flows, check links, automate any browser task. Use when user wants to test websites, automate browser interactions, validate web functionality, or perform any browser-based testing.
codex-skill
feiskyer
Use when user asks to leverage codex, gpt-5, or gpt-5.1 to implement something (usually implement a plan or feature designed by Claude). Provides non-interactive automation mode for hands-off task execution without approval prompts.
bullmq-specialist
davila7
BullMQ expert for Redis-backed job queues, background processing, and reliable async execution in Node.js/TypeScript applications. Use when: bullmq, bull queue, redis queue, background job, job queue.
run-nx-generator
nrwl
Run Nx generators with prioritization for workspace-plugin generators. Use this when generating code, scaffolding new features, or automating repetitive tasks in the monorepo.