Templates let you package an agent configuration for reuse or sharing. This guide walks through creating a template, testing it by deploying your own agent, and optionally submitting it to the marketplace.Documentation Index
Fetch the complete documentation index at: https://docs.pinata.cloud/llms.txt
Use this file to discover all available pages before exploring further.
Reference Template
Clone this starter repo to create your own template.
Clone the Starter
Fork or clone the reference template to get started:Configure manifest.json
The manifest defines your agent’s identity, required secrets, skills, and behavior. It includes a_docs block documenting every field.
| Section | What it does |
|---|---|
agent | Name, description, vibe, emoji |
model | Default AI model |
secrets | Encrypted API keys and credentials |
skills | Attachable skill packages — objects with clawhub_slug or cid and a name (max 10) |
tasks | Cron-scheduled prompts (max 20) |
scripts | Lifecycle hooks - build runs after git push, start runs on agent boot |
routes | Port forwarding for web apps/APIs (max 10) |
channels | Telegram, Discord, Slack configuration |
template | Marketplace listing metadata |
Skills
Skills are objects with aname and either a clawhub_slug or a cid. Use clawhub_slug for marketplace skills — they’ll automatically resolve to the latest version when someone deploys your template. Use cid to pin a specific uploaded skill by its IPFS CID.
Example
Here’s a complete manifest that includes secrets, skills, lifecycle scripts, a web route, and a daily scheduled task:Customize Workspace Files
Files inworkspace/ are copied to the agent’s workspace on deploy. Customize these to define your agent’s personality and behavior:
| File | Purpose |
|---|---|
BOOTSTRAP.md | First-run conversation guide (self-deletes after setup) |
SOUL.md | Agent personality and principles - customize this |
AGENTS.md | Workspace conventions, memory system, safety rules |
IDENTITY.md | Agent name, vibe, emoji (filled in during bootstrap) |
USER.md | Notes about the human (learned over time) |
TOOLS.md | Environment-specific notes |
HEARTBEAT.md | Periodic tasks (empty by default) |
SOUL.md to give your agent a distinct personality, and BOOTSTRAP.md if you want a custom onboarding flow.
Add Web App Support (Optional)
If your agent runs a server, API, or frontend dev server, add two things tomanifest.json:
scripts- lifecycle hooks that install deps and start the serverroutes- port forwarding rules that expose the server to the internet
build- Runs once after deploy or git push (e.g.npm install, compile). Executes from/home/node/clawd. Output logged to/tmp/user-build.log. Max 5 min timeout. If build fails, start does not run.start- Launches a long-running background process after build completes (e.g. a web server). Executes from/home/node/clawd. Output logged to/tmp/user-start.log. Runs detached so it survives the runner exiting.- Retry scripts - If you need to re-run the build/start lifecycle (e.g. after pushing changes), use the Retry Scripts option in your agent’s settings or call the API endpoint.
- Your server must bind to
0.0.0.0, notlocalhost, or it won’t be reachable - Set
protected: falsefor public routes, ortrue(default) to require auth - Use
__AGENT_HOST__as a placeholder in config files - it gets replaced at runtime with the agent’s public hostname - For WebSocket/HMR setups (e.g. Vite), connect via WSS on port 443 through
__AGENT_HOST__
Deploy From Your Template
You can deploy an agent from your template before submitting it to the marketplace. This lets you test and iterate on your template. Via the UI:- Go to agents.pinata.cloud/agents and click Create Agent
- Select Start from a Template
- Paste your public repository URL (GitHub or GitLab)
- Complete the setup flow and deploy

Submit to Marketplace (Optional)
Share your template with the community by submitting it for review. Via the UI:- Go to agents.pinata.cloud/templates/submit
- Enter your public repository URL
- Click Validate to check for required files
- Review the parsed manifest and workspace files
- Click Submit to send for review
- draft → pending_review → published (or rejected)
- Published templates can be archived (soft-deleted) and resubmitted later