Quickstart
Start here. Five minutes from nothing to searching your own photos.
Install it
Section titled “Install it”curl -fsSL https://videre.sh/install | shNo Rust toolchain, nothing to compile. On macOS, brew install erhangundogan/tap/videre works too and handles upgrades for you. Both are
covered in install, along with building from source and the
platform notes.
Scan a folder
Section titled “Scan a folder”Your photo folder is the library. Run videre inside it:
cd ~/Photosvidere scanThat builds a database at ~/Photos/.videre/hashes.db describing what you have,
and everything below reads from it. It does not change your photos.
Every command acts on the library it runs in, so the rest of this page assumes
you are still in ~/Photos. From anywhere else, name it explicitly with
videre --library ~/Photos <command>.
Clean up duplicates
Section titled “Clean up duplicates”videre dedupe # list which copies could govidere dedupe --html # ...or review them in a browser firstvidere dedupe --remove # move the copies to the trash (asks first)videre prune # tidy the database afterwardsBy default videre dedupe only prints a list for you to check; --remove is
what actually deletes, moving the copies to the system trash after asking. Add
--similar to also flag photos and videos that merely look alike (after
videre embed); those are reported for review only, never removed.
Search your photos
Section titled “Search your photos”videre embed # one-time: prepares photos for searchvidere search "golden gate bridge at sunset"videre search --image reference.jpg # find photos like this oneThe first videre embed downloads about 1.5 GB of model data (Google’s SigLIP,
from Hugging Face; see what gets downloaded)
and takes a while on a big library. You can stop it at any point and rerun
later, and it picks up where it left off.
Find people
Section titled “Find people”videre faces # detect and group facesvidere gallery # name the groups in your browservidere search --person "Alice"videre faces downloads about 180 MB the first time.
Every command takes --help, and Commands is the full reference
with every flag.
What needs what
Section titled “What needs what”Each of the above is a small pipeline: search needs embed first,
search --person needs faces plus naming, and prune belongs after anything
that deletes files.
Workflows has the full map, plus recipes for the common jobs and rough costs for the long ones.
Other things it can do
Section titled “Other things it can do”videre classify # tag screenshots/documents/memesvidere search --category screenshot
videre locations # group photos by placevidere search --location "Berlin"
videre fix-dates # set file dates from EXIFvidere gallery # browse the whole libraryvidere stats # what's in the libraryvidere watch # keep everything fresh in the backgroundWorking with other tools
Section titled “Working with other tools”videre dedupe prints one file path per line, so it pipes into anything:
videre dedupe --print0 | xargs -0 trash # space-safe; or just: videre dedupe --removevidere dedupe > to-delete.txtvidere search, videre dedupe, videre stats and videre locations accept
--json for scripting, and videre mcp exposes search and
duplicate review to AI agents over stdio:
{ "mcpServers": { "videre": { "command": "/path/to/videre", "args": ["mcp"] } }}Good to know
Section titled “Good to know”- Long jobs (
embed,faces,classify) are resumable. Ctrl-C is safe, and rerunning continues where it stopped. - Two different videre commands can run at once against the same database. Running the same command twice is refused rather than allowed to corrupt anything.
videre gallerystarts a local web server onlocalhost:7878. Nothing leaves your machine.- The only feature that touches the network is
videre search --location, which looks up a place name once and caches the result.