Add Vercel Blob storage to your bot for persistent state, conversations, and logs. Uses JSON files stored in Vercel's object storage. Perfect for bots that need to remember state across sandbox restarts.
From clawnet-botnpx claudepluginhub b-open-io/claude-plugins --plugin clawnet-botThis skill uses the workspace's default tool permissions.
bot/index.tsscripts/setup.shSearches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Searches prompts.chat for AI prompt templates by keyword or category, retrieves by ID with variable handling, and improves prompts via AI. Use for discovering or enhancing prompts.
Guides agent creation for Claude Code plugins with file templates, frontmatter specs (name, description, model), triggering examples, system prompts, and best practices.
This skill adds Vercel Blob storage to your bot for persistent data across sandbox restarts.
Data is organized by bot name:
bots/{bot-name}/
├── state.json # Bot state (counters, config, etc.)
├── config.json # Bot configuration
├── conversations/
│ ├── {session-id}.json # Individual conversation sessions
│ └── ...
└── logs/
└── {YYYY-MM-DD}.json # Daily log files
Run the setup script:
./skills/vercel-blob/scripts/setup.sh
This creates a Vercel Blob store for your bot.
Once added, your bot gets these endpoints:
GET /api/storage/state - Load current statePOST /api/storage/state - Save stateGET /api/storage/conversations - List all conversationsGET /api/storage/conversations/:id - Load specific conversationPOST /api/storage/conversations/:id - Save conversationPOST /api/storage/log - Append log entryGET /api/storage/logs - Get recent logs// Save bot state
await fetch('/api/storage/state', {
method: 'POST',
body: JSON.stringify({
lastRun: Date.now(),
counter: 42,
config: { theme: 'dark' }
})
});
// Load state
const state = await fetch('/api/storage/state').then(r => r.json());
// Log activity
await fetch('/api/storage/log', {
method: 'POST',
body: JSON.stringify({
level: 'info',
message: 'Bot started',
metadata: { version: '1.0.0' }
})
});
// Save conversation
await fetch('/api/storage/conversations/session-123', {
method: 'POST',
body: JSON.stringify({
messages: [
{ role: 'user', content: 'Hello!' },
{ role: 'bot', content: 'Hi there!' }
]
})
});
Add to .env.local:
BLOB_READ_WRITE_TOKEN=your_token_here
state.json - Small, frequently updated (bot state)conversations/*.json - Session-based (conversation history)logs/*.json - Append-only (daily log files)