FiftyOne: a pip install for users, a Node and Yarn build for anyone touching the App
Refine high-quality datasets and visual AI models. Create and activate a virtual environment Press Win + R.
At a glance
- What is it?
- voxel51/fiftyone is Voxel51's Apache-2.0 tool for visualizing, labeling and evaluating computer vision datasets and models. The pip release is one line; the source install, branch layout and App rebuild steps are where people get stuck.
- Who is it for?
- FiftyOne fits Python users on 3.10 to 3.13 who want to inspect, label and evaluate image and video datasets, and the pip release is the path to take unless you need to change the App. It does not fit teams that cannot run Node and Yarn when they need unreleased fixes, or that expect collaborative cloud deployment from the open-source package, which Voxel51 sells separately.
- Can I use it commercially?
- Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository received new commits within the last day.
- What is it written in?
- Mainly TypeScript, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on November 14, 2026, and from our analysis. They are not legal advice.
Star history
- voxel51/fiftyone11,306 ★ · +351
| Repository | 2026-07-29 | 2026-11-14 |
|---|---|---|
| voxel51/fiftyone | 11k | 11.3k |
351 Stars in the last 108 days, measured from the daily GitHub snapshot. Compare with other projects
Editorial analysis
One pip package to install, three to remove
For most users the whole install is a single command, and the project recommends doing it inside a virtual environment to keep the workspace clean:
pip install fiftyoneFiftyOne supports Python 3.10 through 3.13. An interpreter outside that window, such as an older 3.9 environment, is not covered, so check `python3 --version` before blaming the package for a failed install.
The uninstall line shows that the single install pulls in more than one distribution. Removing only `fiftyone` leaves the other two behind:
pip uninstall fiftyone fiftyone-brain fiftyone-dbIf you are cleaning a shared environment or rebuilding one after a failed upgrade, use the full three-package command so stale `fiftyone-brain` or `fiftyone-db` versions do not linger and mismatch the next install.
A source install builds the App with Node.js and Yarn
Installing from source is the route for contributors and for anyone who wants the latest development version. It compiles the browser App as well as the Python package, so it needs Python 3.10 to 3.13, Node.js and Yarn. On Linux the project recommends nvm for an up-to-date Node.js, and Yarn is enabled through `corepack enable` once Node is present.
git clone https://github.com/voxel51/fiftyone
cd fiftyone# Mac or Linux
bash install.sh
# Windows
.\install.batThe install script writes to your nvm settings in `~/.bashrc` or `~/.bash_profile`, because the App build depends on them. That is a side effect on your shell configuration, not just on the virtual environment, so review those files afterwards if you manage them by hand. If Python cannot import FiftyOne after the script finishes, add the clone to the path:
export PYTHONPATH=$PYTHONPATH:/path/to/fiftyoneThe default branch is develop, but upgrades pull main
The repository's default branch on GitHub is `develop`. A plain `git clone` therefore checks out `develop`. The upgrade instructions, however, tell you to move to `main` and pull:
git checkout main
git pull
# Mac or Linux
bash install.sh
# Windows
.\install.batThe consequence is that the first upgrade after a fresh clone silently switches you from `develop` to `main`. If you cloned to test something only present on `develop`, running the upgrade block as written moves you off it. Decide which branch you want to track and run `git checkout` for that branch explicitly instead of copying the upgrade steps unchanged.
The Colab variant clones with `--depth 1`, which gives you only the latest commit of the default branch, so switching branches later inside that notebook needs a fresh fetch.
Pulling App changes does not rebuild the App
Updating the Python side of a source install takes effect as soon as you pull, but the App is a compiled frontend. After pulling new App changes you have to rebuild it, either by rerunning the install script or by running `yarn build` inside the `./app` directory.
Skipping that step leaves you with Python code from the new commit talking to an App built from the old one. Any fix you pulled for the interface will not appear, and new backend behaviour may not have a matching control in the browser. The quickest check after a `git pull` that touched `./app` is to run the rebuild before opening a session, rather than after something looks wrong.
Developer mode and an external MongoDB
Contributors are expected to use a developer installation, which is the same script with a `-d` flag:
# Mac or Linux
bash install.sh -d
# Windows
.\install.bat -dThe project also points developers toward connecting FiftyOne to a self-installed and self-managed MongoDB instance instead of the default setup. It is described as optional, and the steps live in the configuration section of the user guide at docs.voxel51.com under configuring a MongoDB connection. The practical reason to do it is control: you own the database lifecycle and can inspect it with your own tools. The cost is that you also own backups, upgrades and access control for that MongoDB server, which the default install does not ask of you.
Linux needs system libraries before pip will help
On Linux, a few system packages are required before FiftyOne installs cleanly. The prerequisites are written against a clean Ubuntu Desktop 24.04 and are expected to work on Ubuntu 24.04, 22.04 and Ubuntu Server:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install python3-venv python3-dev build-essential git-all libgl1-mesa-devYou also need `openssl` and `libcurl`. Debian-based distributions name the package `libcurl4` or `libcurl3` depending on their age, so use the name your release ships:
# Ubuntu
sudo apt install libcurl4 openssl
# Fedora
sudo dnf install libcurl opensslVideo datasets need FFmpeg on top of that. It is optional for image-only work and needed once you plan to work with video:
sudo apt-get install ffmpegColab source installs only work after a runtime restart
Google Colab is supported for source installs, with one step that is easy to miss: after the cell finishes you must restart the runtime before importing FiftyOne.
%%shell
git clone --depth 1 https://github.com/voxel51/fiftyone.git
cd fiftyone
# Mac or Linux
bash install.sh
# Windows
.\install.batIf you import in the same session without restarting, you are still running whatever was loaded before the install. For a quick look without building anything, the project links a quickstart notebook on Colab from the fiftyone-examples repository, which avoids the source build entirely.
The open-source tool stops short of team deployment
FiftyOne is released under Apache-2.0 and is aimed at visualizing and labeling data, evaluating models and improving data and model quality. Production-grade, collaborative, cloud-native enterprise workloads are not what the open-source package targets; for those, the project sends users to Voxel51's hosted offering at app.voxel51.com. Teams that need shared access and managed infrastructure should budget for that product or build it themselves.
The open-source side is moving steadily. Release v1.21.0 shipped on 2026-08-19, v1.22.0 on 2026-09-12 and v1.22.1 on 2026-09-29, and the last push to the repository was on 2026-11-02. A Docker image is published as voxel51/fiftyone on Docker Hub alongside the PyPI package.
Editorial conclusion
FiftyOne fits Python users on 3.10 to 3.13 who want to inspect, label and evaluate image and video datasets, and the pip release is the path to take unless you need to change the App. It does not fit teams that cannot run Node and Yarn when they need unreleased fixes, or that expect collaborative cloud deployment from the open-source package, which Voxel51 sells separately. Before a source install, confirm which branch you are on, since the repository defaults to develop while the upgrade steps pull main.
Frequently asked questions
What is FiftyOne?
FiftyOne is Voxel51's open-source tool for building high-quality datasets and computer vision models. It lets you visualize and label data, evaluate models and improve data and model quality.
How do you install FiftyOne?
Run pip install fiftyone in a virtual environment with Python 3.10 to 3.13. Contributors can instead clone the repository and run bash install.sh on Mac or Linux or .\install.bat on Windows.
How do you spell FiftyOne?
The project writes its name as FiftyOne, one word with a capital O. The Python package and repository use the lowercase form fiftyone.
What does Voxel51 do besides FiftyOne?
Voxel51 builds and maintains FiftyOne and offers a separate product at app.voxel51.com for production-grade, collaborative, cloud-native enterprise workloads.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/voxel51-fiftyone)Star history chart for your README
[](https://hysenlabs.com/projects/voxel51-fiftyone)Was this useful?