🧭 Decision Guide
Why trending now: Cannot be determined from the materials. They show 169 new stars on 2026-09-22, 13,593 total stars, and a v2026.9.21 release; the README highlights the Pegasus Project background and Android/iOS spyware forensics, but does not prove why these factors caused the current trend.
Try it if you
-
You need mvt-ios or mvt-android to analyze Android or iOS device acquisitions.The Usage section says these two commands analyze acquisitions from their respective platforms.
-
You are investigating known spyware campaigns and have public IOCs from Amnesty International or other research groups.The Indicators of Compromise section says MVT supports public IOCs, including those published by Amnesty International.
-
Your team needs a Python CLI and plugins to extend forensic modules.The Usage section says plugin packages extend check-* modules and top-level commands for mvt, mvt-ios, and mvt-android.
Skip it if you
-
You want ordinary end users to determine whether a phone is safe by themselves.The README Note explicitly says MVT is not intended for end-user self-assessment and requires digital-forensics and command-line knowledge.
-
You need public IOCs alone to prove that a device was not infected by a particular spyware tool.The Indicators of Compromise warning says public IOCs can miss recent forensic traces and create a false sense of security.
-
Your existing scripts depend strictly on legacy MVT output and cannot handle the v3 changes.The top-level IMPORTANT notice says the v3 merge introduced breaking changes and may break scripts relying on MVT output.
Requirements
- A Python environment and the dependencies described in the Installation section are required; the README does not specify a Python version.
- It can be installed from PyPI with the command pip3 install mvt.
- MVT requires understanding digital forensics and using command-line tools.
- With uv, install uv first, then install MVT with uv tool install mvt.
First step (verbatim from README)
pip3 install mvt
Watch out
-
Put --verbose before the command name for debug output, for example mvt-ios --verbose check-backup ... .The Usage section says all three commands support --verbose in that position.
-
The --verbose option after check-* is compatibility-only and will be removed in a future release.The Usage section explicitly says this usage is kept only for compatibility.
-
mvt completion prints setup instructions by default and writes configuration only with --install.The Shell completion section says completion files or shell configuration are written only when --install is passed.
-
MVT uses its own license and is intended for consensual forensic analysis.The License section says the project is released under its own license and emphasizes consensual forensic analysis.
Not stated in the README
- The README does not specify a supported Python version.
- The README does not provide Android or iOS versions or a device compatibility matrix.
- The README does not provide storage requirements, runtime measurements, or performance figures for different acquisitions.
- The README does not state the coverage, update frequency, or false-positive rate of public IOCs.
- Project metadata labels the license as Other, while the provided README material does not include the full license terms.
- The README does not describe the exact v3 output changes, migration steps, or affected-script list.
💡 Deep Analysis
6
No
I support Android and iOS users who may be targets in cases resembling the Pegasus Project, but my team lacks strong digital forensics and command-line experience; can I give MVT to them as a self-service security checker?
No, MVT should not be handed directly to ordinary users as a self-service checker, because the README explicitly excludes end-user self-assessment and requires forensic and command-line knowledge.
- The project describes MVT as a forensic research tool for technologists and investigators, not for end users.
- Public IOCs cover only known and publicly researched spyware campaigns. The README warns that no match cannot establish that a device is clean and may create a false sense of security.
- Reliable and comprehensive triage requires non-public IOCs, research, and threat intelligence; the README points to assistance from Amnesty International’s Security Lab and Access Now’s Digital Security Helpline.
- MVT can therefore be used by a qualified analyst as part of an investigation, but its output should not be converted directly into an “uninfected” or personal-security conclusion.
- README, “Note”: This is not intended for end-user self-assessment
- README, “Indicators of Compromise”: Public indicators of compromise are insufficient to determine that a device is clean
- README, “Indicators of Compromise”: reliable and comprehensive digital forensic support requires non-public indicators
No
I use Python scripts to parse existing MVT output and have integrated `mvt-ios` and `mvt-android` into an automation pipeline; can I directly replace the installed version with v3?
No, you should not replace the installed version directly, because the README explicitly says that v3 introduced breaking changes and that scripts relying on MVT output may have broken.
- The warning at the top of the README states that merging the v3 branch introduced breaking changes, particularly for users relying on MVT output in other scripts.
- This directly affects Python automation parsing
mvt-ios,mvt-android, ormvtoutput; the project does not promise compatibility with the old output format. - The README also says that
--verboseafter acheck-*command still works only for compatibility and will be removed, indicating ongoing CLI migration. - The upgrade decision requires reviewing issue #757, checking the fields consumed by current scripts, and validating plugins and downstream commands; the README does not provide an automatic migration tool.
- README top warning: We recently merged the “v3” branch. This introduced breaking changes
- README top warning: If you relied on mvt output in other scripts They might have broken
- README, “Usage”: the `--verbose` option the `check-*` commands accept after their name ... will be removed
pip3 install mvt
No
I plan to integrate the Python-based MVT into a commercial mobile forensics platform and may redistribute a customized version with plugins; can I adopt it directly without reviewing the license?
No, not before reviewing the license, because the project explicitly uses its own license rather than a conventional permissive open-source license.
- The README’s License section says that MVT is released under its own license, with the purpose of facilitating consensual forensic analysis and avoiding privacy violations against non-consenting individuals.
- This makes the license purpose and usage boundaries relevant beyond the technical implementation; commercial platforms, customized versions, and redistribution require review of the exact terms.
- The README does not grant commercial-integration, redistribution, plugin-bundling, or modified-licensing rights, nor does it describe exceptions for those scenarios.
- The code and documentation can be studied before approval, but Python, PyPI availability, or the label “open source” should not be treated as proof of unrestricted commercial use.
- README, “License”: MVT is released under its own license
- README, “License”: purpose is to facilitate consensual forensic analysis
- Project data: license is Other
Yes
I switch between Bash, Zsh, and Fish, need to run `mvt-ios`, `mvt-android`, and `download-iocs`, and want to reduce command-entry errors; does MVT support my CLI workflow?
Yes, because MVT provides platform commands, IOC downloading, verbose output, and completion for Bash, Zsh, and Fish, matching a command-line investigation workflow.
- The README states that
mvt-iosandmvt-androidanalyze acquisitions from their respective platforms, whilemvthosts shared commands such asdownload-iocs. - All three commands accept
--verbosebefore the command name; the README givesmvt-ios --verbose check-backup ...as an example for debug output. mvt completionprints setup instructions, andmvt completion bashgenerates Bash completion directly. The README explicitly covers Bash, Zsh, and Fish.- Completion improves CLI use but does not replace forensic interpretation of backups, acquisitions, or IOC results.
- README, “Usage”: MVT provides three commands: `mvt-ios`, `mvt-android`, and `mvt`
- README, “Usage”: Pass `--verbose` ... (`mvt-ios --verbose check-backup ...`)
- README, “Shell completion”: completion script for Bash, Zsh, and Fish
mvt completion
Yes
I have digital forensics and command-line experience, need to analyze both Android and iOS device acquisitions or backups, and want to check public IOCs for known spyware traces; should I include MVT in my investigation workflow?
Yes, because MVT is explicitly a cross-platform command-line forensics tool for technologists and investigators, although it is an analysis component rather than a complete examination platform.
- The README defines
mvt-iosandmvt-androidfor analyzing acquisitions from the respective platforms, whilemvtprovides shared functions such asversion,plugins, anddownload-iocs. - It supports scanning for potential traces associated with known spyware campaigns using public IOCs, which fits an existing forensic workflow.
- The tool depends on already obtained device data or backups; the README does not promise to acquire all data when permissions, keys, or complete inputs are unavailable.
- A lack of public IOC matches does not prove that a device is clean. Comprehensive assessment still requires non-public indicators, threat intelligence, and expert interpretation.
- README, “Usage”: `mvt-ios` and `mvt-android` analyse acquisitions from devices of that platform
- README, “Indicators of Compromise”: supports using public IOCs to scan mobile devices
- README, “Note”: intended for technologists and investigators; requires understanding digital forensics and command-line tools
pip3 install mvt
Yes
I develop forensic plugins in Python and want both to extend `check-*` modules and register custom top-level commands for `mvt-ios` or `mvt-android`; is MVT suitable as an extension base?
Yes, because the README explicitly supports plugin packages that extend check-* forensic modules and register top-level commands on mvt, mvt-ios, and mvt-android.
- Plugin modules run inside
check-*commands, making them suitable for packaging new forensic checks as loadable components. - The README links to development documentation and custom CLI command documentation, and explains that packages register commands through entry points.
- This is better suited to continuously adding new research findings than modifying the core repository directly, while remaining consistent with the project’s Python implementation.
- However, the README does not provide the plugin API, version-compatibility policy, or testing contract in the main text; those interfaces must be confirmed in the development documentation before integration.
- README, “Plugin packages”: extend MVT with additional forensic modules, which run inside the `check-*` commands
- README, “Plugin packages”: top-level commands on `mvt`, `mvt-ios` and `mvt-android`
- Project data: main_language is Python
pip3 install mvt
✨ Highlights
-
Supports mvt-ios and mvt-android for mobile acquisition analysis
-
Uses public IOCs to scan for known spyware traces
-
Provides plugins for extending forensic modules and top-level commands
-
The v3 merge introduced breaking changes to MVT output
🔧 Engineering
-
mvt-ios and mvt-android analyze acquisitions from their respective platforms
-
mvt download-iocs downloads IOCs and check-* commands run scans
-
mvt completion supports Bash, Zsh, and Fish completion
⚠️ Risks
-
The README states that public IOCs cannot prove a device is clean
-
v3 may break scripts that rely on MVT output
-
MVT requires knowledge of digital forensics and command-line tools
👥 For who?
-
For mobile-forensics technologists using a Python CLI
-
For researchers investigating mobile spyware such as Pegasus
-
For investigators analyzing Android and iOS device acquisitions