{
  "schemaVersion": "1.0",
  "item": {
    "slug": "codehooks-backend",
    "name": "Codehooks Backend",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/canuto/codehooks-backend",
    "canonicalUrl": "https://clawhub.ai/canuto/codehooks-backend",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/codehooks-backend",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=codehooks-backend",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "CLAUDE.md",
      "README.md",
      "SKILL.md",
      "examples/daily-job.js",
      "examples/queue-worker.js",
      "examples/webhook-handler.js"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "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."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "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. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "slug": "codehooks-backend",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-01T22:21:17.747Z",
      "expiresAt": "2026-05-08T22:21:17.747Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=codehooks-backend",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=codehooks-backend",
        "contentDisposition": "attachment; filename=\"codehooks-backend-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "codehooks-backend"
      },
      "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/codehooks-backend"
    },
    "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."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/codehooks-backend",
    "agentPageUrl": "https://openagent3.xyz/skills/codehooks-backend/agent",
    "manifestUrl": "https://openagent3.xyz/skills/codehooks-backend/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/codehooks-backend/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "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."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "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. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Codehooks Backend Skill",
        "body": "Give your OpenClaw agent a serverless backend for REST APIs, webhooks, data storage, scheduled jobs, queue workers, and autonomous workflows."
      },
      {
        "title": "Your agent can deploy code",
        "body": "With this skill, your agent can write JavaScript/TypeScript code and deploy it to a live serverless backend in 5 seconds. No human intervention required — the agent iterates autonomously.\n\nCodehooks has a free tier to get started, and paid plans have no extra charges for traffic or API calls — let your agent deploy without worrying about usage costs.\n\n⚠️ Warning: This gives your agent the ability to deploy and run code on a live server. Review your agent's actions, set appropriate permissions, and monitor usage. You are responsible for any code your agent deploys."
      },
      {
        "title": "What this skill enables",
        "body": "REST APIs with automatic OpenAPI/Swagger documentation\nInstant CRUD APIs using crudlify() with schema validation\nWebhook endpoints that external services can call (Stripe, GitHub, Shopify, etc.)\nPersistent storage beyond local memory (NoSQL + key-value)\nBackground jobs and scheduled tasks that run 24/7\nQueue workers for async processing\nAutonomous workflows with retries, branching, and state management"
      },
      {
        "title": "Setup",
        "body": "Human does once:\n\nnpm install -g codehooks\ncoho login\ncoho create openclaw-backend\ncoho add-admintoken\n\nGive the admin token to your agent.\n\nAgent uses:\n\nexport CODEHOOKS_ADMIN_TOKEN=\"your-token-here\"\ncoho deploy --admintoken $CODEHOOKS_ADMIN_TOKEN\n\nThe agent can now deploy code, query data, and manage the backend."
      },
      {
        "title": "Essential: Load the development context",
        "body": "Before building anything, run:\n\ncoho prompt\n\nThis outputs the complete Codehooks development prompt — routing, database, queues, jobs, workflows, and the full codehooks-js API. Copy it into your context to build any backend feature correctly.\n\nmacOS shortcut:\n\ncoho prompt | pbcopy"
      },
      {
        "title": "Understand existing projects",
        "body": "Before modifying an existing project, get the full picture:\n\n# Returns JSON with collections, stats, recent deploys, and error logs\ncoho doctor\n\n# Describe the app structure — collections, schemas, queues, files\ncoho describe\n\ncoho doctor is the most powerful diagnostic command — it returns structured JSON covering database collections with document counts, deployment history, queue and worker status, and recent error logs. Always run it when joining an existing project or debugging issues.\n\ncoho describe complements doctor by showing the structural overview: what collections exist, their schemas, registered queues, and deployed files."
      },
      {
        "title": "Commands your agent can use",
        "body": "All commands accept --admintoken $CODEHOOKS_ADMIN_TOKEN for non-interactive use. Full CLI reference: https://codehooks.io/docs/cli\n\nCommandWhat it doescoho promptGet the full development contextcoho doctorDiagnose project state — collections, stats, deploys, error logscoho describeDescribe app structure — collections, schemas, queues, filescoho deployDeploy code (5 seconds to live)coho info --examplesGet endpoint URLs with cURL examplescoho log -fStream logs in real-timecoho query -c <collection> -q 'field=value'Query the databasecoho queue-statusCheck queue statuscoho workflow-statusCheck workflow statuscoho import -c <collection> --file data.jsonImport datacoho export -c <collection>Export data"
      },
      {
        "title": "Instant CRUD API with validation",
        "body": "import { app } from 'codehooks-js';\nimport * as Yup from 'yup';\n\nconst productSchema = Yup.object({\n  name: Yup.string().required(),\n  price: Yup.number().positive().required(),\n  category: Yup.string().required()\n});\n\n// Creates GET, POST, PUT, DELETE endpoints automatically\n// OpenAPI docs available at /.well-known/openapi\napp.crudlify({ product: productSchema });\n\nexport default app.init();"
      },
      {
        "title": "Webhook that stores incoming data",
        "body": "import { app, Datastore } from 'codehooks-js';\n\n// Allow webhook endpoint without JWT authentication\napp.auth('/webhook', (req, res, next) => {\n  next();\n});\n\napp.post('/webhook', async (req, res) => {\n  const conn = await Datastore.open();\n  await conn.insertOne('events', {\n    ...req.body,\n    receivedAt: new Date().toISOString()\n  });\n  res.json({ ok: true });\n});\n\nexport default app.init();"
      },
      {
        "title": "Scheduled job (runs daily at 9am)",
        "body": "import { app, Datastore } from 'codehooks-js';\n\napp.job('0 9 * * *', async (_, { jobId }) => {\n  console.log(`Running job: ${jobId}`);\n  const conn = await Datastore.open();\n  const events = await conn.getMany('events', {}).toArray();\n  console.log('Daily summary:', events.length, 'events');\n});\n\nexport default app.init();"
      },
      {
        "title": "Queue worker for async processing",
        "body": "import { app, Datastore } from 'codehooks-js';\n\napp.worker('processTask', async (req, res) => {\n  const { task } = req.body.payload;\n  const conn = await Datastore.open();\n  await conn.updateOne('tasks', { _id: task.id }, { $set: { status: 'completed' } });\n  res.end();\n});\n\nexport default app.init();"
      },
      {
        "title": "Autonomous workflow (multi-step with retries)",
        "body": "import { app } from 'codehooks-js';\n\nconst workflow = app.createWorkflow('myTask', 'Process tasks autonomously', {\n  begin: async function (state, goto) {\n    console.log('Starting task:', state.taskId);\n    goto('process', state);\n  },\n  process: async function (state, goto) {\n    // Do work here - workflow handles retries and state\n    state = { ...state, result: 'processed' };\n    goto('complete', state);\n  },\n  complete: function (state, goto) {\n    console.log('Done:', state.result);\n    goto(null, state); // End workflow\n  }\n});\n\n// Agent starts workflow via API\napp.post('/start', async (req, res) => {\n  const result = await workflow.start(req.body);\n  res.json(result);\n});\n\nexport default app.init();"
      },
      {
        "title": "Important patterns",
        "body": "getMany() returns a stream — use .toArray() when you need to manipulate data (sort, filter, map)\nWebhook signatures: Use req.rawBody for signature verification, not req.body\nNo filesystem access: fs, path, os are not available — this is a serverless environment\nSecrets: Use process.env.VARIABLE_NAME for API keys and secrets\nStatic files: app.static({ route: '/app', directory: '/public' }) serves static sites from deployed source\nFile storage: app.storage({ route: '/docs', directory: '/uploads' }) serves uploaded files"
      },
      {
        "title": "Development workflow: Let your agent build new endpoints",
        "body": "Agent runs coho prompt and loads the development context\nFor existing projects, agent runs coho doctor and coho describe to understand what's deployed\nAgent writes code using codehooks-js patterns\nAgent runs coho deploy (5 seconds to live)\nAgent verifies with coho log -f or tests endpoints with coho info --examples\nAgent iterates — the fast deploy loop enables rapid development"
      },
      {
        "title": "When to use this skill",
        "body": "You need a reliable webhook URL for Stripe, GitHub, Shopify, etc.\nYou want persistent storage outside your local machine\nYou need scheduled jobs that run even when your device is off\nYou want to offload sensitive API integrations to a sandboxed environment\nYou need queues for async processing\nYou want autonomous multi-step workflows that run independently with retries"
      },
      {
        "title": "Resources",
        "body": "Documentation: https://codehooks.io/docs\nCLI reference: https://codehooks.io/docs/cli\nAI prompt: Run coho prompt or visit https://codehooks.io/llms.txt\nTemplates: https://github.com/RestDB/codehooks-io-templates\nMCP Server: https://github.com/RestDB/codehooks-mcp-server"
      }
    ],
    "body": "Codehooks Backend Skill\n\nGive your OpenClaw agent a serverless backend for REST APIs, webhooks, data storage, scheduled jobs, queue workers, and autonomous workflows.\n\nYour agent can deploy code\n\nWith this skill, your agent can write JavaScript/TypeScript code and deploy it to a live serverless backend in 5 seconds. No human intervention required — the agent iterates autonomously.\n\nCodehooks has a free tier to get started, and paid plans have no extra charges for traffic or API calls — let your agent deploy without worrying about usage costs.\n\n⚠️ Warning: This gives your agent the ability to deploy and run code on a live server. Review your agent's actions, set appropriate permissions, and monitor usage. You are responsible for any code your agent deploys.\n\nWhat this skill enables\nREST APIs with automatic OpenAPI/Swagger documentation\nInstant CRUD APIs using crudlify() with schema validation\nWebhook endpoints that external services can call (Stripe, GitHub, Shopify, etc.)\nPersistent storage beyond local memory (NoSQL + key-value)\nBackground jobs and scheduled tasks that run 24/7\nQueue workers for async processing\nAutonomous workflows with retries, branching, and state management\nSetup\n\nHuman does once:\n\nnpm install -g codehooks\ncoho login\ncoho create openclaw-backend\ncoho add-admintoken\n\n\nGive the admin token to your agent.\n\nAgent uses:\n\nexport CODEHOOKS_ADMIN_TOKEN=\"your-token-here\"\ncoho deploy --admintoken $CODEHOOKS_ADMIN_TOKEN\n\n\nThe agent can now deploy code, query data, and manage the backend.\n\nEssential: Load the development context\n\nBefore building anything, run:\n\ncoho prompt\n\n\nThis outputs the complete Codehooks development prompt — routing, database, queues, jobs, workflows, and the full codehooks-js API. Copy it into your context to build any backend feature correctly.\n\nmacOS shortcut:\n\ncoho prompt | pbcopy\n\nUnderstand existing projects\n\nBefore modifying an existing project, get the full picture:\n\n# Returns JSON with collections, stats, recent deploys, and error logs\ncoho doctor\n\n# Describe the app structure — collections, schemas, queues, files\ncoho describe\n\n\ncoho doctor is the most powerful diagnostic command — it returns structured JSON covering database collections with document counts, deployment history, queue and worker status, and recent error logs. Always run it when joining an existing project or debugging issues.\n\ncoho describe complements doctor by showing the structural overview: what collections exist, their schemas, registered queues, and deployed files.\n\nCommands your agent can use\n\nAll commands accept --admintoken $CODEHOOKS_ADMIN_TOKEN for non-interactive use. Full CLI reference: https://codehooks.io/docs/cli\n\nCommand\tWhat it does\ncoho prompt\tGet the full development context\ncoho doctor\tDiagnose project state — collections, stats, deploys, error logs\ncoho describe\tDescribe app structure — collections, schemas, queues, files\ncoho deploy\tDeploy code (5 seconds to live)\ncoho info --examples\tGet endpoint URLs with cURL examples\ncoho log -f\tStream logs in real-time\ncoho query -c <collection> -q 'field=value'\tQuery the database\ncoho queue-status\tCheck queue status\ncoho workflow-status\tCheck workflow status\ncoho import -c <collection> --file data.json\tImport data\ncoho export -c <collection>\tExport data\nCode examples\nInstant CRUD API with validation\nimport { app } from 'codehooks-js';\nimport * as Yup from 'yup';\n\nconst productSchema = Yup.object({\n  name: Yup.string().required(),\n  price: Yup.number().positive().required(),\n  category: Yup.string().required()\n});\n\n// Creates GET, POST, PUT, DELETE endpoints automatically\n// OpenAPI docs available at /.well-known/openapi\napp.crudlify({ product: productSchema });\n\nexport default app.init();\n\nWebhook that stores incoming data\nimport { app, Datastore } from 'codehooks-js';\n\n// Allow webhook endpoint without JWT authentication\napp.auth('/webhook', (req, res, next) => {\n  next();\n});\n\napp.post('/webhook', async (req, res) => {\n  const conn = await Datastore.open();\n  await conn.insertOne('events', {\n    ...req.body,\n    receivedAt: new Date().toISOString()\n  });\n  res.json({ ok: true });\n});\n\nexport default app.init();\n\nScheduled job (runs daily at 9am)\nimport { app, Datastore } from 'codehooks-js';\n\napp.job('0 9 * * *', async (_, { jobId }) => {\n  console.log(`Running job: ${jobId}`);\n  const conn = await Datastore.open();\n  const events = await conn.getMany('events', {}).toArray();\n  console.log('Daily summary:', events.length, 'events');\n});\n\nexport default app.init();\n\nQueue worker for async processing\nimport { app, Datastore } from 'codehooks-js';\n\napp.worker('processTask', async (req, res) => {\n  const { task } = req.body.payload;\n  const conn = await Datastore.open();\n  await conn.updateOne('tasks', { _id: task.id }, { $set: { status: 'completed' } });\n  res.end();\n});\n\nexport default app.init();\n\nAutonomous workflow (multi-step with retries)\nimport { app } from 'codehooks-js';\n\nconst workflow = app.createWorkflow('myTask', 'Process tasks autonomously', {\n  begin: async function (state, goto) {\n    console.log('Starting task:', state.taskId);\n    goto('process', state);\n  },\n  process: async function (state, goto) {\n    // Do work here - workflow handles retries and state\n    state = { ...state, result: 'processed' };\n    goto('complete', state);\n  },\n  complete: function (state, goto) {\n    console.log('Done:', state.result);\n    goto(null, state); // End workflow\n  }\n});\n\n// Agent starts workflow via API\napp.post('/start', async (req, res) => {\n  const result = await workflow.start(req.body);\n  res.json(result);\n});\n\nexport default app.init();\n\nImportant patterns\ngetMany() returns a stream — use .toArray() when you need to manipulate data (sort, filter, map)\nWebhook signatures: Use req.rawBody for signature verification, not req.body\nNo filesystem access: fs, path, os are not available — this is a serverless environment\nSecrets: Use process.env.VARIABLE_NAME for API keys and secrets\nStatic files: app.static({ route: '/app', directory: '/public' }) serves static sites from deployed source\nFile storage: app.storage({ route: '/docs', directory: '/uploads' }) serves uploaded files\nDevelopment workflow: Let your agent build new endpoints\nAgent runs coho prompt and loads the development context\nFor existing projects, agent runs coho doctor and coho describe to understand what's deployed\nAgent writes code using codehooks-js patterns\nAgent runs coho deploy (5 seconds to live)\nAgent verifies with coho log -f or tests endpoints with coho info --examples\nAgent iterates — the fast deploy loop enables rapid development\nWhen to use this skill\nYou need a reliable webhook URL for Stripe, GitHub, Shopify, etc.\nYou want persistent storage outside your local machine\nYou need scheduled jobs that run even when your device is off\nYou want to offload sensitive API integrations to a sandboxed environment\nYou need queues for async processing\nYou want autonomous multi-step workflows that run independently with retries\nResources\nDocumentation: https://codehooks.io/docs\nCLI reference: https://codehooks.io/docs/cli\nAI prompt: Run coho prompt or visit https://codehooks.io/llms.txt\nTemplates: https://github.com/RestDB/codehooks-io-templates\nMCP Server: https://github.com/RestDB/codehooks-mcp-server"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/canuto/codehooks-backend",
    "publisherUrl": "https://clawhub.ai/canuto/codehooks-backend",
    "owner": "canuto",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/codehooks-backend",
    "downloadUrl": "https://openagent3.xyz/downloads/codehooks-backend",
    "agentUrl": "https://openagent3.xyz/skills/codehooks-backend/agent",
    "manifestUrl": "https://openagent3.xyz/skills/codehooks-backend/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/codehooks-backend/agent.md"
  }
}