# Send NetPad - Build forms, workflows and manage MongoDB data to your agent
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
## Fast path
- Download the package from Yavira.
- Extract it into a folder your agent can access.
- Paste one of the prompts below and point your agent at the extracted folder.
## Suggested prompts
### New install

```text
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
```
### Upgrade existing

```text
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
```
## Machine-readable fields
```json
{
  "schemaVersion": "1.0",
  "item": {
    "slug": "netpad",
    "name": "NetPad - Build forms, workflows and manage MongoDB data",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/mrlynn/netpad",
    "canonicalUrl": "https://clawhub.ai/mrlynn/netpad",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadUrl": "/downloads/netpad",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=netpad",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "packageFormat": "ZIP package",
    "primaryDoc": "SKILL.md",
    "includedAssets": [
      "SKILL.md",
      "scripts/netpad.sh",
      "references/cli-commands.md",
      "references/api-endpoints.md"
    ],
    "downloadMode": "redirect",
    "sourceHealth": {
      "source": "tencent",
      "slug": "netpad",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-06T01:44:13.728Z",
      "expiresAt": "2026-05-13T01:44:13.728Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=netpad",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=netpad",
        "contentDisposition": "attachment; filename=\"netpad-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "netpad"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/netpad"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    }
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/netpad",
    "downloadUrl": "https://openagent3.xyz/downloads/netpad",
    "agentUrl": "https://openagent3.xyz/skills/netpad/agent",
    "manifestUrl": "https://openagent3.xyz/skills/netpad/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/netpad/agent.md"
  }
}
```
## Documentation

### NetPad

Manage forms, submissions, users, and RBAC via CLI and REST API.

### Two Tools

ToolInstallPurposenetpad CLInpm i -g @netpad/cliRBAC, marketplace, packagesREST APIcurl + API keyForms, submissions, data

### Authentication

export NETPAD_API_KEY="np_live_xxx"  # Production
export NETPAD_API_KEY="np_test_xxx"  # Test (can submit to drafts)

All requests use Bearer token:

curl -H "Authorization: Bearer $NETPAD_API_KEY" \\
  "https://www.netpad.io/api/v1/..."

### Quick Reference

TaskEndpointMethodList projects/projectsGETList forms/formsGETCreate form/formsPOSTGet form/forms/{formId}GETUpdate/publish form/forms/{formId}PATCHDelete form/forms/{formId}DELETEList submissions/forms/{formId}/submissionsGETCreate submission/forms/{formId}/submissionsPOSTGet submission/forms/{formId}/submissions/{id}GETDelete submission/forms/{formId}/submissions/{id}DELETE

### Projects

Forms belong to projects. Get project ID before creating forms.

# List projects
curl -H "Authorization: Bearer $NETPAD_API_KEY" \\
  "https://www.netpad.io/api/v1/projects" | jq '.data[] | {projectId, name}'

### List Forms

curl -H "Authorization: Bearer $NETPAD_API_KEY" \\
  "https://www.netpad.io/api/v1/forms?status=published&pageSize=50"

### Create Form

curl -X POST -H "Authorization: Bearer $NETPAD_API_KEY" \\
  -H "Content-Type: application/json" \\
  "https://www.netpad.io/api/v1/forms" \\
  -d '{
    "name": "Contact Form",
    "description": "Simple contact form",
    "projectId": "proj_xxx",
    "fields": [
      {"path": "name", "label": "Name", "type": "text", "required": true},
      {"path": "email", "label": "Email", "type": "email", "required": true},
      {"path": "phone", "label": "Phone", "type": "phone"},
      {"path": "message", "label": "Message", "type": "textarea"}
    ]
  }'

### Get Form Details

curl -H "Authorization: Bearer $NETPAD_API_KEY" \\
  "https://www.netpad.io/api/v1/forms/{formId}"

### Publish Form

curl -X PATCH -H "Authorization: Bearer $NETPAD_API_KEY" \\
  -H "Content-Type: application/json" \\
  "https://www.netpad.io/api/v1/forms/{formId}" \\
  -d '{"status": "published"}'

### Update Form Fields

curl -X PATCH -H "Authorization: Bearer $NETPAD_API_KEY" \\
  -H "Content-Type: application/json" \\
  "https://www.netpad.io/api/v1/forms/{formId}" \\
  -d '{
    "fields": [
      {"path": "name", "label": "Full Name", "type": "text", "required": true},
      {"path": "email", "label": "Email Address", "type": "email", "required": true},
      {"path": "company", "label": "Company", "type": "text"},
      {"path": "role", "label": "Role", "type": "select", "options": [
        {"value": "dev", "label": "Developer"},
        {"value": "pm", "label": "Product Manager"},
        {"value": "exec", "label": "Executive"}
      ]}
    ]
  }'

### Delete Form

curl -X DELETE -H "Authorization: Bearer $NETPAD_API_KEY" \\
  "https://www.netpad.io/api/v1/forms/{formId}"

### Submit Data

curl -X POST -H "Authorization: Bearer $NETPAD_API_KEY" \\
  -H "Content-Type: application/json" \\
  "https://www.netpad.io/api/v1/forms/{formId}/submissions" \\
  -d '{
    "data": {
      "name": "John Doe",
      "email": "john@example.com",
      "message": "Hello from the API!"
    }
  }'

### List Submissions

# Recent submissions
curl -H "Authorization: Bearer $NETPAD_API_KEY" \\
  "https://www.netpad.io/api/v1/forms/{formId}/submissions?pageSize=50"

# With date filter
curl -H "Authorization: Bearer $NETPAD_API_KEY" \\
  "https://www.netpad.io/api/v1/forms/{formId}/submissions?startDate=2026-01-01T00:00:00Z"

# Sorted ascending
curl -H "Authorization: Bearer $NETPAD_API_KEY" \\
  "https://www.netpad.io/api/v1/forms/{formId}/submissions?sortOrder=asc"

### Get Single Submission

curl -H "Authorization: Bearer $NETPAD_API_KEY" \\
  "https://www.netpad.io/api/v1/forms/{formId}/submissions/{submissionId}"

### Delete Submission

curl -X DELETE -H "Authorization: Bearer $NETPAD_API_KEY" \\
  "https://www.netpad.io/api/v1/forms/{formId}/submissions/{submissionId}"

### Field Types

TypeDescriptionValidationtextSingle line textminLength, maxLength, patternemailEmail addressBuilt-in validationphonePhone numberBuilt-in validationnumberNumeric inputmin, maxdateDate picker-selectDropdownoptions: [{value, label}]checkboxBoolean-textareaMulti-line textminLength, maxLengthfileFile upload-

### Field Schema

{
  "path": "fieldName",
  "label": "Display Label",
  "type": "text",
  "required": true,
  "placeholder": "Hint text",
  "helpText": "Additional guidance",
  "options": [{"value": "a", "label": "Option A"}],
  "validation": {
    "minLength": 1,
    "maxLength": 500,
    "pattern": "^[A-Z].*",
    "min": 0,
    "max": 100
  }
}

### Create and Publish Form

# 1. Create draft
RESULT=$(curl -s -X POST -H "Authorization: Bearer $NETPAD_API_KEY" \\
  -H "Content-Type: application/json" \\
  "https://www.netpad.io/api/v1/forms" \\
  -d '{"name":"Survey","projectId":"proj_xxx","fields":[...]}')
FORM_ID=$(echo $RESULT | jq -r '.data.id')

# 2. Publish
curl -X PATCH -H "Authorization: Bearer $NETPAD_API_KEY" \\
  -H "Content-Type: application/json" \\
  "https://www.netpad.io/api/v1/forms/$FORM_ID" \\
  -d '{"status":"published"}'

### Export All Submissions

curl -H "Authorization: Bearer $NETPAD_API_KEY" \\
  "https://www.netpad.io/api/v1/forms/{formId}/submissions?pageSize=1000" \\
  | jq '.data[].data'

### Bulk Submit

for row in $(cat data.json | jq -c '.[]'); do
  curl -s -X POST -H "Authorization: Bearer $NETPAD_API_KEY" \\
    -H "Content-Type: application/json" \\
    "https://www.netpad.io/api/v1/forms/{formId}/submissions" \\
    -d "{\\"data\\":$row}"
done

### Search Forms

curl -H "Authorization: Bearer $NETPAD_API_KEY" \\
  "https://www.netpad.io/api/v1/forms?search=contact&status=published"

### Helper Script

Use scripts/netpad.sh for common operations:

# Make executable
chmod +x scripts/netpad.sh

# Usage
./scripts/netpad.sh projects list
./scripts/netpad.sh forms list published
./scripts/netpad.sh forms create "Contact Form" proj_xxx
./scripts/netpad.sh forms publish frm_xxx
./scripts/netpad.sh submissions list frm_xxx
./scripts/netpad.sh submissions create frm_xxx '{"name":"John","email":"john@example.com"}'
./scripts/netpad.sh submissions export frm_xxx > data.jsonl
./scripts/netpad.sh submissions count frm_xxx

### Rate Limits

LimitValueRequests/hour1,000Requests/day10,000

Headers: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset

### Success

{
  "success": true,
  "data": { ... },
  "pagination": {"total": 100, "page": 1, "pageSize": 20, "hasMore": true},
  "requestId": "uuid"
}

### Error

{
  "success": false,
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "Description",
    "details": {}
  },
  "requestId": "uuid"
}

### Environment Variables

# Required for REST API
export NETPAD_API_KEY="np_live_xxx"

# Optional (for local/staging)
export NETPAD_BASE_URL="https://staging.netpad.io/api/v1"

### NetPad CLI (@netpad/cli)

Install: npm i -g @netpad/cli

### Authentication

netpad login              # Opens browser
netpad whoami             # Check auth status
netpad logout             # Clear credentials

### Marketplace & Packages

# Search for apps
netpad search "helpdesk"

# Install an app
netpad install @netpad/helpdesk-app

# List installed
netpad list

# Create new app scaffold
netpad create-app my-app

# Submit to marketplace
netpad submit ./my-app

### RBAC - Users

# List org members
netpad users list -o org_xxx

# Add user
netpad users add user@example.com -o org_xxx --role member

# Change role
netpad users update user@example.com -o org_xxx --role admin

# Remove user
netpad users remove user@example.com -o org_xxx

### RBAC - Groups

# List groups
netpad groups list -o org_xxx

# Create group
netpad groups create "Engineering" -o org_xxx

# Add user to group
netpad groups add-member grp_xxx user@example.com -o org_xxx

# Delete group
netpad groups delete grp_xxx -o org_xxx

### RBAC - Roles

# List roles (builtin + custom)
netpad roles list -o org_xxx

# Create custom role
netpad roles create "Reviewer" -o org_xxx --base viewer --description "Can review submissions"

# View role details
netpad roles get role_xxx -o org_xxx

# Delete custom role
netpad roles delete role_xxx -o org_xxx

### RBAC - Assignments

# Assign role to user
netpad assign user user@example.com role_xxx -o org_xxx

# Assign role to group
netpad assign group grp_xxx role_xxx -o org_xxx

# Remove assignment
netpad unassign user user@example.com role_xxx -o org_xxx

### RBAC - Permissions

# List all permissions
netpad permissions list -o org_xxx

# Check user's effective permissions
netpad permissions check user@example.com -o org_xxx

### References

references/api-endpoints.md — Complete REST API endpoint docs
references/cli-commands.md — Full CLI command reference

### Author

Michael Lynn — Principal Staff Developer Advocate at MongoDB

🌐 Website: mlynn.org
🐙 GitHub: @mrlynn
💼 LinkedIn: linkedin.com/in/mlynn
## Trust
- Source: tencent
- Verification: Indexed source record
- Publisher: mrlynn
- Version: 1.0.0
## Source health
- Status: healthy
- Item download looks usable.
- Yavira can redirect you to the upstream package for this item.
- Health scope: item
- Reason: direct_download_ok
- Checked at: 2026-05-06T01:44:13.728Z
- Expires at: 2026-05-13T01:44:13.728Z
- Recommended action: Download for OpenClaw
## Links
- [Detail page](https://openagent3.xyz/skills/netpad)
- [Send to Agent page](https://openagent3.xyz/skills/netpad/agent)
- [JSON manifest](https://openagent3.xyz/skills/netpad/agent.json)
- [Markdown brief](https://openagent3.xyz/skills/netpad/agent.md)
- [Download page](https://openagent3.xyz/downloads/netpad)