- "Share working config…" (game menu, `frameport share-recipe`): saves the recipe as known-good and opens a prefilled working-config issue form; labelling it `catalog-accepted` runs catalog-from-issue.yml, which validates the YAML (scripts/catalog_from_issue.py) and opens a PR adding catalog/games/<pkg>.yaml - "Collect logs" / "Report a problem…" (game menu, Settings, failure pop-up, `frameport diag collect|report`): redacted diagnostics zip (app + job logs, library entry, recipe, launch logs + re-triage, APK/ELF/PE listings instead of game files, Frame launcher/settings/Lepton/logcat/XRService logs via agent v21 `collect_diag`) and a prefilled bug-report issue to attach it to; `frameport diag inspect <zip>` re-triages a bundle offline - diag/redact.py scrubs IPs, MACs, host/user names, home dirs, Steam ids, data and dump folders - App log (<data>/logs/app.log) and saved GUI job logs (<data>/logs/jobs/) - catalog.entry_from_library shared by "Save as known-good" and sharing; docs/DIAGNOSTICS.md
FramePort
Play your Meta Quest standalone games on the Valve Steam Frame. FramePort patches a Quest APK so it runs in the Frame's Lepton Android runtime, validates the result, installs it over Wi-Fi and adds it to your Steam library with artwork. Think Morphe/ReVanced Manager, for Quest → Steam Frame:
- Connect your Frame once: the app shows one command to paste into the Frame's desktop terminal (it turns on SSH, trusts the app, and installs Lepton). After that the app finds the Frame on your network by itself.
- Add games: scan a folder of Quest dumps (APK + OBB) or add an APK.
- Review patches: every game gets suggested patches (overport's plus Steam Frame fixes), each with a reason. 34 games have verified recipes; unknown games get heuristics.
- Patch, validate, install: signature/alignment/dependency checks, upload (resumable, skips data already on the Frame), Steam shortcut + artwork, and a headless launch test with log triage that suggests fixes.
FramePort downloads and manages its own tools (Java runtime, overport CLI, apksigner). Nothing is installed system-wide, and no Android SDK/NDK is needed.
Install
- App bundles: download from Releases (Windows x64, macOS
Apple Silicon, Linux x64); see
docs/INSTALL.mdfor the first-launch warning (self-signed / ad-hoc signed) and how to verify a download. Built by CI (.github/workflows/build.yml,flet build). - From source:
uv sync && uv run frameport-gui(CLI:uv run frameport --help).
Status of tested games
See catalog/games/ (and the Library screen): 23 work, 5 work with issues, 6 can't run on the Frame (3 are 32-bit
only; PC VR alternatives are listed). Details and how problems were solved: docs/PLAYBOOK.md.
All 34 recipes were verified by rebuilding from the original dumps (docs/parity-report.md: 34/34 match the
hand-made known-good builds) and reinstalling + launch-testing on a Frame (docs/parity-device-report.md: 0 regressions).
Legal
Use only with games you own. FramePort does not download games. It is GPL-3.0-only because it bundles code derived from GPL-3.0 projects (Quest2Frame's hook technique in the adapter, the Android-XR-Bridge/OVRPort VrApi bridge). overport is downloaded from its official releases and is not redistributed.
Development
See CLAUDE.md (architecture, commands, findings) and docs/ARCHITECTURE.md.