caffeinelabs avatar

Extension Object Storage

Adds off-chain file storage with on-chain references for handling images, videos, and documents beyond IC limits. You use Storage.ExternalBlob types in your backend to track files while the actual content lives elsewhere with browser-cached HTTP access. Setup requires both the mops package and npm package together or uploads silently fail with 403s. The frontend ExternalBlob class handles uploads with progress tracking and gives you getDirectURL() for display or getBytes() for downloads. Main gotcha is never using Text for file fields and making sure the mixin goes in main.mo. Good fit if you need a gallery or file manager without hitting canister storage constraints.

skills.sh installs
30.8K
GitHub stars
2
last updated
Aug 21, 2026

Install

$ npx -y skills add caffeinelabs/skills --skill extension-object-storage --agent claude-code

Installs into .claude/skills of the current project.

Files

Object Storage

Object storage extension for Caffeine AI.

Overview

This skill adds off-chain file/object storage with on-chain references. The MixinObjectStorage mixin provides infrastructure for file operations; you track uploaded files in your own data structures using Storage.ExternalBlob.

Required Setup Checklist

All four steps are mandatory. Skipping any one causes 403 Forbidden: Invalid payload at upload time.

  1. mops dependency — add caffeineai-object-storage to mops.toml under [dependencies].
  2. Mixin invocation — include MixinObjectStorage() in main.mo (imported from "mo:caffeineai-object-storage/Mixin").
  3. Storage.ExternalBlob types — every data field that represents a file MUST use Storage.ExternalBlob, never Text.
  4. Frontend npm package — @caffeineai/object-storage installed and ExternalBlob.fromBytes(bytes, file.type, file.name) used at the call site.

Sponsors

Details

Repository
github.com/caffeinelabs/skills
Category
Automation & Workflows
First seen
Jul 14, 2026

More from caffeinelabs/skills

All 20
1googleworkspace avatarrecipe-post-mortem-setupgoogleworkspace/cliCreate a Google Docs post-mortem, schedule a Google Calendar review, and notify via Chat.30.5Kskills.sh installs
2jimliu avatarbaoyu-comicjimliu/baoyu-skillsKnowledge comic creator supporting multiple art styles and tones. Creates original educational comics with detailed panel layouts and batch-capable image genera30.3Kskills.sh installs
3stablyai avatarorca-linearstablyai/orcaUse Orca's Linear CLI through `orca linear ...` commands to read linked ticket context with `orca linear issue --current --full --json`, post completion updates29.7Kskills.sh installs
4better-auth avatarcreate-authbetter-auth/skillsScaffold and implement authentication in TypeScript/JavaScript apps with Better Auth framework detection, database adapter setup, and OAuth integration.29.3Kskills.sh installs
5warpdotdev avatarspec-driven-implementationwarpdotdev/common-skillsDrive a spec-first workflow for substantial features by writing PRODUCT.md before implementation, writing TECH.md when warranted, and keeping both specs updated28.9Kskills.sh installs
6jimliu avatarbaoyu-translatejimliu/baoyu-skillsThis skill should be used when the user asks to "translate", "翻译", "精翻", "translate article", "translate to Chinese", "translate to English", "改成中文", "改成英文", "c26.1Kskills.sh installs