Generate and edit Draw.io, Mermaid, and Excalidraw diagrams from natural language using a structured JSON spec.
Coding
Miro Management
Try itManage Miro through the Miro REST API using OAuth 2.0, saved token files, or direct access tokens. Use when the user wants to connect a personal or local Mir...
What it does
Use this skill to work with Miro through the REST API.
The skill document
Miro Management
Use this skill to work with Miro through the REST API.
Quick start
- Get the user's Miro app client ID, client secret, and redirect URI if using OAuth.
- Prefer a local redirect URI such as
http://127.0.0.1:4000/auth/miro/callback. - Use
scripts/miro_api.pyfor OAuth, token refresh, board/item operations, exports, and raw API calls. - Start with:
auth-urlserve-oauth-callbacklist-boardslist-board-items
- Never bundle client secrets, refresh tokens, or live access tokens into the skill package.
Auth modes
OAuth mode
Use shell environment variables when possible:
$env:MIRO_CLIENT_ID = '...'
$env:MIRO_CLIENT_SECRET = '...'
$env:MIRO_REDIRECT_URI = 'http://127.0.0.1:4000/auth/miro/callback'
Start the callback helper:
python scripts/miro_api.py serve-oauth-callback --port 4000 --token-file .miro/tokens.json
Then generate the authorization URL:
python scripts/miro_api.py auth-url
Open that URL, approve the app, and let the callback helper store the token payload.
Direct token mode
If the user already has a working Miro access token, skip OAuth and use either:
$env:MIRO_ACCESS_TOKEN = '...'
python scripts/miro_api.py list-boards
or a saved token file:
python scripts/miro_api.py list-boards --token-file .miro/tokens.json
Core workflow
1. Confirm access
Use a cheap check first:
python scripts/miro_api.py list-boards --token-file .miro/tokens.json
2. Inspect a board
python scripts/miro_api.py get-board --board-id --token-file .miro/tokens.json
python scripts/miro_api.py list-board-items --board-id --token-file .miro/tokens.json
3. Create or export content
python scripts/miro_api.py create-sticky-note --board-id "Hello from OpenClaw" --token-file .miro/tokens.json
python scripts/miro_api.py create-text --board-id "Roadmap" --token-file .miro/tokens.json
python scripts/miro_api.py create-shape --board-id "API Layer" --token-file .miro/tokens.json
python scripts/miro_api.py create-card --board-id "Task" --token-file .miro/tokens.json
python scripts/miro_api.py export-board-items --board-id --format markdown --output-file board-report.md --token-file .miro/tokens.json
4. Refresh when needed
python scripts/miro_api.py refresh-token --token-file .miro/tokens.json
Common commands
auth-url— print the OAuth authorization URLserve-oauth-callback— run a local callback server and exchange the returned code for tokensexchange-code— manually exchange a copied authorization code for tokensrefresh-token— refresh access using the stored refresh tokenwhoami— test token with a lightweight boards calllist-boards— list accessible boardsget-board— get board detailscreate-board— create a boardlist-board-items— list board itemsexport-board-items— export board items to markdown, csv, or jsoncreate-sticky-note— create a sticky notecreate-text— create a text itemcreate-shape— create a shape itemcreate-card/update-card— create or update a card itemcreate-sticky-note/update-sticky-note— create or update sticky notescreate-text/update-text— create or update text itemscreate-shape/update-shape— create or update shapescreate-connector— connect two board itemslist-board-members— list board membersget-webhooks/create-webhook/delete-webhook— manage webhookscreate-brainstorm-cluster— drop a row of idea sticky notescreate-kanban-row— create a lightweight kanban-style rowcreate-architecture-chain— create connected architecture boxesdelete-item— delete an item by type path + item idpreview-write— preview a write request without sending itraw— send an arbitrary Miro API request with optional JSON body
Mutation rules
For write calls:
- Confirm the target board and item IDs.
- Summarize the exact body and endpoint before sending when the change is not obviously desired.
- Keep secrets and tokens outside the skill folder.
- Prefer exporting API results to files instead of dumping giant payloads in chat.
- Treat live board writes as real external actions, not harmless local tests.
References
Read references/miro-oauth-notes.md for the Miro OAuth flow, token endpoint, redirect URI rules, and safe local storage guidance.
Read references/miro-request-examples.md for starter create/export commands and raw request examples.
Related skills
Join a video meeting as an AI bot with voice, avatar, and screenshare across four operating modes.
Stores durable facts in a categorized, plain-markdown vault on disk, alongside your agent's built-in memory.
Find why your productivity system keeps failing, then apply the smallest fix — capacity math, bottleneck routing, durable local notes.
Fetch raw ad creative, app, ranking, and revenue data from AdMapix as structured JSON.
Write, debug, and tune Playwright specs with locator strategy, trace diagnosis, and CI-aware timeouts.
More from stanestane
Browse all skillsAudit a game, feature, progression system, social system, live-ops loop, onboarding flow, monetization surface, or multiplayer space through the lens of the...
Define, refine, and evaluate the emotional identity, feeling, atmosphere, and vibe of a game, feature, event, region, or content theme. Use when shaping a ga...
Create a concise one-page game design document and export it as both markdown and PDF. Use when a user wants a one-page design doc, one-pager, pitchable desi...
Audit a game's FTUE (First Time User Experience) through the lens of the Hero's Journey / monomyth. Use when reviewing onboarding, tutorial flow, first-sessi...
Audit a video game pitch deck, publisher deck, funding deck, or investor-facing game presentation for clarity, structure, persuasiveness, visual readability,...
Audit a game, feature, live-ops system, progression loop, social feature, or monetization surface using a Self-Determination Theory-inspired motivation frame...