Claude-skill-registry fiftyone
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/fiftyone" ~/.claude/skills/majiayu000-claude-skill-registry-fiftyone && rm -rf "$T"
manifest:
skills/data/fiftyone/SKILL.mdsource content
FiftyOne - Dataset Visualization & Curation
Overview
The
fiftyone command manages FiftyOne dataset visualization using Podman Quadlet containers. It includes a MongoDB sidecar for persistent dataset storage.
Key Concept: FiftyOne runs as a multi-container application with a MongoDB sidecar. The main FiftyOne container handles the web UI and processing, while MongoDB stores dataset metadata.
Quick Reference
| Action | Command | Description |
|---|---|---|
| Config | | Configure instance |
| Start | | Start FiftyOne + MongoDB |
| Stop | | Stop FiftyOne + MongoDB |
| Restart | | Restart all containers |
| Logs | | View interleaved logs |
| Status | | Show status (all instances) |
| URL | | Show access URL |
| Shell | | Open shell in container |
| Plugins | | Manage FiftyOne plugins |
| Delete | | Remove instance(s) and images |
Parameters
| Parameter | Long Flag | Short | Default | Description |
|---|---|---|---|---|
| action | (positional) | - | required | Action: config, start, stop, etc. |
| config_dir | | | | Configuration directory |
| workspace_dir | | | | Optional mount to /workspace |
| bind | | | | Bind address |
| port | | | | Web UI port |
| image | | | | Container image |
| tag | | | | Image tag |
| gpu_type | | | | GPU type (auto/nvidia/amd/intel/none) |
| lines | | | | Log lines to show |
| instance | | | | Instance number |
Configuration
# Default configuration (port 5151, localhost only) ujust fiftyone config # Custom port (long form) ujust fiftyone config --port=5152 # Custom port (short form) ujust fiftyone config -p 5152 # Network-wide access ujust fiftyone config --bind=0.0.0.0 # With workspace mount ujust fiftyone config --workspace-dir=/data/datasets # Combine parameters (long form) ujust fiftyone config --port=5152 --bind=0.0.0.0 --workspace-dir=/data # Combine parameters (short form) ujust fiftyone config -p 5152 -b 0.0.0.0 -w /data
Update Existing Configuration
Running
config when already configured will update the existing configuration, preserving values not explicitly changed.
Lifecycle Commands
Start/Stop/Restart
# Start FiftyOne (includes MongoDB sidecar) ujust fiftyone start # Start specific instance (long form) ujust fiftyone start --instance=1 # Start specific instance (short form) ujust fiftyone start -n 1 # Start all instances ujust fiftyone start --instance=all # Stop FiftyOne + MongoDB ujust fiftyone stop --instance=1 # Restart all containers ujust fiftyone restart
View Logs
FiftyOne shows interleaved logs from both the main container and MongoDB sidecar:
# Follow logs (default 50 lines) ujust fiftyone logs # More lines (long form) ujust fiftyone logs --lines=100 # More lines (short form) ujust fiftyone logs -l 100 # Specific instance ujust fiftyone logs -n 1 -l 100
Log output format:
[fiftyone-mongodb] 2024-01-09 10:00:01 MongoDB started [fiftyone] 2024-01-09 10:00:02 Connecting to database... [fiftyone] 2024-01-09 10:00:03 FiftyOne App ready on port 5151
Get URL
ujust fiftyone url # Output: http://localhost:5151 # Specific instance ujust fiftyone url --instance=2
Shell Access
# Interactive shell ujust fiftyone shell # Run specific command (use -- separator) ujust fiftyone shell -- fiftyone --version ujust fiftyone shell -- pip list # Specific instance ujust fiftyone shell --instance=2 -- python -c "import fiftyone as fo; print(fo.__version__)" # Short form ujust fiftyone shell -n 2 -- ls -la
Plugin Management
# List installed plugins ujust fiftyone plugins -- list # Install a plugin ujust fiftyone plugins -- install <plugin-name> # Update plugins ujust fiftyone plugins -- update
Multi-Container Architecture
FiftyOne runs with a MongoDB sidecar:
+-------------------+ +-------------------+ | FiftyOne | | MongoDB | | (fiftyone-1) | -----> | (fiftyone-mongodb-1) | | Port 5151 | | Port 27017 | +-------------------+ +-------------------+ | | +---- bazzite-ai network ----+
Container Names:
- Main FiftyOne containerfiftyone-{N}
- MongoDB sidecarfiftyone-mongodb-{N}
Lifecycle:
starts MongoDB first, then FiftyOnestart
stops FiftyOne first, then MongoDBstop
shows interleaved output from bothlogs
Port Allocation
| Instance | FiftyOne Port | MongoDB Port |
|---|---|---|
| 1 | 5151 | 27017 |
| 2 | 5152 | 27018 |
| N | 5150+N | 27016+N |
GPU Support
FiftyOne supports GPU acceleration for ML model inference:
# Auto-detect GPU (default) ujust fiftyone config # Explicit NVIDIA (long form) ujust fiftyone config --gpu-type=nvidia # Explicit NVIDIA (short form) ujust fiftyone config -g nvidia
Configuration Files
| File | Purpose | Location |
|---|---|---|
| Instance config | Per-instance settings | |
| Quadlet unit (main) | Service definition | |
| Quadlet unit (MongoDB) | Sidecar definition | |
Common Workflows
Initial Setup
# 1. Configure FiftyOne with dataset directory ujust fiftyone config --workspace-dir=/data/datasets # 2. Start FiftyOne ujust fiftyone start # 3. Get URL ujust fiftyone url # 4. Open in browser # http://localhost:5151
Dataset Analysis
# Start FiftyOne ujust fiftyone start # Open shell for interactive work ujust fiftyone shell # Inside container: # import fiftyone as fo # dataset = fo.load_dataset("my_dataset") # session = fo.launch_app(dataset)
Network Access
# Configure for network access ujust fiftyone config --bind=0.0.0.0 # Restart to apply ujust fiftyone restart # Access from other machines # http://<hostname>:5151
Troubleshooting
FiftyOne Won't Start
Check:
ujust fiftyone status ujust fiftyone logs --lines=50
Common causes:
- Port 5151 already in use
- MongoDB failed to start
- GPU driver issues
Fix:
# Delete and reconfigure ujust fiftyone delete ujust fiftyone config --port=5152 ujust fiftyone start
MongoDB Connection Failed
Symptom: FiftyOne logs show "Connection refused" to MongoDB
Check:
# Check MongoDB container podman ps | grep fiftyone-mongodb ujust fiftyone logs | grep mongodb
Fix:
# Restart both containers ujust fiftyone restart
Datasets Not Persisting
Symptom: Datasets disappear after restart
Check:
- Verify config_dir is properly set
- Check MongoDB volume mounts
Fix:
# Reconfigure with explicit config directory ujust fiftyone config --config-dir=/data/fiftyone
Cross-References
- Related Skills:
(ML notebooks),jupyter
(LLM inference)ollama - FiftyOne Docs: https://docs.voxel51.com/
- GPU Setup:
ujust config gpu setup
When to Use This Skill
Use when the user asks about:
- "fiftyone", "dataset visualization", "dataset curation"
- "ML datasets", "computer vision datasets"
- "data labeling", "annotation tool"
- "start fiftyone", "configure fiftyone"