miro-api-1-board-management

Sub-skill of miro-api: 1. Board Management.

5 stars

Best use case

miro-api-1-board-management is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Sub-skill of miro-api: 1. Board Management.

Teams using miro-api-1-board-management should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/1-board-management/SKILL.md --create-dirs "https://raw.githubusercontent.com/vamseeachanta/workspace-hub/main/.agents/skills/_archive/business/communication/miro-api/1-board-management/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/1-board-management/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How miro-api-1-board-management Compares

Feature / Agentmiro-api-1-board-managementStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Sub-skill of miro-api: 1. Board Management.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# 1. Board Management

## 1. Board Management


```python
# boards.py
# ABOUTME: Miro board management operations
# ABOUTME: Create, read, update, delete boards

import os
from miro_api import Miro
from dotenv import load_dotenv

load_dotenv()

# Initialize Miro client
miro = Miro(access_token=os.environ.get("MIRO_ACCESS_TOKEN"))


def create_board(name: str, description: str = "", team_id: str = None) -> dict:
    """Create a new Miro board"""
    team_id = team_id or os.environ.get("MIRO_TEAM_ID")

    board = miro.boards.create(
        name=name,
        description=description,
        team_id=team_id,
        policy={
            "permissionsPolicy": {
                "collaborationToolsStartAccess": "all_editors",
                "copyAccess": "anyone",
                "sharingAccess": "team_members_with_editing_rights",
            },
            "sharingPolicy": {
                "access": "private",
                "inviteToAccountAndBoardLinkAccess": "editor",
                "organizationAccess": "private",
                "teamAccess": "edit",
            },
        },
    )

    return {
        "id": board.id,
        "name": board.name,
        "view_link": board.view_link,
        "created_at": board.created_at,
    }


def get_board(board_id: str) -> dict:
    """Get board details"""
    board = miro.boards.get(board_id)

    return {
        "id": board.id,
        "name": board.name,
        "description": board.description,
        "view_link": board.view_link,
        "created_at": board.created_at,
        "modified_at": board.modified_at,
    }


def list_boards(team_id: str = None, limit: int = 50) -> list:
    """List all boards in a team"""
    team_id = team_id or os.environ.get("MIRO_TEAM_ID")

    boards = miro.boards.get_all(team_id=team_id, limit=limit)

    return [
        {
            "id": board.id,
            "name": board.name,
            "view_link": board.view_link,
        }
        for board in boards
    ]


def update_board(board_id: str, name: str = None, description: str = None) -> dict:
    """Update board properties"""
    update_data = {}
    if name:
        update_data["name"] = name
    if description:
        update_data["description"] = description

    board = miro.boards.update(board_id, **update_data)

    return {"id": board.id, "name": board.name, "description": board.description}


def delete_board(board_id: str) -> bool:
    """Delete a board"""
    miro.boards.delete(board_id)
    return True


def copy_board(board_id: str, new_name: str, team_id: str = None) -> dict:
    """Copy an existing board"""
    team_id = team_id or os.environ.get("MIRO_TEAM_ID")

    board = miro.boards.copy(board_id, name=new_name, team_id=team_id)

    return {
        "id": board.id,
        "name": board.name,
        "view_link": board.view_link,
    }


# Usage example
if __name__ == "__main__":
    # Create a board
    board = create_board(
        name="Sprint Retrospective - Q1 2026",
        description="Team retrospective for Q1 sprint",
    )
    print(f"Created board: {board['view_link']}")

    # List boards
    boards = list_boards(limit=10)
    for b in boards:
        print(f"- {b['name']}: {b['view_link']}")
```

Related Skills

well-production-dashboard

5
from vamseeachanta/workspace-hub

Create interactive well production dashboards with real-time monitoring, verification integration, economic metrics, and multi-format exports. Use for well performance analysis, field aggregation, production forecasting, and API-driven dashboards.

visual-review-board

5
from vamseeachanta/workspace-hub

Use when sourcing destination preview photos for a trip plan. Encodes the Wikimedia-API thumburl pattern (no hand-construction), main-session re-verification, and the destination-specific selection rule. Invoked by trip-planner.

cron-job-management

5
from vamseeachanta/workspace-hub

Patterns for creating, testing, debugging, and maintaining cron-driven automation in workspace-hub, including log strategy, failure analysis, and safe git-aware job design.

github-repo-management

5
from vamseeachanta/workspace-hub

Clone, create, fork, configure, and manage GitHub repositories. Manage remotes, secrets, releases, and workflows. Works with gh CLI or falls back to git + GitHub REST API via curl.

github-project-board

5
from vamseeachanta/workspace-hub

Synchronize AI swarms with GitHub Projects for visual task management and progress tracking. Use for project board automation, task synchronization, sprint management, and team coordination with GitHub Projects.

interactive-dashboard-builder

5
from vamseeachanta/workspace-hub

Create self-contained HTML/JavaScript dashboards with Chart.js, filters, and professional styling

data-management

5
from vamseeachanta/workspace-hub

Comprehensive DataFrame loading, filtering, transformation, and data pipeline management from Excel, CSV, and multiple sources with YAML-driven configuration.

task-management

5
from vamseeachanta/workspace-hub

Simple task management using a shared TASKS.md file for tracking commitments and action items.

memory-management

5
from vamseeachanta/workspace-hub

Two-tier memory system for decoding workplace shorthand, acronyms, nicknames, and internal language.

close-management

5
from vamseeachanta/workspace-hub

Manage the month-end close process with task sequencing, dependencies, and status tracking.

source-management

5
from vamseeachanta/workspace-hub

Configure and query MCP data sources for enterprise search. Use when checking which sources (chat, email, cloud storage, CRM, knowledge base) are connected, connecting new ones, or tuning query priority and rate limits.

knowledge-management

5
from vamseeachanta/workspace-hub

Create, organize, and maintain support knowledge base content to reduce ticket volume