Skip to content

Releases: DeliciousMeatPop/VRCD

Release v1.7.2

Choose a tag to compare

@github-actions github-actions released this 10 Aug 02:45

VR CyberDeck v1.7.2 — ONE_PING_TO_RULE_THEM_ALL

> ACCESS GRANTED. JACK IN. OPERATE. DEPLOY. CONTROL.

VR CyberDeck is a cross-platform desktop deck for managing, sideloading, and uploading content to Meta Quest devices. It started as a fork of ApprenticeVR by jimzrt (huge thanks — the core engine is theirs) and grew into a full neon-terminal rebrand of the experience.


// CHANGELOG

A focused bug-fix release: kills the notification/click-sound spam some of you hit during parallel downloads, and stops a harmless metadata file from blocking installs.

Since 1.7.1 · fixes #31


🔕 Fixed: notification & click-sound spam during parallel downloads (#31)

  • Fixed the app spamming the click sound and Windows notifications the moment
    the first of several parallel downloads finished.
    Once one download in a
    batch completed, every progress update from the still-running downloads
    re-fired a "Download Complete" notification and click sound for the
    already-finished game — over and over, without you doing anything.
  • Root cause: the download queue's completion detector was comparing against
    a stale, empty snapshot of the queue, so it treated an already-completed
    download as "newly completed" on every single queue update. With multiple
    downloads in flight, those updates arrive constantly — hence the machine-gun
    notifications.
  • Now each completed download notifies exactly once. As a bonus:
    • Downloads that finished in a previous session no longer fire a
      notification when the app starts up.
    • Re-downloading a game you already had will correctly notify again when it
      re-completes.
  • Thanks to @ppanayotow for the clear repro and log. 🙏

📦 Fixed: release.add no longer blocks (or warns on) an install (#35 follow-up)

  • Some releases (e.g. certain Beat Saber modding builds) list a release.add
    metadata file in their manifest that isn't actually shipped in the download.

    On 1.7.0 that failed the install outright ("Extracted files do not match
    release.manifest: … release.add (missing)"); on 1.7.1 it still raised a false
    "manifest mismatch" warning and skipped auto-install for a release that was
    perfectly fine.
  • release.add is release metadata, not a game asset — its absence can't cause
    the missing-resources crash that manifest verification exists to catch. It's
    now treated as a sidecar and skipped during verification, exactly like
    release.manifest already was. No error, no false warning — while genuine
    corruption (truncated APK/OBB, etc.) is still caught.

## // HEADLINE FEATURES (Click to Expand - ITS A SPOILER!)

[ LIBRARY ] — optional, when you add a server

  • Sideloader-first: works first launch with zero config; add your own server (a server config or an rclone config) under Manage Remotes for a browsable library
  • Card view and table view (table now stretches edge-to-edge in wide windows)
  • Persistent sort, density presets, 18+ filter, mirror management with public fallback
  • NEW / UPDATED badges driven off real lastUpdated timestamps

[ TRANSFERS ]

  • Up to 5 parallel downloads with live progress
  • Live // TRANSFER_BUS strip in the header — rotates through active transfers with name, stage, %, speed, and ETA
  • Unified Transfers drawer with stage-aware labels (Installing APK..., Copying OBB...)
  • Cyberdeck warns you with [ TRANSFERS IN PROGRESS ] if you try to close the window mid-transfer (works for both X and Cmd+Q)
  • Scan existing downloads folder, retry, clear-completed, per-item delete

[ DEVICE / ADB ]

  • Auto-connect Quest on launch, WiFi bookmarks for wireless ADB
  • ADB Shell with built-in quick-command shortcuts:
    • PERFORMANCE — pin CPU/GPU level, swap refresh rate (72/90/120Hz), reset texture
    • UPDATES — block / unblock the OS updater and Meta Store
    • SYSTEM — reboot variants, battery, storage, wifi, IP, proximity toggle
    • PACKAGES — list 3rd-party / all / current focused app
    • WIRELESStcpip 5555, adb devices
  • Custom user macros — define your own labelled pill for any command you spam (right-click to edit/delete, persisted across sessions)
  • Disable-sideloading toggle for safety

[ TRAILERS ]

  • Switched from youtube trailers to meta trailers... and back again.
  • No ads, no suggested videos, no subscribe buttons, no comments, no end-screen "Watch next" grid — just the trailer, then it stops
  • Autoplays as soon as you open the trailer drawer

[ INTERFACE ]

  • Glitch UNAUTHORIZED → AUTHORIZED boot intro
  • Matrix-style random g33ky_u$3rn4m3$ per session
  • Neon Hacker Console in the header (live SYS_STATUS readout — now properly fits the 88px header without clipping)
  • Font picker — swap Courier New for Console / Terminal / System Mono if the default is hard to read
  • Optional sound effects (drop-in) — drop click.wav, type.wav, or matrix.wav into your user-data sounds/ folder (no rebuild) or resources/sounds/ (bundled), and the UI plays them on button clicks, the boot-intro typing, and the ADB shell matrix load. Settings has a master toggle, volume slider, TEST button, and a per-file "✓ READY / — missing" status readout. Lookup order: user data → bundled, so you can override bundled sounds without recompiling.
  • Colorblind mode now covers the whole UI — version subtitles, filter counters, Transfers button, battery pill, breach animation all swap palette
  • Accent color picker, font scale up to 200%, tab memory
  • Compact, laptop-friendly layout (900x640 minimum window)
  • One-click log upload from Settings → Log Upload

// DOWNLOAD

Pick the build for your platform — same set of artifacts as the prereleases:

File Platform
vr-cyberdeck-1.7.2-x64.dmg macOS x64
vr-cyberdeck-1.7.2-arm64.dmg macOS arm64
vr-cyberdeck-1.7.2-setup-x64.exe Windows — Installer
vr-cyberdeck-1.7.2-portable-x64.exe Windows — Portable
vr-cyberdeck-1.7.2-x86_64.AppImage Linux x64
vr-cyberdeck-1.7.2-arm64.AppImage Linux ARM64
vr-cyberdeck-1.7.2-amd64.deb Debian/Ubuntu x64
vr-cyberdeck-1.7.2-arm64.deb Debian/Ubuntu ARM64

macOS — "App is damaged":

xattr -c /Applications/VR\ CyberDeck.app

Linux AppImage:

chmod +x vr-cyberdeck-1.7.2-x86_64.AppImage
./vr-cyberdeck-1.7.2-x86_64.AppImage

Already on a 0.x build? It will auto-update.


// JACK_IN

  1. Install the build for your OS
  2. Plug your Quest in via USB (data-capable cable)
  3. Allow USB Debugging on the headset
  4. Drag an APK, ZIP, game folder, or OBB folder onto the deck to sideload it

That's it — no account, no server, no JSON to edit. Want a browsable library instead? You can add your own server (a server config or an rclone config) under Manage Remotes — either you already know one, or you just use it as a sideloader. Power-user knobs (custom servers, mirrors, rclone configs, ADB macros, sound effects) all live in Settings.


// FEEDBACK

  • 🐛 Open an issue for bugs — include a rentry link of the log from Other Settings → //Upload Log.

// CREDITS

Built on top of ApprenticeVR by jimzrt. Without that foundation this project doesn't exist.

Special thanks to Rod — my crazy friend who believes in megalodons on Mars and gave me incredible feedback during the prerelease cycle.

And to everyone who tested the 0.x builds and reported issues — y'all shaped the 1.0.0 polish list.

// LICENSE

GNU Affero GPL v3


Need help adding a server? Tutorial Video by CrazyScamp here

> v1.7.2 — END_OF_FILE

Release v1.7.1

Choose a tag to compare

@github-actions github-actions released this 10 Aug 01:59

VR CyberDeck v1.7.1 — COMMON_SENSE_OR_GTFO

> ACCESS GRANTED. JACK IN. OPERATE. DEPLOY. CONTROL.

VR CyberDeck is a cross-platform desktop deck for managing, sideloading, and uploading content to Meta Quest devices. It started as a fork of ApprenticeVR by jimzrt (huge thanks — the core engine is theirs) and grew into a full neon-terminal rebrand of the experience.


// CHANGELOG

A stability-and-recovery release: the deck now heals a broken ADB connection on its own, a bad download manifest no longer bricks an otherwise-good install, the card-size slider actually works across its whole range, and getting your logs to us is now one click from the main screen. Plus a big internal cleanup — the entire translation layer is gone.

Since 1.7.0 · PRs #32, #33, #34, #35, #36


🔌 ADB — auto-recovery from a stuck server (#34)

  • The deck now recovers on its own when another ADB server is hogging the port.
    The #1 "my Quest won't connect" cause is a different ADB daemon already
    holding port 5037 — SideQuest, Rookie Sideloader, Android platform-tools, or
    just a different adb version — which stops our bundled adb from handshaking
    (could not read ok from ADB Server / cannot connect to daemon). Instead of
    failing on launch, VR CyberDeck now:
    • Detects the failed handshake and retries once automatically — it runs
      kill-server to free the port, then start-server to bring up our own
      daemon, and re-attempts device tracking. In the common case your headset
      just shows up and you never see an error at all.
  • When recovery can't help, you get a message you can act on.
    If the port is held by something we can't stop (or a firewall/AV is blocking
    the loopback socket), the old raw Command failed: … cannot connect to daemon
    dump is replaced with a plain-English explanation: which tools to close
    (SideQuest, Rookie, platform-tools), the adb kill-server escape hatch, and a
    reminder that you can keep sideloading local files in the meantime.
  • A failed ADB start no longer wedges every future retry. The tracking state
    is reset cleanly on failure, so hitting Scan after closing the conflicting
    tool works instead of staying stuck.

📦 Download integrity — manifest mismatch is now a warning, not a wall (#35)

  • A release.manifest mismatch no longer blocks an install outright.
    In 1.7.0 a size mismatch against the release manifest failed the item hard.
    That was too aggressive: a release can simply ship a wrong or stale
    manifest
    , leaving you unable to install a download that's actually fine. Now:
    • A mismatch completes the item with a warning instead of erroring it out.
      The download stays in the Completed state so you can choose to install
      anyway
      .
    • Auto-install is skipped for a warned item — the deck won't silently push
      a possibly-incomplete build; the decision is explicitly yours. Installing
      from Completed clears the warning (you've accepted the risk).
  • The manifest no longer flags itself. release.manifest can't reliably
    state its own byte size (writing the size in changes the size), so some
    releases list a stale size for it — which produced a guaranteed false
    mismatch. The check now skips the manifest file itself.
  • The genuine-corruption safety net is intact: a real truncated/partial download
    still surfaces the mismatch loudly — it just informs instead of forbids.

🎚️ Games view — card-size slider fixed across its full range (#32)

  • The card-size slider now changes the layout at every position, not just the
    last few.
    The old grid used auto-fill with a minmax(max(--card-min, …))
    floor. Whenever the target card width dropped below the 140px minimum — which
    is most of the slider's travel, and nearly all of it on a narrow window —
    auto-fill ignored the slider entirely and just packed 140px columns, pinning
    the count to a constant. That was the "slider does nothing until you slam it to
    the end" dead zone.
  • The grid now renders exactly the requested column count directly
    (repeat(var(--card-cols), minmax(0, 1fr))), so every slider step maps to a
    distinct layout. Columns still shrink to share the row on narrow windows
    without overflowing.

📝 Logs — "send your damn logs" is now one click away (#33)

  • Added an in-app link to the step-by-step log-upload wiki guide, so you're
    not left guessing how to report a bug.
  • Placed it where a stuck user can actually reach it: on the main deck / games
    view
    , and also on the startup dependency-error screen (where Settings
    isn't reachable yet). Both open the guide in your system browser.
  • Still backed by the existing one-click Settings → Log Upload → Upload to
    rentry.co
    , which copies the shareable code to your clipboard.

🧹 Under the hood — internationalization layer removed (#36)

  • Removed the entire i18n / translations system. The app has always shipped
    English-only in practice, and the half-wired translation layer (the en/es
    string tables, LanguageProvider, useLanguage, and the settings:get/set- language IPC) was dead weight causing interface issues. All UI strings are now
    plain, direct English.
  • Net effect: ~470 lines of translation tables and ~140 lines of plumbing
    deleted
    , a simpler provider tree, and fewer moving parts to break. No
    user-facing feature was lost — nothing was actually translated.

Notes for testers

  • ADB recovery (#34): open SideQuest (or run adb start-server from
    platform-tools) before launching VR CyberDeck, then launch it — the deck
    should recover automatically and connect. Kill our recovery by holding the
    port with a process it can't stop and confirm you get the plain-English
    message, not the raw command dump.
  • Manifest warning (#35): a download whose manifest doesn't match should land
    in Completed with a warning and not auto-install — verify you can still
    install it manually.
  • Card slider (#32): drag the size slider end-to-end on both a wide and a
    narrow window; every position should visibly change the columns.

## // HEADLINE FEATURES (Click to Expand - ITS A SPOILER!)

[ LIBRARY ] — optional, when you add a server

  • Sideloader-first: works first launch with zero config; add your own server (a server config or an rclone config) under Manage Remotes for a browsable library
  • Card view and table view (table now stretches edge-to-edge in wide windows)
  • Persistent sort, density presets, 18+ filter, mirror management with public fallback
  • NEW / UPDATED badges driven off real lastUpdated timestamps

[ TRANSFERS ]

  • Up to 5 parallel downloads with live progress
  • Live // TRANSFER_BUS strip in the header — rotates through active transfers with name, stage, %, speed, and ETA
  • Unified Transfers drawer with stage-aware labels (Installing APK..., Copying OBB...)
  • Cyberdeck warns you with [ TRANSFERS IN PROGRESS ] if you try to close the window mid-transfer (works for both X and Cmd+Q)
  • Scan existing downloads folder, retry, clear-completed, per-item delete

[ DEVICE / ADB ]

  • Auto-connect Quest on launch, WiFi bookmarks for wireless ADB
  • ADB Shell with built-in quick-command shortcuts:
    • PERFORMANCE — pin CPU/GPU level, swap refresh rate (72/90/120Hz), reset texture
    • UPDATES — block / unblock the OS updater and Meta Store
    • SYSTEM — reboot variants, battery, storage, wifi, IP, proximity toggle
    • PACKAGES — list 3rd-party / all / current focused app
    • WIRELESStcpip 5555, adb devices
  • Custom user macros — define your own labelled pill for any command you spam (right-click to edit/delete, persisted across sessions)
  • Disable-sideloading toggle for safety

[ TRAILERS ]

  • Switched from youtube trailers to meta trailers... and back again.
  • No ads, no suggested videos, no subscribe buttons, no comments, no end-screen "Watch next" grid — just the trailer, then it stops
  • Autoplays as soon as you open the trailer drawer

[ INTERFACE ]

  • Glitch UNAUTHORIZED → AUTHORIZED boot intro
  • Matrix-style random g33ky_u$3rn4m3$ per session
  • Neon Hacker Console in the header (live SYS_STATUS readout — now properly fits the 88px header without clipping)
  • Font picker — swap Courier New for Console / Terminal / System Mono if the default is hard to read
  • Optional sound effects (drop-in) — drop click.wav, type.wav, or matrix.wav into your user-data sounds/ folder (no rebuild) or resources/sounds/ (bundled), and the UI plays them on button clicks, the boot-intro typing, and the ADB shell matrix load. Settings has a master toggle, volume slider, TEST button, and a per-file "✓ READY / — missing" status readout. Lookup order: user data → bundled, so you can override bundled sounds without recompiling.
  • Colorblind mode now covers the whole UI — version subtitles, filter counters, Transfers button, battery pill, breach animation all swap palette
  • Accent color picker, font scale up to 200%, tab memory
  • Compact, laptop-friendly layout (900x640 minimum window)
  • One-click log upload from Settings → Log Upload

// DOWNLOAD

Pick the build for your platform — same set of artifacts as the prereleases:

File Platform
vr-cyberdeck-1.7.1-x64.dmg macOS x64
vr-cyberdeck-1.7.1-arm64.dmg macOS arm64
vr-cyberdeck-1.7.1-setup-x64.exe Windows — Installer
vr-cyberdeck-1.7.1-portable-x64.exe Windows — Portable
vr-cyberdeck-1.7.1-x86_64.AppImage Linux x64
vr-cyberdeck-1.7.1-arm64.AppImage Linux ARM64
vr-cyberdeck-1.7.1-amd64.deb Debian...
Read more

Release v1.7.0

Choose a tag to compare

@github-actions github-actions released this 09 Aug 09:02

VR CyberDeck v1.7.0 — NO_COMMITS_TO_DECODE

> ACCESS GRANTED. JACK IN. OPERATE. DEPLOY. CONTROL.

VR CyberDeck is a cross-platform desktop deck for managing, sideloading, and uploading content to Meta Quest devices. It started as a fork of ApprenticeVR by jimzrt (huge thanks — the core engine is theirs) and grew into a full neon-terminal rebrand of the experience.


// CHANGELOG

A big release focused on install reliability, download integrity, and a wave of quality-of-life features — plus stability fixes for launch-time freezes.

Since 1.6.7 · PRs #28 and #29 · fixes #25


🛠️ Install & OBB reliability

  • Fixed the main cause of games crashing after install (missing OBB resources).
    OBB files are pushed to the headset one at a time, but a failed or truncated
    push was being silently ignored — the transfer helper returned a failure
    the caller never checked, so a partial OBB copy was reported as a successful
    install. The game then launched with missing assets and crashed. Every OBB
    push site now checks the result and fails the install loudly instead:

    • Standard APK + OBB installs abort with a clear error if any file fails to copy.
    • install.txt-scripted push steps are now treated as critical (like install),
      so a failed resource push no longer counts as success.
  • Added on-device OBB verification after every install.
    Once the OBB folder is pushed, the app reads the file sizes back off the
    headset and compares them to what was sent. A missing or wrong-sized file
    fails the install with a specific message (which file, expected vs actual
    bytes) rather than leaving you with a silently broken game. This is a single
    shell round-trip, so it runs on every install with negligible overhead.

📦 Download integrity — release.manifest verification

  • Every download is now verified against the release's own manifest.
    Each release ships a release.manifest listing the exact byte size of every
    file (APK, asset-config.json, and each OBB). After extraction, VR CyberDeck
    checks every extracted file against it — a missing or size-mismatched file
    means the download/extraction was incomplete or corrupt, and the item fails
    with a clear error before you try to install it. This catches truncated
    or partially-corrupted downloads that would otherwise surface later as a
    crashing game.
    • Authoritative (exact byte sizes) and needs no extra input from you.
    • Gracefully skipped for older releases that ship without a manifest, so it
      never blocks an otherwise-good install.

💾 Save Backup (BETA) — Walkabout Mini Golf restore (#25)

  • Restores now handle games that regenerate their save folder on reinstall.
    Walkabout Mini Golf stores its save at
    Android/data/.../files/Profiles/Oculus/<random>/Profile_Default.data, but
    the game creates a new random-numbered profile folder when reinstalled —
    so restoring the old folder verbatim left the game reading an empty one and
    the save appeared lost.
    • Added a profile-driven post-restore fixup (profileFolderSync) that
      copies the restored save file into every current profile folder on the
      device, so whichever one the game reads actually contains it.
    • The fixup is best-effort and never fatal — any problem is written to
      the backup log (included in bug reports) but never fails the restore.
    • Enabled for Walkabout Mini Golf via the backup-profiles registry.
    • Tip: for best results, launch the game once after reinstalling (so it
      creates its new profile folder) before restoring.

✨ Quality-of-life features

  • Reorder the download queue. Move queued items up or down, plus the
    existing bump-to-front button, so you control what downloads next.
  • Download-complete desktop notifications. Get a system notification (and
    sound) when a game finishes downloading.
  • Right-click context menu on games. Right-click any game card or table row
    for quick actions: Details, Download & Install, Update,
    Reinstall, Uninstall, and Copy Package Name.

🩹 Stability fixes

  • Fixed a launch-time freeze caused by an infinite console-forwarding loop.
  • The app now degrades gracefully when the ADB server fails to start
    instead of hard-failing.
  • Fixed the intro animation freezing on the boot cursor (React StrictMode,
    dev builds).

🧰 Under the hood

  • Added a Prettier config matching the project's real style (single quotes,
    no semicolons, 100-column, no trailing commas) and normalized formatting
    repo-wide — eliminating ~1,750 spurious lint warnings on every run.
  • Resolved long-standing TypeScript blockers — the project now typechecks
    with 0 errors (web + main).
  • Added unit tests for the new release.manifest parser and the save-restore
    fixup planner; full node test suite passing; production build verified.

Notes for testers

  • Walkabout restore (#25) is newly implemented and benefits from a real
    on-device pass: reinstall Walkabout, launch it once, then restore a backup —
    the backup log should show Synced Profile_Default.data → …/<newRandom>/….
  • The right-click context menu is new; a quick pass on both a game card and
    a table row is worthwhile.

## // HEADLINE FEATURES (Click to Expand - ITS A SPOILER!)

[ LIBRARY ] — optional, when you add a server

  • Sideloader-first: works first launch with zero config; add your own server (a server config or an rclone config) under Manage Remotes for a browsable library
  • Card view and table view (table now stretches edge-to-edge in wide windows)
  • Persistent sort, density presets, 18+ filter, mirror management with public fallback
  • NEW / UPDATED badges driven off real lastUpdated timestamps

[ TRANSFERS ]

  • Up to 5 parallel downloads with live progress
  • Live // TRANSFER_BUS strip in the header — rotates through active transfers with name, stage, %, speed, and ETA
  • Unified Transfers drawer with stage-aware labels (Installing APK..., Copying OBB...)
  • Cyberdeck warns you with [ TRANSFERS IN PROGRESS ] if you try to close the window mid-transfer (works for both X and Cmd+Q)
  • Scan existing downloads folder, retry, clear-completed, per-item delete

[ DEVICE / ADB ]

  • Auto-connect Quest on launch, WiFi bookmarks for wireless ADB
  • ADB Shell with built-in quick-command shortcuts:
    • PERFORMANCE — pin CPU/GPU level, swap refresh rate (72/90/120Hz), reset texture
    • UPDATES — block / unblock the OS updater and Meta Store
    • SYSTEM — reboot variants, battery, storage, wifi, IP, proximity toggle
    • PACKAGES — list 3rd-party / all / current focused app
    • WIRELESStcpip 5555, adb devices
  • Custom user macros — define your own labelled pill for any command you spam (right-click to edit/delete, persisted across sessions)
  • Disable-sideloading toggle for safety

[ TRAILERS ]

  • Switched from youtube trailers to meta trailers... and back again.
  • No ads, no suggested videos, no subscribe buttons, no comments, no end-screen "Watch next" grid — just the trailer, then it stops
  • Autoplays as soon as you open the trailer drawer

[ INTERFACE ]

  • Glitch UNAUTHORIZED → AUTHORIZED boot intro
  • Matrix-style random g33ky_u$3rn4m3$ per session
  • Neon Hacker Console in the header (live SYS_STATUS readout — now properly fits the 88px header without clipping)
  • Font picker — swap Courier New for Console / Terminal / System Mono if the default is hard to read
  • Optional sound effects (drop-in) — drop click.wav, type.wav, or matrix.wav into your user-data sounds/ folder (no rebuild) or resources/sounds/ (bundled), and the UI plays them on button clicks, the boot-intro typing, and the ADB shell matrix load. Settings has a master toggle, volume slider, TEST button, and a per-file "✓ READY / — missing" status readout. Lookup order: user data → bundled, so you can override bundled sounds without recompiling.
  • Colorblind mode now covers the whole UI — version subtitles, filter counters, Transfers button, battery pill, breach animation all swap palette
  • Accent color picker, font scale up to 200%, tab memory
  • Compact, laptop-friendly layout (900x640 minimum window)
  • One-click log upload from Settings → Log Upload

// DOWNLOAD

Pick the build for your platform — same set of artifacts as the prereleases:

File Platform
vr-cyberdeck-1.7.0-x64.dmg macOS x64
vr-cyberdeck-1.7.0-arm64.dmg macOS arm64
vr-cyberdeck-1.7.0-setup-x64.exe Windows — Installer
vr-cyberdeck-1.7.0-portable-x64.exe Windows — Portable
vr-cyberdeck-1.7.0-x86_64.AppImage Linux x64
vr-cyberdeck-1.7.0-arm64.AppImage Linux ARM64
vr-cyberdeck-1.7.0-amd64.deb Debian/Ubuntu x64
vr-cyberdeck-1.7.0-arm64.deb Debian/Ubuntu ARM64

macOS — "App is damaged":

xattr -c /Applications/VR\ CyberDeck.app

Linux AppImage:

chmod +x vr-cyberdeck-1.7.0-x86_64.AppImage
./vr-cyberdeck-1.7.0-x86_64.AppImage

Already on a 0.x build? It will auto-update.


// JACK_IN

  1. Install the build for your OS
  2. Plug your Quest in via USB (data-capable cable)
  3. Allow USB Debugging on the headset
  4. Drag an APK, ZIP, game folder, or OBB folder onto the deck to sideload it

That's it — no account, no server, no JSON to edit. Want a browsable library instead? You can add your own server (a server config or an rclone config) under Manage Remotes — either you already know one, or you just use it as a sideloader. Power-user knobs (custom servers, mirrors, rclone configs, ADB macros...

Read more

Release v1.6.7 — CLAUDE_DEBUGGED_THE_MATRIX

Choose a tag to compare

@github-actions github-actions released this 08 Aug 02:35

VR CyberDeck v1.6.7 — CLAUDE_DEBUGGED_THE_MATRIX

> ACCESS GRANTED. JACK IN. OPERATE. DEPLOY. CONTROL.

VR CyberDeck is a cross-platform desktop deck for managing, sideloading, and uploading content to Meta Quest devices. It started as a fork of ApprenticeVR by jimzrt (huge thanks — the core engine is theirs) and grew into a full neon-terminal rebrand of the experience.


// CHANGELOG

Bug Fixes

  • Added a prompt to add a server to avoid "issues" like #26
  • Tried to add a method to test on WMG for issue #25 but i dont have a lot of hope, if it doesnt work ill likely add a warning about this game saying it wont work for this game.

## // HEADLINE FEATURES (Click to Expand - ITS A SPOILER!)

[ LIBRARY ] — optional, when you add a server

  • Sideloader-first: works first launch with zero config; add your own server (a server config or an rclone config) under Manage Remotes for a browsable library
  • Card view and table view (table now stretches edge-to-edge in wide windows)
  • Persistent sort, density presets, 18+ filter, mirror management with public fallback
  • NEW / UPDATED badges driven off real lastUpdated timestamps

[ TRANSFERS ]

  • Up to 5 parallel downloads with live progress
  • Live // TRANSFER_BUS strip in the header — rotates through active transfers with name, stage, %, speed, and ETA
  • Unified Transfers drawer with stage-aware labels (Installing APK..., Copying OBB...)
  • Cyberdeck warns you with [ TRANSFERS IN PROGRESS ] if you try to close the window mid-transfer (works for both X and Cmd+Q)
  • Scan existing downloads folder, retry, clear-completed, per-item delete

[ DEVICE / ADB ]

  • Auto-connect Quest on launch, WiFi bookmarks for wireless ADB
  • ADB Shell with built-in quick-command shortcuts:
    • PERFORMANCE — pin CPU/GPU level, swap refresh rate (72/90/120Hz), reset texture
    • UPDATES — block / unblock the OS updater and Meta Store
    • SYSTEM — reboot variants, battery, storage, wifi, IP, proximity toggle
    • PACKAGES — list 3rd-party / all / current focused app
    • WIRELESStcpip 5555, adb devices
  • Custom user macros — define your own labelled pill for any command you spam (right-click to edit/delete, persisted across sessions)
  • Disable-sideloading toggle for safety

[ TRAILERS ]

  • Switched from youtube trailers to meta trailers... and back again.
  • No ads, no suggested videos, no subscribe buttons, no comments, no end-screen "Watch next" grid — just the trailer, then it stops
  • Autoplays as soon as you open the trailer drawer

[ INTERFACE ]

  • Glitch UNAUTHORIZED → AUTHORIZED boot intro
  • Matrix-style random g33ky_u$3rn4m3$ per session
  • Neon Hacker Console in the header (live SYS_STATUS readout — now properly fits the 88px header without clipping)
  • Font picker — swap Courier New for Console / Terminal / System Mono if the default is hard to read
  • Optional sound effects (drop-in) — drop click.wav, type.wav, or matrix.wav into your user-data sounds/ folder (no rebuild) or resources/sounds/ (bundled), and the UI plays them on button clicks, the boot-intro typing, and the ADB shell matrix load. Settings has a master toggle, volume slider, TEST button, and a per-file "✓ READY / — missing" status readout. Lookup order: user data → bundled, so you can override bundled sounds without recompiling.
  • Colorblind mode now covers the whole UI — version subtitles, filter counters, Transfers button, battery pill, breach animation all swap palette
  • Accent color picker, font scale up to 200%, tab memory
  • Compact, laptop-friendly layout (900x640 minimum window)
  • One-click log upload from Settings → Log Upload

// DOWNLOAD

Pick the build for your platform — same set of artifacts as the prereleases:

File Platform
vr-cyberdeck-1.6.7-x64.dmg macOS x64
vr-cyberdeck-1.6.7-arm64.dmg macOS arm64
vr-cyberdeck-1.6.7-setup-x64.exe Windows — Installer
vr-cyberdeck-1.6.7-portable-x64.exe Windows — Portable
vr-cyberdeck-1.6.7-x86_64.AppImage Linux x64
vr-cyberdeck-1.6.7-arm64.AppImage Linux ARM64
vr-cyberdeck-1.6.7-amd64.deb Debian/Ubuntu x64
vr-cyberdeck-1.6.7-arm64.deb Debian/Ubuntu ARM64

macOS — "App is damaged":

xattr -c /Applications/VR\ CyberDeck.app

Linux AppImage:

chmod +x vr-cyberdeck-1.6.7-x86_64.AppImage
./vr-cyberdeck-1.6.7-x86_64.AppImage

Already on a 0.x build? It will auto-update.


// JACK_IN

  1. Install the build for your OS
  2. Plug your Quest in via USB (data-capable cable)
  3. Allow USB Debugging on the headset
  4. Drag an APK, ZIP, game folder, or OBB folder onto the deck to sideload it

That's it — no account, no server, no JSON to edit. Want a browsable library instead? You can add your own server (a server config or an rclone config) under Manage Remotes — either you already know one, or you just use it as a sideloader. Power-user knobs (custom servers, mirrors, rclone configs, ADB macros, sound effects) all live in Settings.


// FEEDBACK

  • 🐛 Open an issue for bugs — include a rentry link of the log from Other Settings → //Upload Log.

// CREDITS

Built on top of ApprenticeVR by jimzrt. Without that foundation this project doesn't exist.

Special thanks to Rod — my crazy friend who believes in megalodons on Mars and gave me incredible feedback during the prerelease cycle.

And to everyone who tested the 0.x builds and reported issues — y'all shaped the 1.0.0 polish list.

// LICENSE

GNU Affero GPL v3


Need help adding a server? Tutorial Video by CrazyScamp here

> v1.6.7 — END_OF_FILE

Release v1.6.6

Choose a tag to compare

@github-actions github-actions released this 05 Aug 14:06

VR CyberDeck v1.6.6 — CLEAN_THE_TRASH_DATA

> ACCESS GRANTED. JACK IN. OPERATE. DEPLOY. CONTROL.

VR CyberDeck is a cross-platform desktop deck for managing, sideloading, and uploading content to Meta Quest devices. It started as a fork of ApprenticeVR by jimzrt (huge thanks — the core engine is theirs) and grew into a full neon-terminal rebrand of the experience.


// CHANGELOG

Bug Fixes

  • Fixed OBB file cleanup during installation to prevent orphaned files taking up space on your Quest headset
  • Added a button to "adb shell" to find possibly problematic games with extra OBB
  • Two PRs by caiowilson, #21 and #22

## // HEADLINE FEATURES (Click to Expand - ITS A SPOILER!)

[ LIBRARY ] — optional, when you add a server

  • Sideloader-first: works first launch with zero config; add your own server (a server config or an rclone config) under Manage Remotes for a browsable library
  • Card view and table view (table now stretches edge-to-edge in wide windows)
  • Persistent sort, density presets, 18+ filter, mirror management with public fallback
  • NEW / UPDATED badges driven off real lastUpdated timestamps

[ TRANSFERS ]

  • Up to 5 parallel downloads with live progress
  • Live // TRANSFER_BUS strip in the header — rotates through active transfers with name, stage, %, speed, and ETA
  • Unified Transfers drawer with stage-aware labels (Installing APK..., Copying OBB...)
  • Cyberdeck warns you with [ TRANSFERS IN PROGRESS ] if you try to close the window mid-transfer (works for both X and Cmd+Q)
  • Scan existing downloads folder, retry, clear-completed, per-item delete

[ DEVICE / ADB ]

  • Auto-connect Quest on launch, WiFi bookmarks for wireless ADB
  • ADB Shell with built-in quick-command shortcuts:
    • PERFORMANCE — pin CPU/GPU level, swap refresh rate (72/90/120Hz), reset texture
    • UPDATES — block / unblock the OS updater and Meta Store
    • SYSTEM — reboot variants, battery, storage, wifi, IP, proximity toggle
    • PACKAGES — list 3rd-party / all / current focused app
    • WIRELESStcpip 5555, adb devices
  • Custom user macros — define your own labelled pill for any command you spam (right-click to edit/delete, persisted across sessions)
  • Disable-sideloading toggle for safety

[ TRAILERS ]

  • Switched from youtube trailers to meta trailers... and back again.
  • No ads, no suggested videos, no subscribe buttons, no comments, no end-screen "Watch next" grid — just the trailer, then it stops
  • Autoplays as soon as you open the trailer drawer

[ INTERFACE ]

  • Glitch UNAUTHORIZED → AUTHORIZED boot intro
  • Matrix-style random g33ky_u$3rn4m3$ per session
  • Neon Hacker Console in the header (live SYS_STATUS readout — now properly fits the 88px header without clipping)
  • Font picker — swap Courier New for Console / Terminal / System Mono if the default is hard to read
  • Optional sound effects (drop-in) — drop click.wav, type.wav, or matrix.wav into your user-data sounds/ folder (no rebuild) or resources/sounds/ (bundled), and the UI plays them on button clicks, the boot-intro typing, and the ADB shell matrix load. Settings has a master toggle, volume slider, TEST button, and a per-file "✓ READY / — missing" status readout. Lookup order: user data → bundled, so you can override bundled sounds without recompiling.
  • Colorblind mode now covers the whole UI — version subtitles, filter counters, Transfers button, battery pill, breach animation all swap palette
  • Accent color picker, font scale up to 200%, tab memory
  • Compact, laptop-friendly layout (900x640 minimum window)
  • One-click log upload from Settings → Log Upload

// DOWNLOAD

Pick the build for your platform — same set of artifacts as the prereleases:

File Platform
vr-cyberdeck-1.6.6-x64.dmg macOS x64
vr-cyberdeck-1.6.6-arm64.dmg macOS arm64
vr-cyberdeck-1.6.6-setup-x64.exe Windows — Installer
vr-cyberdeck-1.6.6-portable-x64.exe Windows — Portable
vr-cyberdeck-1.6.6-x86_64.AppImage Linux x64
vr-cyberdeck-1.6.6-arm64.AppImage Linux ARM64
vr-cyberdeck-1.6.6-amd64.deb Debian/Ubuntu x64
vr-cyberdeck-1.6.6-arm64.deb Debian/Ubuntu ARM64

macOS — "App is damaged":

xattr -c /Applications/VR\ CyberDeck.app

Linux AppImage:

chmod +x vr-cyberdeck-1.6.6-x86_64.AppImage
./vr-cyberdeck-1.6.6-x86_64.AppImage

Already on a 0.x build? It will auto-update.


// JACK_IN

  1. Install the build for your OS
  2. Plug your Quest in via USB (data-capable cable)
  3. Allow USB Debugging on the headset
  4. Drag an APK, ZIP, game folder, or OBB folder onto the deck to sideload it

That's it — no account, no server, no JSON to edit. Want a browsable library instead? You can add your own server (a server config or an rclone config) under Manage Remotes — either you already know one, or you just use it as a sideloader. Power-user knobs (custom servers, mirrors, rclone configs, ADB macros, sound effects) all live in Settings.


// FEEDBACK

  • 🐛 Open an issue for bugs — include a rentry link of the log from Other Settings → //Upload Log.

// CREDITS

Built on top of ApprenticeVR by jimzrt. Without that foundation this project doesn't exist.

Special thanks to Rod — my crazy friend who believes in megalodons on Mars and gave me incredible feedback during the prerelease cycle.

And to everyone who tested the 0.x builds and reported issues — y'all shaped the 1.0.0 polish list.

// LICENSE

GNU Affero GPL v3


Need help adding a server? Tutorial Video by CrazyScamp here

> v1.6.6 — END_OF_FILE

Release v1.6.5

Choose a tag to compare

@github-actions github-actions released this 04 Aug 14:35

VR CyberDeck v1.6.5 — VALIDATE_BEFORE_YOU_PENETRATE

> ACCESS GRANTED. JACK IN. OPERATE. DEPLOY. CONTROL.

VR CyberDeck is a cross-platform desktop deck for managing, sideloading, and uploading content to Meta Quest devices. It started as a fork of ApprenticeVR by jimzrt (huge thanks — the core engine is theirs) and grew into a full neon-terminal rebrand of the experience.


// CHANGELOG

Bug Fixes

  • Fixed server information validation to ensure stable connections to Meta Quest devices
  • Hopefully sped up extraction on windows
  • Fixed card view slider ... hopefuly

## // HEADLINE FEATURES (Click to Expand - ITS A SPOILER!)

[ LIBRARY ] — optional, when you add a server

  • Sideloader-first: works first launch with zero config; add your own server (a server config or an rclone config) under Manage Remotes for a browsable library
  • Card view and table view (table now stretches edge-to-edge in wide windows)
  • Persistent sort, density presets, 18+ filter, mirror management with public fallback
  • NEW / UPDATED badges driven off real lastUpdated timestamps

[ TRANSFERS ]

  • Up to 5 parallel downloads with live progress
  • Live // TRANSFER_BUS strip in the header — rotates through active transfers with name, stage, %, speed, and ETA
  • Unified Transfers drawer with stage-aware labels (Installing APK..., Copying OBB...)
  • Cyberdeck warns you with [ TRANSFERS IN PROGRESS ] if you try to close the window mid-transfer (works for both X and Cmd+Q)
  • Scan existing downloads folder, retry, clear-completed, per-item delete

[ DEVICE / ADB ]

  • Auto-connect Quest on launch, WiFi bookmarks for wireless ADB
  • ADB Shell with built-in quick-command shortcuts:
    • PERFORMANCE — pin CPU/GPU level, swap refresh rate (72/90/120Hz), reset texture
    • UPDATES — block / unblock the OS updater and Meta Store
    • SYSTEM — reboot variants, battery, storage, wifi, IP, proximity toggle
    • PACKAGES — list 3rd-party / all / current focused app
    • WIRELESStcpip 5555, adb devices
  • Custom user macros — define your own labelled pill for any command you spam (right-click to edit/delete, persisted across sessions)
  • Disable-sideloading toggle for safety

[ TRAILERS ]

  • Switched from youtube trailers to meta trailers... and back again.
  • No ads, no suggested videos, no subscribe buttons, no comments, no end-screen "Watch next" grid — just the trailer, then it stops
  • Autoplays as soon as you open the trailer drawer

[ INTERFACE ]

  • Glitch UNAUTHORIZED → AUTHORIZED boot intro
  • Matrix-style random g33ky_u$3rn4m3$ per session
  • Neon Hacker Console in the header (live SYS_STATUS readout — now properly fits the 88px header without clipping)
  • Font picker — swap Courier New for Console / Terminal / System Mono if the default is hard to read
  • Optional sound effects (drop-in) — drop click.wav, type.wav, or matrix.wav into your user-data sounds/ folder (no rebuild) or resources/sounds/ (bundled), and the UI plays them on button clicks, the boot-intro typing, and the ADB shell matrix load. Settings has a master toggle, volume slider, TEST button, and a per-file "✓ READY / — missing" status readout. Lookup order: user data → bundled, so you can override bundled sounds without recompiling.
  • Colorblind mode now covers the whole UI — version subtitles, filter counters, Transfers button, battery pill, breach animation all swap palette
  • Accent color picker, font scale up to 200%, tab memory
  • Compact, laptop-friendly layout (900x640 minimum window)
  • One-click log upload from Settings → Log Upload

// DOWNLOAD

Pick the build for your platform — same set of artifacts as the prereleases:

File Platform
vr-cyberdeck-1.6.5-x64.dmg macOS x64
vr-cyberdeck-1.6.5-arm64.dmg macOS arm64
vr-cyberdeck-1.6.5-setup-x64.exe Windows — Installer
vr-cyberdeck-1.6.5-portable-x64.exe Windows — Portable
vr-cyberdeck-1.6.5-x86_64.AppImage Linux x64
vr-cyberdeck-1.6.5-arm64.AppImage Linux ARM64
vr-cyberdeck-1.6.5-amd64.deb Debian/Ubuntu x64
vr-cyberdeck-1.6.5-arm64.deb Debian/Ubuntu ARM64

macOS — "App is damaged":

xattr -c /Applications/VR\ CyberDeck.app

Linux AppImage:

chmod +x vr-cyberdeck-1.6.5-x86_64.AppImage
./vr-cyberdeck-1.6.5-x86_64.AppImage

Already on a 0.x build? It will auto-update.


// JACK_IN

  1. Install the build for your OS
  2. Plug your Quest in via USB (data-capable cable)
  3. Allow USB Debugging on the headset
  4. Drag an APK, ZIP, game folder, or OBB folder onto the deck to sideload it

That's it — no account, no server, no JSON to edit. Want a browsable library instead? You can add your own server (a server config or an rclone config) under Manage Remotes — either you already know one, or you just use it as a sideloader. Power-user knobs (custom servers, mirrors, rclone configs, ADB macros, sound effects) all live in Settings.


// FEEDBACK

  • 🐛 Open an issue for bugs — include a rentry link of the log from Other Settings → //Upload Log.

// CREDITS

Built on top of ApprenticeVR by jimzrt. Without that foundation this project doesn't exist.

Special thanks to Rod — my crazy friend who believes in megalodons on Mars and gave me incredible feedback during the prerelease cycle.

And to everyone who tested the 0.x builds and reported issues — y'all shaped the 1.0.0 polish list.

// LICENSE

GNU Affero GPL v3


Need help adding a server? Tutorial Video by CrazyScamp here

> v1.6.5 — END_OF_FILE

Release v1.6.4

Choose a tag to compare

@github-actions github-actions released this 03 Aug 16:59

VR CyberDeck v1.6.4 — FAVORITE_THIS_DECK

> ACCESS GRANTED. JACK IN. OPERATE. DEPLOY. CONTROL.

VR CyberDeck is a cross-platform desktop deck for managing, sideloading, and uploading content to Meta Quest devices. It started as a fork of ApprenticeVR by jimzrt (huge thanks — the core engine is theirs) and grew into a full neon-terminal rebrand of the experience.


// CHANGELOG

New

  • Star your favorite games for quick access. Mark games as starred to build your personal collection of must-plays. Thanks to caiowilson for this contribution.

## // HEADLINE FEATURES (Click to Expand - ITS A SPOILER!)

[ LIBRARY ] — optional, when you add a server

  • Sideloader-first: works first launch with zero config; add your own server (a server config or an rclone config) under Manage Remotes for a browsable library
  • Card view and table view (table now stretches edge-to-edge in wide windows)
  • Persistent sort, density presets, 18+ filter, mirror management with public fallback
  • NEW / UPDATED badges driven off real lastUpdated timestamps

[ TRANSFERS ]

  • Up to 5 parallel downloads with live progress
  • Live // TRANSFER_BUS strip in the header — rotates through active transfers with name, stage, %, speed, and ETA
  • Unified Transfers drawer with stage-aware labels (Installing APK..., Copying OBB...)
  • Cyberdeck warns you with [ TRANSFERS IN PROGRESS ] if you try to close the window mid-transfer (works for both X and Cmd+Q)
  • Scan existing downloads folder, retry, clear-completed, per-item delete

[ DEVICE / ADB ]

  • Auto-connect Quest on launch, WiFi bookmarks for wireless ADB
  • ADB Shell with built-in quick-command shortcuts:
    • PERFORMANCE — pin CPU/GPU level, swap refresh rate (72/90/120Hz), reset texture
    • UPDATES — block / unblock the OS updater and Meta Store
    • SYSTEM — reboot variants, battery, storage, wifi, IP, proximity toggle
    • PACKAGES — list 3rd-party / all / current focused app
    • WIRELESStcpip 5555, adb devices
  • Custom user macros — define your own labelled pill for any command you spam (right-click to edit/delete, persisted across sessions)
  • Disable-sideloading toggle for safety

[ TRAILERS ]

  • Switched from youtube trailers to meta trailers... and back again.
  • No ads, no suggested videos, no subscribe buttons, no comments, no end-screen "Watch next" grid — just the trailer, then it stops
  • Autoplays as soon as you open the trailer drawer

[ INTERFACE ]

  • Glitch UNAUTHORIZED → AUTHORIZED boot intro
  • Matrix-style random g33ky_u$3rn4m3$ per session
  • Neon Hacker Console in the header (live SYS_STATUS readout — now properly fits the 88px header without clipping)
  • Font picker — swap Courier New for Console / Terminal / System Mono if the default is hard to read
  • Optional sound effects (drop-in) — drop click.wav, type.wav, or matrix.wav into your user-data sounds/ folder (no rebuild) or resources/sounds/ (bundled), and the UI plays them on button clicks, the boot-intro typing, and the ADB shell matrix load. Settings has a master toggle, volume slider, TEST button, and a per-file "✓ READY / — missing" status readout. Lookup order: user data → bundled, so you can override bundled sounds without recompiling.
  • Colorblind mode now covers the whole UI — version subtitles, filter counters, Transfers button, battery pill, breach animation all swap palette
  • Accent color picker, font scale up to 200%, tab memory
  • Compact, laptop-friendly layout (900x640 minimum window)
  • One-click log upload from Settings → Log Upload

// DOWNLOAD

Pick the build for your platform — same set of artifacts as the prereleases:

File Platform
vr-cyberdeck-1.6.4-x64.dmg macOS x64
vr-cyberdeck-1.6.4-arm64.dmg macOS arm64
vr-cyberdeck-1.6.4-setup-x64.exe Windows — Installer
vr-cyberdeck-1.6.4-portable-x64.exe Windows — Portable
vr-cyberdeck-1.6.4-x86_64.AppImage Linux x64
vr-cyberdeck-1.6.4-arm64.AppImage Linux ARM64
vr-cyberdeck-1.6.4-amd64.deb Debian/Ubuntu x64
vr-cyberdeck-1.6.4-arm64.deb Debian/Ubuntu ARM64

macOS — "App is damaged":

xattr -c /Applications/VR\ CyberDeck.app

Linux AppImage:

chmod +x vr-cyberdeck-1.6.4-x86_64.AppImage
./vr-cyberdeck-1.6.4-x86_64.AppImage

Already on a 0.x build? It will auto-update.


// JACK_IN

  1. Install the build for your OS
  2. Plug your Quest in via USB (data-capable cable)
  3. Allow USB Debugging on the headset
  4. Drag an APK, ZIP, game folder, or OBB folder onto the deck to sideload it

That's it — no account, no server, no JSON to edit. Want a browsable library instead? You can add your own server (a server config or an rclone config) under Manage Remotes — either you already know one, or you just use it as a sideloader. Power-user knobs (custom servers, mirrors, rclone configs, ADB macros, sound effects) all live in Settings.


// FEEDBACK

  • 🐛 Open an issue for bugs — include a rentry link of the log from Other Settings → //Upload Log.

// CREDITS

Built on top of ApprenticeVR by jimzrt. Without that foundation this project doesn't exist.

Special thanks to Rod — my crazy friend who believes in megalodons on Mars and gave me incredible feedback during the prerelease cycle.

And to everyone who tested the 0.x builds and reported issues — y'all shaped the 1.0.0 polish list.

// LICENSE

GNU Affero GPL v3


Need help adding a server? Tutorial Video by CrazyScamp here

> v1.6.4 — END_OF_FILE

Release v1.6.3

Choose a tag to compare

@github-actions github-actions released this 03 Aug 04:33

VR CyberDeck v1.6.3 — SLIDER_GOES_BRRR

> ACCESS GRANTED. JACK IN. OPERATE. DEPLOY. CONTROL.

VR CyberDeck is a cross-platform desktop deck for managing, sideloading, and uploading content to Meta Quest devices. It started as a fork of ApprenticeVR by jimzrt (huge thanks — the core engine is theirs) and grew into a full neon-terminal rebrand of the experience.


// CHANGELOG

Bug Fixes

  • Fixed card size slider range to work properly across the full spectrum of values

## // HEADLINE FEATURES (Click to Expand - ITS A SPOILER!)

[ LIBRARY ] — optional, when you add a server

  • Sideloader-first: works first launch with zero config; add your own server (a server config or an rclone config) under Manage Remotes for a browsable library
  • Card view and table view (table now stretches edge-to-edge in wide windows)
  • Persistent sort, density presets, 18+ filter, mirror management with public fallback
  • NEW / UPDATED badges driven off real lastUpdated timestamps

[ TRANSFERS ]

  • Up to 5 parallel downloads with live progress
  • Live // TRANSFER_BUS strip in the header — rotates through active transfers with name, stage, %, speed, and ETA
  • Unified Transfers drawer with stage-aware labels (Installing APK..., Copying OBB...)
  • Cyberdeck warns you with [ TRANSFERS IN PROGRESS ] if you try to close the window mid-transfer (works for both X and Cmd+Q)
  • Scan existing downloads folder, retry, clear-completed, per-item delete

[ DEVICE / ADB ]

  • Auto-connect Quest on launch, WiFi bookmarks for wireless ADB
  • ADB Shell with built-in quick-command shortcuts:
    • PERFORMANCE — pin CPU/GPU level, swap refresh rate (72/90/120Hz), reset texture
    • UPDATES — block / unblock the OS updater and Meta Store
    • SYSTEM — reboot variants, battery, storage, wifi, IP, proximity toggle
    • PACKAGES — list 3rd-party / all / current focused app
    • WIRELESStcpip 5555, adb devices
  • Custom user macros — define your own labelled pill for any command you spam (right-click to edit/delete, persisted across sessions)
  • Disable-sideloading toggle for safety

[ TRAILERS ]

  • Switched from youtube trailers to meta trailers... and back again.
  • No ads, no suggested videos, no subscribe buttons, no comments, no end-screen "Watch next" grid — just the trailer, then it stops
  • Autoplays as soon as you open the trailer drawer

[ INTERFACE ]

  • Glitch UNAUTHORIZED → AUTHORIZED boot intro
  • Matrix-style random g33ky_u$3rn4m3$ per session
  • Neon Hacker Console in the header (live SYS_STATUS readout — now properly fits the 88px header without clipping)
  • Font picker — swap Courier New for Console / Terminal / System Mono if the default is hard to read
  • Optional sound effects (drop-in) — drop click.wav, type.wav, or matrix.wav into your user-data sounds/ folder (no rebuild) or resources/sounds/ (bundled), and the UI plays them on button clicks, the boot-intro typing, and the ADB shell matrix load. Settings has a master toggle, volume slider, TEST button, and a per-file "✓ READY / — missing" status readout. Lookup order: user data → bundled, so you can override bundled sounds without recompiling.
  • Colorblind mode now covers the whole UI — version subtitles, filter counters, Transfers button, battery pill, breach animation all swap palette
  • Accent color picker, font scale up to 200%, tab memory
  • Compact, laptop-friendly layout (900x640 minimum window)
  • One-click log upload from Settings → Log Upload

// DOWNLOAD

Pick the build for your platform — same set of artifacts as the prereleases:

File Platform
vr-cyberdeck-1.6.3-x64.dmg macOS x64
vr-cyberdeck-1.6.3-arm64.dmg macOS arm64
vr-cyberdeck-1.6.3-setup-x64.exe Windows — Installer
vr-cyberdeck-1.6.3-portable-x64.exe Windows — Portable
vr-cyberdeck-1.6.3-x86_64.AppImage Linux x64
vr-cyberdeck-1.6.3-arm64.AppImage Linux ARM64
vr-cyberdeck-1.6.3-amd64.deb Debian/Ubuntu x64
vr-cyberdeck-1.6.3-arm64.deb Debian/Ubuntu ARM64

macOS — "App is damaged":

xattr -c /Applications/VR\ CyberDeck.app

Linux AppImage:

chmod +x vr-cyberdeck-1.6.3-x86_64.AppImage
./vr-cyberdeck-1.6.3-x86_64.AppImage

Already on a 0.x build? It will auto-update.


// JACK_IN

  1. Install the build for your OS
  2. Plug your Quest in via USB (data-capable cable)
  3. Allow USB Debugging on the headset
  4. Drag an APK, ZIP, game folder, or OBB folder onto the deck to sideload it

That's it — no account, no server, no JSON to edit. Want a browsable library instead? You can add your own server (a server config or an rclone config) under Manage Remotes — either you already know one, or you just use it as a sideloader. Power-user knobs (custom servers, mirrors, rclone configs, ADB macros, sound effects) all live in Settings.


// FEEDBACK

  • 🐛 Open an issue for bugs — include a rentry link of the log from Other Settings → //Upload Log.

// CREDITS

Built on top of ApprenticeVR by jimzrt. Without that foundation this project doesn't exist.

Special thanks to Rod — my crazy friend who believes in megalodons on Mars and gave me incredible feedback during the prerelease cycle.

And to everyone who tested the 0.x builds and reported issues — y'all shaped the 1.0.0 polish list.

// LICENSE

GNU Affero GPL v3


> v1.6.3 — END_OF_FILE

Release v1.6.2

Choose a tag to compare

@github-actions github-actions released this 03 Aug 00:01

VR CyberDeck v1.6.2 — VALIDATE_BEFORE_YOU_JACK_IN

> ACCESS GRANTED. JACK IN. OPERATE. DEPLOY. CONTROL.

VR CyberDeck is a cross-platform desktop deck for managing, sideloading, and uploading content to Meta Quest devices. It started as a fork of ApprenticeVR by jimzrt (huge thanks — the core engine is theirs) and grew into a full neon-terminal rebrand of the experience.


// CHANGELOG

Bug Fixes

  • Fixed server information validation to prevent errors when sideloading games to your Quest headset.
  • Fixed issues based on user error while pasting the server info.
  • Fixed the way pasting the json info in works to make it less confusing.
  • Changed things to make two possible PRs from other people merge easier if and when they decide to contribute fully.

## // HEADLINE FEATURES (Click to Expand - ITS A SPOILER!)

[ LIBRARY ] — optional, when you add a server

  • Sideloader-first: works first launch with zero config; add your own server (a server config or an rclone config) under Manage Remotes for a browsable library
  • Card view and table view (table now stretches edge-to-edge in wide windows)
  • Persistent sort, density presets, 18+ filter, mirror management with public fallback
  • NEW / UPDATED badges driven off real lastUpdated timestamps

[ TRANSFERS ]

  • Up to 5 parallel downloads with live progress
  • Live // TRANSFER_BUS strip in the header — rotates through active transfers with name, stage, %, speed, and ETA
  • Unified Transfers drawer with stage-aware labels (Installing APK..., Copying OBB...)
  • Cyberdeck warns you with [ TRANSFERS IN PROGRESS ] if you try to close the window mid-transfer (works for both X and Cmd+Q)
  • Scan existing downloads folder, retry, clear-completed, per-item delete

[ DEVICE / ADB ]

  • Auto-connect Quest on launch, WiFi bookmarks for wireless ADB
  • ADB Shell with built-in quick-command shortcuts:
    • PERFORMANCE — pin CPU/GPU level, swap refresh rate (72/90/120Hz), reset texture
    • UPDATES — block / unblock the OS updater and Meta Store
    • SYSTEM — reboot variants, battery, storage, wifi, IP, proximity toggle
    • PACKAGES — list 3rd-party / all / current focused app
    • WIRELESStcpip 5555, adb devices
  • Custom user macros — define your own labelled pill for any command you spam (right-click to edit/delete, persisted across sessions)
  • Disable-sideloading toggle for safety

[ TRAILERS ]

  • Switched from youtube trailers to meta trailers... and back again.
  • No ads, no suggested videos, no subscribe buttons, no comments, no end-screen "Watch next" grid — just the trailer, then it stops
  • Autoplays as soon as you open the trailer drawer

[ INTERFACE ]

  • Glitch UNAUTHORIZED → AUTHORIZED boot intro
  • Matrix-style random g33ky_u$3rn4m3$ per session
  • Neon Hacker Console in the header (live SYS_STATUS readout — now properly fits the 88px header without clipping)
  • Font picker — swap Courier New for Console / Terminal / System Mono if the default is hard to read
  • Optional sound effects (drop-in) — drop click.wav, type.wav, or matrix.wav into your user-data sounds/ folder (no rebuild) or resources/sounds/ (bundled), and the UI plays them on button clicks, the boot-intro typing, and the ADB shell matrix load. Settings has a master toggle, volume slider, TEST button, and a per-file "✓ READY / — missing" status readout. Lookup order: user data → bundled, so you can override bundled sounds without recompiling.
  • Colorblind mode now covers the whole UI — version subtitles, filter counters, Transfers button, battery pill, breach animation all swap palette
  • Accent color picker, font scale up to 200%, tab memory
  • Compact, laptop-friendly layout (900x640 minimum window)
  • One-click log upload from Settings → Log Upload

// DOWNLOAD

Pick the build for your platform — same set of artifacts as the prereleases:

File Platform
vr-cyberdeck-1.6.2-x64.dmg macOS x64
vr-cyberdeck-1.6.2-arm64.dmg macOS arm64
vr-cyberdeck-1.6.2-setup-x64.exe Windows — Installer
vr-cyberdeck-1.6.2-portable-x64.exe Windows — Portable
vr-cyberdeck-1.6.2-x86_64.AppImage Linux x64
vr-cyberdeck-1.6.2-arm64.AppImage Linux ARM64
vr-cyberdeck-1.6.2-amd64.deb Debian/Ubuntu x64
vr-cyberdeck-1.6.2-arm64.deb Debian/Ubuntu ARM64

macOS — "App is damaged":

xattr -c /Applications/VR\ CyberDeck.app

Linux AppImage:

chmod +x vr-cyberdeck-1.6.2-x86_64.AppImage
./vr-cyberdeck-1.6.2-x86_64.AppImage

Already on a 0.x build? It will auto-update.


// JACK_IN

  1. Install the build for your OS
  2. Plug your Quest in via USB (data-capable cable)
  3. Allow USB Debugging on the headset
  4. Drag an APK, ZIP, game folder, or OBB folder onto the deck to sideload it

That's it — no account, no server, no JSON to edit. Want a browsable library instead? You can add your own server (a server config or an rclone config) under Manage Remotes — either you already know one, or you just use it as a sideloader. Power-user knobs (custom servers, mirrors, rclone configs, ADB macros, sound effects) all live in Settings.


// FEEDBACK

  • 🐛 Open an issue for bugs — include a rentry link of the log from Other Settings → //Upload Log.

// CREDITS

Built on top of ApprenticeVR by jimzrt. Without that foundation this project doesn't exist.

Special thanks to Rod — my crazy friend who believes in megalodons on Mars and gave me incredible feedback during the prerelease cycle.

And to everyone who tested the 0.x builds and reported issues — y'all shaped the 1.0.0 polish list.

// LICENSE

GNU Affero GPL v3


> v1.6.2 — END_OF_FILE

Release v1.6.1

Choose a tag to compare

@github-actions github-actions released this 31 Jul 00:33

VR CyberDeck v1.6.1 — DAEMON_BREACH_PROTOCOL

> ACCESS GRANTED. JACK IN. OPERATE. DEPLOY. CONTROL.

VR CyberDeck is a cross-platform desktop deck for managing, sideloading, and uploading content to Meta Quest devices. It started as a fork of ApprenticeVR by jimzrt (huge thanks — the core engine is theirs) and grew into a full neon-terminal rebrand of the experience.


// CHANGELOG

Bug Fixes

  • Fixed ADB daemon connection stability issues
  • Improved reliability when establishing connections to Meta Quest headsets

## // HEADLINE FEATURES (Click to Expand - ITS A SPOILER!)

[ LIBRARY ] — optional, when you add a server

  • Sideloader-first: works first launch with zero config; add your own server (a server config or an rclone config) under Manage Remotes for a browsable library
  • Card view and table view (table now stretches edge-to-edge in wide windows)
  • Persistent sort, density presets, 18+ filter, mirror management with public fallback
  • NEW / UPDATED badges driven off real lastUpdated timestamps

[ TRANSFERS ]

  • Up to 5 parallel downloads with live progress
  • Live // TRANSFER_BUS strip in the header — rotates through active transfers with name, stage, %, speed, and ETA
  • Unified Transfers drawer with stage-aware labels (Installing APK..., Copying OBB...)
  • Cyberdeck warns you with [ TRANSFERS IN PROGRESS ] if you try to close the window mid-transfer (works for both X and Cmd+Q)
  • Scan existing downloads folder, retry, clear-completed, per-item delete

[ DEVICE / ADB ]

  • Auto-connect Quest on launch, WiFi bookmarks for wireless ADB
  • ADB Shell with built-in quick-command shortcuts:
    • PERFORMANCE — pin CPU/GPU level, swap refresh rate (72/90/120Hz), reset texture
    • UPDATES — block / unblock the OS updater and Meta Store
    • SYSTEM — reboot variants, battery, storage, wifi, IP, proximity toggle
    • PACKAGES — list 3rd-party / all / current focused app
    • WIRELESStcpip 5555, adb devices
  • Custom user macros — define your own labelled pill for any command you spam (right-click to edit/delete, persisted across sessions)
  • Disable-sideloading toggle for safety

[ TRAILERS ]

  • Switched from youtube trailers to meta trailers... and back again.
  • No ads, no suggested videos, no subscribe buttons, no comments, no end-screen "Watch next" grid — just the trailer, then it stops
  • Autoplays as soon as you open the trailer drawer

[ INTERFACE ]

  • Glitch UNAUTHORIZED → AUTHORIZED boot intro
  • Matrix-style random g33ky_u$3rn4m3$ per session
  • Neon Hacker Console in the header (live SYS_STATUS readout — now properly fits the 88px header without clipping)
  • Font picker — swap Courier New for Console / Terminal / System Mono if the default is hard to read
  • Optional sound effects (drop-in) — drop click.wav, type.wav, or matrix.wav into your user-data sounds/ folder (no rebuild) or resources/sounds/ (bundled), and the UI plays them on button clicks, the boot-intro typing, and the ADB shell matrix load. Settings has a master toggle, volume slider, TEST button, and a per-file "✓ READY / — missing" status readout. Lookup order: user data → bundled, so you can override bundled sounds without recompiling.
  • Colorblind mode now covers the whole UI — version subtitles, filter counters, Transfers button, battery pill, breach animation all swap palette
  • Accent color picker, font scale up to 200%, tab memory
  • Compact, laptop-friendly layout (900x640 minimum window)
  • One-click log upload from Settings → Log Upload

// DOWNLOAD

Pick the build for your platform — same set of artifacts as the prereleases:

File Platform
vr-cyberdeck-1.6.1-x64.dmg macOS x64
vr-cyberdeck-1.6.1-arm64.dmg macOS arm64
vr-cyberdeck-1.6.1-setup-x64.exe Windows — Installer
vr-cyberdeck-1.6.1-portable-x64.exe Windows — Portable
vr-cyberdeck-1.6.1-x86_64.AppImage Linux x64
vr-cyberdeck-1.6.1-arm64.AppImage Linux ARM64
vr-cyberdeck-1.6.1-amd64.deb Debian/Ubuntu x64
vr-cyberdeck-1.6.1-arm64.deb Debian/Ubuntu ARM64

macOS — "App is damaged":

xattr -c /Applications/VR\ CyberDeck.app

Linux AppImage:

chmod +x vr-cyberdeck-1.6.1-x86_64.AppImage
./vr-cyberdeck-1.6.1-x86_64.AppImage

Already on a 0.x build? It will auto-update.


// JACK_IN

  1. Install the build for your OS
  2. Plug your Quest in via USB (data-capable cable)
  3. Allow USB Debugging on the headset
  4. Drag an APK, ZIP, game folder, or OBB folder onto the deck to sideload it

That's it — no account, no server, no JSON to edit. Want a browsable library instead? You can add your own server (a server config or an rclone config) under Manage Remotes — either you already know one, or you just use it as a sideloader. Power-user knobs (custom servers, mirrors, rclone configs, ADB macros, sound effects) all live in Settings.


// FEEDBACK

  • 🐛 Open an issue for bugs — include a rentry link of the log from Other Settings → //Upload Log.

// CREDITS

Built on top of ApprenticeVR by jimzrt. Without that foundation this project doesn't exist.

Special thanks to Rod — my crazy friend who believes in megalodons on Mars and gave me incredible feedback during the prerelease cycle.

And to everyone who tested the 0.x builds and reported issues — y'all shaped the 1.0.0 polish list.

// LICENSE

GNU Affero GPL v3


> v1.6.1 — END_OF_FILE