A Claude Code skill that teaches AI agents how to build apps with TinyCloud as the backend.
Add this skill to your project, and your AI agent knows how to:
- Set up OpenKey authentication (passkeys + OAuth 2.1)
- Store data in TinyCloud KV (key-value), SQL (SQLite), or Vault (encrypted)
- Share data between users with UCAN delegations
- Build full-stack apps using the tinyboilerplate architecture
Copy the skill into your project's .claude/ directory:
# From your project root
mkdir -p .claude/skills
git clone --depth 1 https://github.com/TinyCloudLabs/tinycloud-app-dev.git /tmp/tc-skill
cp -r /tmp/tc-skill/.claude/skills/tinycloud-app-dev .claude/skills/
rm -rf /tmp/tc-skillOr add as a git submodule:
git submodule add https://github.com/TinyCloudLabs/tinycloud-app-dev.git .claude/skills/tinycloud-app-dev-repo
cp -r .claude/skills/tinycloud-app-dev-repo/.claude/skills/tinycloud-app-dev .claude/skills/Once installed, the skill activates automatically when you ask your agent to:
- "Build me a TinyCloud app"
- "Add TinyCloud storage to my project"
- "Set up OpenKey authentication"
- "Store data in a user's space"
The agent will scaffold working code with correct API signatures, error handling, and auth flows.
.claude/skills/tinycloud-app-dev/
├── SKILL.md # Core skill (loaded into context on trigger)
└── references/
├── sdk-quickstart.md # Package map + minimal examples
├── kv-service.md # KV service interface + patterns
├── sql-service.md # SQL service interface (Node.js only)
├── vault-service.md # Encrypted storage interface (browser only)
├── auth-patterns.md # OpenKey auth + TinyCloud session setup
├── delegations-and-sharing.md # UCAN delegations + sharing
├── backend-patterns.md # Three-actor architecture + tinyboilerplate
└── common-pitfalls.md # Platform gaps + known gotchas
npm install @tinycloud/web-sdk @openkey/sdkimport { OpenKey, OpenKeyEIP1193Provider } from '@openkey/sdk';
import { TinyCloudWeb } from '@tinycloud/web-sdk';
const openkey = new OpenKey({ host: 'https://openkey.so', appName: 'My App' });
const authResult = await openkey.connect();
const provider = new OpenKeyEIP1193Provider(openkey, authResult);
const tc = new TinyCloudWeb({
providers: { web3: { driver: provider } },
tinycloudHosts: ['https://node.tinycloud.xyz'],
spacePrefix: 'myapp',
autoCreateSpace: true,
});
await tc.signIn();
// Store and retrieve data
await tc.kv.put('settings', { theme: 'dark' });
const result = await tc.kv.get('settings');
if (result.ok) console.log(result.data.data);Clone the official boilerplate:
git clone https://github.com/TinyCloudLabs/tinyboilerplate.git myapp
cd myapp
bun install && bun run build && bun run generate-key
# Set VITE_OPENKEY_CLIENT_ID in .env
bun run devSee references/backend-patterns.md for the three-actor architecture.
| Service | What | Browser | Node.js |
|---|---|---|---|
| KV | Key-value storage (JSON, binary) | Yes | Yes |
| SQL | SQLite databases | No | Yes |
| Vault | Client-side encrypted storage | Yes | No |
| Delegations | Capability-based access sharing | Yes | Yes |
- TinyCloud: https://tinycloud.xyz
- OpenKey: https://openkey.so
- tinyboilerplate: https://github.com/TinyCloudLabs/tinyboilerplate
- npm: @tinycloud/web-sdk / @tinycloud/node-sdk / @openkey/sdk
MIT