Skip to content

v2.20.0

Choose a tag to compare

@ckaraca ckaraca released this 28 Nov 17:23

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 push and pop operations
  • 2MB per entry - Plenty of room for images and large JSON payloads

Supported Content Types:

  • text/plain - Plain text and notes
  • application/json - API responses, configs, structured data (with syntax highlighting)
  • image/png, image/jpeg, image/webp, image/gif - Images with thumbnail previews
  • text/markdown - Formatted documentation
  • text/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 interface
  • sdk - Created via JavaScript, Python, or Go SDK
  • mcp - 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