Renew your vehicle registration from the terminal.
faaadmv is a REPL-first CLI tool that automates DMV vehicle registration renewal via Playwright. The primary workflow is interactive and designed for manual verification.
Features
- REPL-First Workflow - One command opens an interactive menu
- Status Check - View registration status without logging in
- Renewal with Dry-Run - Validate eligibility and fees without payment
- Watch Mode - Headed browser with slow motion and pause for inspection
- Local Artifacts - Screenshots and debug logs saved locally
- Secure Storage - Config and payment data stored on your machine
Installation
uv pip install faaadmv
# Install browser (first time only)
playwright install chromiumQuick Start (REPL)
In the REPL:
aAdd a vehiclesCheck registration statusdRenew (dry-run)rRenew registrationxRemove a vehiclemSet default vehicle (when multiple)wToggle watch modeqQuit
Artifacts and Logs
- Debug log:
~/Library/Application Support/faaadmv/debug.log - Screenshots:
~/Library/Application Support/faaadmv/artifacts/
These may include plate/VIN information. Delete them if you do not want local traces.
Supported States
| State | Status |
|---|---|
| California (CA) | Supported |
| Texas (TX) | Planned |
| New York (NY) | Planned |
Requirements
- Python 3.11+
- macOS, Linux, or Windows
- Valid smog certification (CA)
- Current insurance on file with DMV
Development
# Clone the repo git clone https://github.com/yourusername/faaadmv cd faaadmv # Install in dev mode uv pip install -e ".[dev]" # Manual testing faaadmv
See docs/TESTING.md for the manual testing checklist.
Documentation
docs/ARCHITECTURE.mddocs/DATA_MODELS.mddocs/SECURITY.mddocs/PROVIDERS.mddocs/TESTING.mddocs/PROJECT_STRUCTURE.md
Disclaimer
This tool automates publicly available DMV web portals. You are responsible for ensuring all information is accurate and for any transactions initiated. The developers are not liable for failed transactions or fees incurred.