CyberDeck Browser is a native desktop browser shell written in C++20. It uses Chromium Embedded Framework (CEF) for website rendering and Deck Space, a retro-futuristic bookmark system where bookmarks are called Nodes.
Windows and Linux are intentionally separated. The Windows application owns the
Win32 UI, Windows CEF hosting, WGL/OpenGL Deck Space, and Inno Setup packaging.
The Linux application owns its X11/CEF host, Linux Deck Space renderer, XDG data
paths, and Linux install/run scripts under src/platform/linux.
The visual identity is a black terminal-style interface with neon green text, yellow highlights, red warnings/actions, monospace controls, and optional CRT scanline/glow effects. Windows uses OpenGL for Deck Space; Linux keeps its Deck renderer in the separated Linux shell for now.
The repository includes compact x265 promo cuts captured from the portable CEF build:
| Terminal Mode | Nerdy Search |
|---|---|
![]() |
![]() |
| Deck Space | |
|---|---|
![]() |
![]() |
| Node Opened |
|---|
![]() |
More usage notes are in docs/USER_GUIDE.md. Media capture details are in docs/MEDIA.md. Linux installation is covered separately in README_LINUX.md.
- CEF-powered browsing for normal websites.
- Native Windows browser shell with Win32 controls and OpenGL Deck Space.
- Separated Linux CEF browser shell with X11 rendering and Linux-only 3D Deck Space projection.
- Terminal Mode CSS injection for black/green/yellow/red cyberdeck styling.
- CRT shell effects: scanlines, glow, and flicker controls.
- Local history, settings, logs, and Deck Space Nodes stored as JSON.
- Deck Space: 3D bookmark world with hex/cube/panel Nodes.
- Fresh profiles start with default Nodes for Google, Reddit, GitHub, and ChatGPT.
- Node workflows: Add Node, select/open, edit, delete, layout switching.
- OpenGL diagnostics for GPU vendor, renderer, and version.
- Windows installer scaffolding through Inno Setup.
- Windows 11
- Visual Studio 2022 with MSVC C++ tools for CEF-enabled builds
- CMake 3.24 or newer
- Official Windows CEF binary distribution
- Inno Setup 6 for installer creation
- A GPU/driver with compatible OpenGL support for Deck Space
This repository can also build a placeholder non-CEF shell. That mode is useful for local development of native UI and Deck Space plumbing, but it is not a functional web browser release.
- A Linux distribution with GCC or Clang and C++20 support
- CMake 3.24 or newer
- Standard system C++ runtime and filesystem support
- Ubuntu/WSL2 Ubuntu or another Linux distribution with equivalent packages
- Official Linux CEF binary distribution
- GTK/X11/NSS/GBM/ALSA runtime libraries required by CEF
- A GPU/driver with compatible OpenGL support
The Linux CEF host is separate from the Windows UI and has its own native toolbar, Terminal Mode controls, Deck Space view, and install scripts. Full Linux instructions are in README_LINUX.md.
CEF binaries are not committed to this repository. Download an official Windows
CEF binary distribution, extract it locally, then configure with CEF_ROOT:
cmake -S . -B build -DCEF_ROOT="C:\path\to\cef_binary" -DCYBERDECK_REQUIRE_CEF=ON
cmake --build build --config DebugUse Visual Studio 2022 or Ninja from an MSVC developer shell. Official Windows CEF binaries are not link-compatible with the MinGW toolchain used by the local placeholder build.
More details are in docs/CEF_SETUP.md.
Linux CEF install:
./scripts/install_linux.sh --depsThe Linux installer downloads official CEF from the CEF Automated Builds CDN,
builds CyberDeckBrowserLinuxCef, and creates a local cyberdeck-browser
launcher. See README_LINUX.md before publishing or packaging
Linux releases.
Debug build:
cmake -S . -B build -DCEF_ROOT="C:\path\to\cef_binary" -DCYBERDECK_REQUIRE_CEF=ON
cmake --build build --config DebugRelease build helper:
.\scripts\build_release.ps1 -CefRoot "C:\path\to\cef_binary" -RequireCefFull Windows release helper, including CEF download, CEF-required build, runtime verification, installer staging, and portable zip:
.\scripts\build_windows_release.ps1 -SkipInstallerPlaceholder non-CEF build:
cmake -S . -B build
cmake --build buildLinux diagnostics build:
./scripts/build_linux.shLinux CEF install/build:
./scripts/install_linux.sh --depsManual Linux build:
cmake -S . -B build-linux
cmake --build build-linux --parallel
ctest --test-dir build-linux --output-on-failureWSL2/NVIDIA debug pass:
./scripts/debug_wsl2.shDetailed Linux install, run, uninstall, and WSL2 notes are in README_LINUX.md.
Multi-config generators such as Visual Studio usually place the app under the configuration folder:
.\build\Debug\CyberDeckBrowser.exe
.\build\Debug\CyberDeckBrowser.exe "https://www.example.com"Single-config generators such as Ninja usually place the app at:
.\build\CyberDeckBrowser.exe
.\build\CyberDeckBrowser.exe "https://www.example.com"Linux diagnostics launcher:
./build-linux/cyberdeck-browser
./build-linux/cyberdeck-browser "https://www.example.com"Linux CEF browser:
./scripts/run_linux.sh "https://www.example.com"Installed Linux browser:
~/.local/bin/cyberdeck-browser "https://www.example.com"Inside the app:
ADD NODEsaves the current page as a Deck Space Node.DECKenters/exits Deck Space.TERMtoggles Terminal Mode CSS injection for loaded pages.SCAN,GLOW, andFLKadjust native CRT shell effects.SETopens settings and diagnostics, including CEF state, data paths, render path, and log path.- In Deck Space,
Left/Rightselects Nodes,Enteropens,Deleteremoves, andLcycles layout mode.
CyberDeck Browser uses Inno Setup for Windows installer packaging.
.\scripts\build_windows_release.ps1If Inno Setup is not on PATH, pass the compiler path:
.\scripts\build_windows_release.ps1 -IsccPath "C:\Program Files (x86)\Inno Setup 6\ISCC.exe"To stage files without compiling the installer:
.\scripts\package_installer.ps1 -SkipCompileBrowser downloads and installer staging do not need source tests, prompt packs,
local captures, screenshots, AI assistant memory files, or build trees. Those
remain available to developers in the repository, while .gitattributes keeps
development-only folders out of GitHub-generated source archives.
Packaging details are in docs/PACKAGING.md.
Runtime user data is stored under:
%APPDATA%\CyberDeckBrowser
On Linux, the separated launcher uses:
${XDG_DATA_HOME}/cyberdeck-browser
or, when XDG_DATA_HOME is not set:
~/.local/share/cyberdeck-browser
Important files and folders:
settings.json- theme, shell, and Deck Space preferences.history.json- local navigation history.bookmarks.json- Deck Space Nodes.favicons/- local placeholder favicon assets for Nodes.logs/cyberdeck.log- diagnostics log with size-based rotation.
Invalid JSON files are recovered by renaming the corrupted file and creating a fresh default file where recovery is implemented.
Use docs/QA_CHECKLIST.md before tagging a release candidate. Use
docs/RELEASE_NOTES_TEMPLATE.md to prepare release notes.
Useful docs:
- User Guide
- Bookmark Node Model
- CEF Setup
- Linux Install Guide
- Linux Support Notes
- Windows Media Playback
- Packaging
- Promo Media
- QA Checklist
- A production browser release requires a CEF-enabled MSVC build. The non-CEF placeholder build does not render websites.
- The Linux Deck Space view uses a Linux-only software 3D projection today; the Windows Deck Space view remains the WGL/OpenGL implementation.
- Real favicon capture from CEF is not implemented yet; Deck Space currently uses local placeholder favicon badges.
- Deck Space thumbnails are not implemented.
- Reddit and some YouTube video playback require a Windows CEF build with H.264/AAC codec support and the related licensing cleared.
- Installer compilation requires Inno Setup 6 on the packaging machine.
- The installer is not signed and there is no auto-update channel.
- No clean Windows VM install/uninstall pass has been completed in this environment.
- This project has not received a full production security audit.




