This release is a pre-release and may not be stable for production use.
VidXP
Search video by what was said, what appeared on screen, and recurring faces.
A local-first video search engine for people, applications, and AI agents.
Dialogue search · Scene search · Actor grouping
Windows · Apple Silicon macOS · Linux
Find the moment, not the timestamp
VidXP makes one video—or an entire collection—searchable by meaning:
- Dialogue search: type what you remember someone saying and jump to the matching moments.
- Scene search: describe what appeared on screen and find the closest visual matches.
- Actor matching: find recurring faces within a video and export a highlighted video for a selected group.
Use it to search years of family videos, add video search to an editing workflow, or let an AI agent answer questions using evidence from your own video library. Your videos can stay on your machine.
Start here
Choose the setup that fits how you want to use VidXP.
1. CLI and MCP
For direct use, scripts, and local AI agents, install uv, then run:
# Install the CPU edition
uv tool install --python 3.14 --torch-backend cpu "vidxp[local-worker,mcp]"
# Set up FFmpeg
vidxp init
# Download search models
vidxp prepare
# Check everything
vidxp doctor
# Connect an MCP client
vidxp mcp-config
Add the browser interface with:
uv tool install --python 3.14 --torch-backend cpu \
"vidxp[local-worker,mcp,frontend]"
vidxp ui
See the installation guide for client-specific MCP configuration, the HTTP API, and remote server setup.
2. Desktop app
Download the installer for Windows, Apple Silicon macOS, or Linux from GitHub Releases.
Connect an existing VidXP installation or let the desktop app manage an isolated runtime for you. See the desktop guide for supported setup options.
3. Docker for a server
Run the published all-in-one image on a home server or another single machine:
docker run --rm --init \
-p 8501:8501 \
-v vidxp-data:/var/lib/vidxp \
ghcr.io/grayhatdevelopers/vidxp:latest
For a long-lived server, pin a published version instead of latest. For a
Coolify deployment, use the published -control and -worker images with
compose.coolify.yaml—no repository build is required.
See the Coolify guide for the complete setup.
What you can do today
- Build searchable libraries from individual videos or whole collections.
- Find dialogue by meaning and visual moments by describing the scene.
- Ask grounded questions and inspect the supporting boards, frames, or clips.
- Group recurring faces and render highlighted actor overlays.
- Keep personal, client, or project libraries separate.
- Use VidXP through the desktop app, browser, CLI, MCP, or HTTP API.
A first search
The browser app guides you through importing and indexing. The same flow from the command line is:
# Add a video
vidxp media import samplevideo.mp4 --json
# Index the returned media ID
vidxp index create <media-id>
# Find a visual moment
vidxp search scene "a yellow taxi on a city street"
# Find something that was said
vidxp search dialogue "the bread just came out of the oven"
Results include the source video, timestamps, match score, and the evidence
used to find the moment. Add --media-id <media-id> to search only one video.
Run vidxp --help or vidxp <command/> --help for the full command reference.
For applications and AI agents
Use the Python package to add selected VidXP capabilities directly to an application, or use the HTTP API when VidXP runs as a service.
MCP lets AI clients add and index videos, search dialogue and scenes, ask questions about a library, and return inspectable evidence such as boards, frames, and clips. Clients can connect locally over stdio or to a self-hosted VidXP server.
ChatGPT and Codex skills
VidXP includes reusable skill source folders for the two common agent workflows:
Download a skill folder and add it through a supported ChatGPT desktop or Codex Skills surface. The skills require a connected VidXP MCP server; installable plugin packaging for additional ChatGPT surfaces will follow separately.
Downloads and storage
First setup downloads only the models needed for the capabilities you select. VidXP shows the download size and destination before it starts.
| Capability | Approximate model download |
|---|---|
| Dialogue search | 2.64 GiB |
| Scene search | 1.43 GiB |
| Actor matching | 37 MiB |
Leave additional space for the VidXP runtime, indexes, source videos, and exported results.
By default, the CLI and desktop app share the same VidXP data directory:
| Platform | Default location |
|---|---|
| Windows | %LOCALAPPDATA%\VidXP |
| macOS | ~/Library/Application Support/VidXP |
| Linux | ${XDG_DATA_HOME:-~/.local/share}/VidXP |
Docker keeps the same data in the vidxp-data volume shown above.
Product roadmap
The next product improvements are focused on:
- labeling actor groups and matching the same person across different videos;
- more reliable face tracking across angle, lighting, motion, and occlusion;
- connecting visible people with the dialogue they are speaking;
- better search ranking, time ranges, and natural-language questions across a whole library;
- richer previews, timelines, filters, saved searches, and result playback;
- easier organization for large personal and project video collections;
- faster indexing and supported GPU acceleration; and
- smoother desktop updates, repair, and model management.
VidXP is in beta. Feedback about search quality, actor workflows, and real video-library use cases is especially useful.
Help and project links
- Installation and troubleshooting
- Desktop application
- Coolify deployment
- Changelog
- Issue tracker
- MIT license
Contributing
Contributions are welcome. Read the contribution guide before opening a pull request.
Credits
Built by Grayhat Developers PVT Ltd. and maintained by the community. Originally researched by students:
Working with Dr Shahab Tahzeeb (NED University of Engineering and Technology) and Saad Bazaz (Grayhat).
Email: info@grayhat.studio
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file vidxp-0.4.0b2.tar.gz.
File metadata
- Download URL: vidxp-0.4.0b2.tar.gz
- Upload date:
- Size: 670.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
18ee96eb60be7cf53add70cc8b002f15bae3bdc445c0fac9d62b7d4b93260caa
|
|
| MD5 |
f94e07bbb9c76bea6e5c324c56cc4ece
|
|
| BLAKE2b-256 |
2e82c18113acbea31cc9c4ba53b25f8891ccbd28973f0fd3903cfec57e53e191
|
Provenance
The following attestation bundles were made for vidxp-0.4.0b2.tar.gz:
Publisher:
release-to-pypi.yml on grayhatdevelopers/vidxp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
vidxp-0.4.0b2.tar.gz -
Subject digest:
18ee96eb60be7cf53add70cc8b002f15bae3bdc445c0fac9d62b7d4b93260caa - Sigstore transparency entry: 2337587865
- Sigstore integration time:
-
Permalink:
grayhatdevelopers/vidxp@6d3fc1573e163af20983e1039c0d44fa145a0c5b -
Branch / Tag:
refs/heads/main - Owner: https://github.com/grayhatdevelopers
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-to-pypi.yml@6d3fc1573e163af20983e1039c0d44fa145a0c5b -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file vidxp-0.4.0b2-py3-none-any.whl.
File metadata
- Download URL: vidxp-0.4.0b2-py3-none-any.whl
- Upload date:
- Size: 564.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f192c91aac3f5d0d5ca5c3ada46a1bec18995dfc4f0797d5e74d417fc9b7918f
|
|
| MD5 |
ced0af2188482f1b586b7fe4d65736c9
|
|
| BLAKE2b-256 |
871bb1e34c2e20dece20e877c4a74238a410d41aeeb17a6a7e3b15370c1854eb
|
Provenance
The following attestation bundles were made for vidxp-0.4.0b2-py3-none-any.whl:
Publisher:
release-to-pypi.yml on grayhatdevelopers/vidxp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
vidxp-0.4.0b2-py3-none-any.whl -
Subject digest:
f192c91aac3f5d0d5ca5c3ada46a1bec18995dfc4f0797d5e74d417fc9b7918f - Sigstore transparency entry: 2337587873
- Sigstore integration time:
-
Permalink:
grayhatdevelopers/vidxp@6d3fc1573e163af20983e1039c0d44fa145a0c5b -
Branch / Tag:
refs/heads/main - Owner: https://github.com/grayhatdevelopers
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-to-pypi.yml@6d3fc1573e163af20983e1039c0d44fa145a0c5b -
Trigger Event:
workflow_dispatch
-
Statement type: