{
  "markdown": "# FiftyOne Skills\n\n<div align=\"center\">\n<p align=\"center\">\n\n<!-- prettier-ignore -->\n<img src=\"https://user-images.githubusercontent.com/25985824/106288517-2422e000-6216-11eb-871d-26ad2e7b1e59.png\" height=\"55px\"> &nbsp;\n<img src=\"https://user-images.githubusercontent.com/25985824/106288518-24bb7680-6216-11eb-8f10-60052c519586.png\" height=\"50px\">\n\n</p>\n\n**Expert workflows for computer vision powered by AI assistants**\n\n[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](LICENSE)\n[![FiftyOne](https://img.shields.io/badge/FiftyOne-v1.10+-orange.svg)](https://github.com/voxel51/fiftyone)\n[![MCP Server](https://img.shields.io/badge/MCP%20Server-fiftyone--mcp-green.svg)](https://github.com/voxel51/fiftyone-mcp-server)\n[![Validate Skills](https://github.com/voxel51/fiftyone-skills/actions/workflows/validate.yml/badge.svg)](https://github.com/voxel51/fiftyone-skills/actions/workflows/validate.yml)\n\n[![Discord](https://img.shields.io/badge/Discord-7289DA?logo=discord&logoColor=white)](https://discord.gg/fiftyone-community)\n[![Hugging Face](https://img.shields.io/badge/Hugging_Face-purple?style=flat&logo=huggingface)](https://huggingface.co/Voxel51)\n[![Voxel51 Blog](https://img.shields.io/badge/Voxel51_Blog-ff6d04?style=flat)](https://voxel51.com/blog)\n[![Newsletter](https://img.shields.io/badge/Newsletter-BE5B25?logo=mail.ru&logoColor=white)](https://share.hsforms.com/1zpJ60ggaQtOoVeBqIZdaaA2ykyk)\n[![LinkedIn](https://img.shields.io/badge/In-white?style=flat&label=Linked&labelColor=blue)](https://www.linkedin.com/company/voxel51)\n[![Twitter](https://img.shields.io/badge/Twitter-000000?logo=x&logoColor=white)](https://x.com/voxel51)\n[![Medium](https://img.shields.io/badge/Medium-12100E?logo=medium&logoColor=white)](https://medium.com/voxel51)\n\n[Documentation](https://docs.voxel51.com) · [MCP Server](https://github.com/voxel51/fiftyone-mcp-server) · [FiftyOne Plugins](https://github.com/voxel51/fiftyone-plugins) · [Discord](https://discord.gg/fiftyone-community)\n\n</div>\n\n## What are Skills?\n\nSkills are packaged workflows that teach AI assistants to perform complex computer vision tasks autonomously. Combined with the [FiftyOne MCP Server](https://github.com/voxel51/fiftyone-mcp-server), you can find duplicates, run inference, and explore datasets using natural language.\n\n```\n\"Find and remove duplicate images from my dataset\"\n\"Import this COCO dataset and run object detection\"\n\"Visualize my embeddings and identify outliers\"\n```\n\nSkills bridge the gap between natural language and FiftyOne's 80+ operators, providing step-by-step guidance that AI assistants follow to complete complex workflows.\n\n## Available Skills\n\n| Skill | Description | MCP |\n|-------|-------------|-----|\n| 📥 [**Dataset Import**](skills/fiftyone-dataset-import/SKILL.md) | Universal import for all media types, label formats, multimodal groups, and Hugging Face Hub | Yes |\n| 📤 [**Dataset Export**](skills/fiftyone-dataset-export/SKILL.md) | Export datasets to COCO, YOLO, VOC, CVAT, CSV, Hugging Face Hub, and more | Yes |\n| 🔍 [**Find Duplicates**](skills/fiftyone-find-duplicates/SKILL.md) | Find and remove duplicate images using brain similarity | Yes |\n| 🤖 [**Dataset Inference**](skills/fiftyone-dataset-inference/SKILL.md) | Run Zoo models for detection, classification, segmentation, embeddings | Yes |\n| 📈 [**Model Evaluation**](skills/fiftyone-model-evaluation/SKILL.md) | Compute mAP, precision, recall, confusion matrices, analyze TP/FP/FN | Yes |\n| 📊 [**Embeddings Visualization**](skills/fiftyone-embeddings-visualization/SKILL.md) | Visualize datasets in 2D, find clusters, identify outliers | Yes |\n| 🔌 [**Develop Plugin**](skills/fiftyone-develop-plugin/SKILL.md) | Create custom FiftyOne plugins (operators and panels) | — |\n| 🎨 [**VOODO Design**](skills/fiftyone-voodo-design/SKILL.md) | Build UIs with VOODO React components and design tokens | — |\n| 📝 [**Code Style**](skills/fiftyone-code-style/SKILL.md) | Write Python code following FiftyOne's official conventions | — |\n| 📓 [**Create Notebook**](skills/fiftyone-create-notebook/SKILL.md) | Create Jupyter notebooks: getting-started guides, tutorials, recipes, ML pipelines | — |\n| 🏷️ [**Issue Triage**](skills/fiftyone-issue-triage/SKILL.md) | Triage GitHub issues: validate status, categorize, generate responses | — |\n| 🧹 [**Dataset Curation**](skills/fiftyone-dataset-curation/SKILL.md) | End-to-end curation: quality checks, annotation audit, duplicates, class distribution, splits | Yes |\n| 🔧 [**Troubleshoot**](skills/fiftyone-troubleshoot/SKILL.md) | Fix common issues: dataset persistence, App connection, MongoDB errors, codecs, performance | — |\n| 🛡️ [**Eval Plugin**](skills/fiftyone-eval-plugin/SKILL.md) | Evaluate plugins for quality, security, and agent-readiness. Produces a structured report | — |\n| 🧩 [**Zoo Remote Model**](skills/fiftyone-zoo-remote-model/SKILL.md) | Build remote model zoo integrations that work with `register_zoo_model_source` and `dataset.apply_model` | — |\n| 🔌 [**Generate Data Lens Connector**](skills/fiftyone-generate-data-lens-connector/SKILL.md) | Generate a Data Lens connector from an external database schema (PostgreSQL, BigQuery, MySQL, etc.) | — |\n| 🎭 [**App Playwright**](skills/fiftyone-app-playwright/SKILL.md) | Drive the FiftyOne App via the Playwright MCP for operator/plugin verification, demos, and end-to-end UI automation | — |\n| 📚 [**SDK Guidance**](skills/fiftyone-sdk-guidance/SKILL.md) | Answer FiftyOne SDK and docs questions with live documentation search, or provide the SDK path when no operator exists | — |\n\n## Quick Start\n\n### Step 1: Install Skills\n\n**Universal Installer** (Recommended):\n```bash\ncurl -sL skil.sh | sh -s -- voxel51/fiftyone-skills\n```\nInteractive prompts let you select skills, agents, and install scope (project or global).\n\nSupported agents: Claude Code, Cursor, Codex, OpenCode, GitHub Copilot, Amp, Antigravity, Roo Code, Kilo Code, Goose\n\n**Claude Code:**\n```bash\n# Register the skills marketplace\n/plugin marketplace add voxel51/fiftyone-skills\n\n# Install a skill\n/plugin install fiftyone-find-duplicates@fiftyone-skills\n```\n\n**Gemini CLI:**\n```bash\ngemini extensions install https://github.com/voxel51/fiftyone-skills.git --consent\n```\n\n### Step 2: Use It\n\n```\n\"Write a FiftyOne plugin that displays model confidence\"\n\"Write Python code following FiftyOne conventions\"\n```\n\nYour AI assistant will automatically load the skill instructions and execute the workflow.\n\n### Step 3: Set Up MCP Server (Optional)\n\nSkills marked with **MCP** in the [table above](#available-skills) require the [FiftyOne MCP Server](https://github.com/voxel51/fiftyone-mcp-server) to interact with datasets and run operators.\n\n```bash\npip install fiftyone-mcp-server\n```\n\n> **⚠️ Important:** Make sure to use the same Python environment where you installed the MCP server when configuring your AI tool. If you installed it in a virtual environment or conda environment, you must activate that environment or specify the full path to the executable.\n\nThen configure your AI tool:\n\n<details>\n<summary><b>Claude Code</b> (Recommended)</summary>\n\n```bash\nclaude mcp add fiftyone -- fiftyone-mcp\n```\n\n</details>\n\n<details>\n<summary><b>Claude Desktop</b></summary>\n\nEdit `~/Library/Application Support/Claude/claude_desktop_config.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"fiftyone\": {\n      \"command\": \"fiftyone-mcp\"\n    }\n  }\n}\n```\n\n</details>\n\n<details>\n<summary><b>Cursor</b></summary>\n\n[![Install in Cursor](https://cursor.com/deeplink/mcp-install-dark.svg)](cursor://anysphere.cursor-deeplink/mcp/install?name=fiftyone&config=eyJjb21tYW5kIjoiZmlmdHlvbmUtbWNwIn0)\n\nAdd to `~/.cursor/mcp.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"fiftyone\": {\n      \"command\": \"fiftyone-mcp\"\n    }\n  }\n}\n```\n\n</details>\n\n<details>\n<summary><b>VSCode</b></summary>\n\n[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install_Server-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://insiders.vscode.dev/redirect/mcp/install?name=fiftyone&config=%7B%22command%22%3A%22fiftyone-mcp%22%7D)\n\nAdd to `.vscode/mcp.json`:\n\n```json\n{\n  \"servers\": {\n    \"fiftyone\": {\n      \"command\": \"fiftyone-mcp\"\n    }\n  }\n}\n```\n\n</details>\n\nOnce configured, you can use MCP-dependent skills:\n\n```\n\"Find and remove duplicate images from my dataset\"\n\"Import this COCO dataset and run object detection\"\n```\n\n## Skill Structure\n\nEach skill follows the [Agent Skills](https://agentskills.io) specification:\n\n```\nskills/\n└── fiftyone-find-duplicates/\n    └── SKILL.md                     # Instructions for AI\n```\n\n**SKILL.md format:**\n\n```markdown\n---\nname: skill-name\ndescription: When to use this skill\n---\n\n# Overview\nWhat this skill does\n\n# Prerequisites\nRequired setup\n\n# Key Directives\nALWAYS/NEVER rules for AI\n\n# Workflow\nStep-by-step instructions\n\n# Troubleshooting\nCommon errors and solutions\n```\n\n## Contributing\n\nWe welcome contributions! Whether you want to add a new skill, improve an existing one, or help with integrations and tooling — there's a place for you here.\n\nSee **[CONTRIBUTING.md](CONTRIBUTING.md)** for the full guide, including skill structure requirements, the quality bar, and how to test your skill before submitting.\n\nLooking for ideas? Browse issues labeled [`help wanted`](https://github.com/voxel51/fiftyone-skills/labels/help%20wanted) or [`good first issue`](https://github.com/voxel51/fiftyone-skills/labels/good%20first%20issue), or check the [project milestones](https://github.com/voxel51/fiftyone-skills/milestones) for planned work.\n\n## Feedback\n\nHelp us improve FiftyOne Skills!\n\n**Just ask your AI assistant:**\n```\n\"Help me submit feedback about [your issue]\"\n```\n\nThe agent will automatically gather session context, environment info, and can submit directly via `gh` CLI or generate content to paste at **[Submit Feedback](https://github.com/voxel51/fiftyone-skills/issues/new?template=skill-feedback.yml)**\n\n## Resources\n\n| Resource | Description |\n|----------|-------------|\n| [FiftyOne Docs](https://docs.voxel51.com) | Official documentation |\n| [FiftyOne MCP Server](https://github.com/voxel51/fiftyone-mcp-server) | MCP server for AI integration |\n| [FiftyOne Plugins](https://github.com/voxel51/fiftyone-plugins) | Official plugin collection |\n| [Agent Skills Spec](https://agentskills.io) | Skills format specification |\n| [PyPI Package](https://pypi.org/project/fiftyone-mcp-server/) | MCP server on PyPI |\n| [Discord Community](https://discord.gg/fiftyone-community) | Get help and share ideas |\n\n## 🧡 Community\n\nJoin the FiftyOne community to get help, share your skills, and connect with other users:\n\n- **Discord**: [FiftyOne Community](https://discord.gg/fiftyone-community)\n- **GitHub Issues**: [Report bugs or request features](https://github.com/voxel51/fiftyone-skills/issues)\n\n---\n\n<div align=\"center\">\n\nCopyright 2017-2026, Voxel51, Inc. · [Apache 2.0 License](LICENSE)\n\n</div>\n",
  "bytes": 10923,
  "sha": "3120550b969840522fbde4ec1ba4799998d7a22a0d53de2bd6cd7e803d638c83",
  "repo_slug": "voxel51/fiftyone-skills",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/plg_voxel51_fiftyone_skills_fiftyone_989c1eb1/readme"
}