v2.20.0
v2.20.0 - Memory Clipboard: The Crossroads for AI Data Exchange
This release introduces Memory Clipboard, a persistent storage system that turns Plugged.in into the crossroads for AI data exchange. Store data from Claude, access it from Python. Save results from Cursor, retrieve them in Go. Your AI agents can finally persist state across sessions and platforms.
✨ New Features
Memory Clipboard - Persistent AI Agent Storage
Your AI agents can now store and retrieve data across sessions - text, JSON, images, code snippets, and more.
Storage Types:
- Named entries - Key-value storage like
clipboard["api_response"] - Indexed arrays - Stack-based storage with
pushandpopoperations - 2MB per entry - Plenty of room for images and large JSON payloads
Supported Content Types:
text/plain- Plain text and notesapplication/json- API responses, configs, structured data (with syntax highlighting)image/png,image/jpeg,image/webp,image/gif- Images with thumbnail previewstext/markdown- Formatted documentationtext/x-code- Code snippets in any language- Any custom MIME type you need
Multiple Access Methods:
| Method | Install |
|---|---|
| MCP Tools | Built-in for Claude, Cursor, Windsurf |
| JavaScript/TypeScript SDK | npm install pluggedinkit-js |
| Python SDK (sync + async) | pip install pluggedinkit |
| Go SDK | go get github.com/veriteknik/pluggedinkit-go |
| REST API | Direct HTTP access |
Source Tracking
Every clipboard entry now tracks its origin with a source field:
ui- Created via web interfacesdk- Created via JavaScript, Python, or Go SDKmcp- Created via MCP proxy tools
Perfect for auditing complex multi-agent workflows!
File Upload Support
- Drag & Drop file uploads in the Clipboard Memory UI
- Support for images, PDFs, JSON, and text files (up to 256KB via UI)
- Image preview for uploaded image files
- Auto-detection of content type and base64 encoding
Visual Dashboard
The Memory section now includes:
- Grid and table view modes
- Image thumbnails with full-size preview modal
- JSON syntax highlighting
- Content type badges
- Expiration countdown display
- One-click copy to clipboard
- Bulk delete and clear all options
Garbage Collection
- Cleanup endpoint (
/api/clipboard/cleanup) ready for cron scheduling - Automatically deletes expired entries (default 24h TTL)
- Monitoring endpoint to check cleanup stats
🛠️ MCP Tools Added
| Tool | Description |
|---|---|
pluggedin_clipboard_set |
Store or update an entry with content type |
pluggedin_clipboard_get |
Retrieve an entry by name or index |
pluggedin_clipboard_delete |
Remove entries |
pluggedin_clipboard_list |
List all entries with filtering |
pluggedin_clipboard_push |
Add to indexed stack |
pluggedin_clipboard_pop |
Remove and return from stack |
🔐 Security
- Profile-level isolation - Your data never leaks to other users
- Rate limiting - 60 writes/min, 100 reads/min, 30 deletes/min
- Content validation - Encoding verification with actual decode check
- Database constraints - CHECK constraints for data integrity
- Visibility controls - Private, workspace, or public access levels
📦 SDK Examples
// JavaScript/TypeScript
const entry = await client.clipboard.set({
name: 'api_response',
value: JSON.stringify(data),
contentType: 'application/json'
});
console.log(entry.source); // 'sdk'# Python
entry = client.clipboard.get(name="api_response")
print(entry.source) # 'sdk'// Go
entry, _ := client.Clipboard.GetByName(ctx, "api_response")
fmt.Println(entry.Source) // "sdk"🌍 Internationalization
Full translations for all 6 languages: English, Turkish, Chinese, Hindi, Japanese, Dutch
📚 Documentation
- SDK Docs: https://docs.plugged.in/sdks
- Full Changelog: v2.19.0...v2.20.0