WeRead Desktop App (Unofficial) / 微信读书网页版桌面客户端(非官方)
WeRead Desktop is a small Electron wrapper for the official WeRead website. It provides a focused desktop window on macOS, Windows, and Linux while leaving reading, account, and library functionality to WeRead itself.
This project is not affiliated with or endorsed by Tencent or WeRead. Login and reading data remain in the dedicated Chromium website session and are not read by this project.
- Supports macOS (Intel and Apple Silicon), Windows 10 or later, and Linux.
- Keeps the existing login session and restores the previous window position and size.
- Provides native Home, Back, Forward, Reload, Retry, About, and update-check commands.
- On Linux and Windows, optionally auto-hides the menu bar and remembers the choice. Use View → Auto-hide Menu Bar (Alt to Show) or Ctrl+Shift+M to toggle; press Alt to reveal it temporarily. The menu bar stays visible by default. macOS retains its system menu.
- Shows a local recovery page when WeRead is offline or the renderer fails.
- Keeps
https://weread.qq.cominside the app and opens other user-initiated HTTPS links in the default browser. - Runs remote content with Electron sandboxing, context isolation, no Node.js integration, and no preload bridge.
- Requests no camera, microphone, location, notification, device, or filesystem permissions.
- Checks GitHub Releases monthly by default; automatic checks can be set to daily, weekly, monthly, or disabled, while manual checks remain available.
- Contains no telemetry, advertising, injected webpage scripts, or native WeRead API integration.
- Added optional menu bar auto-hide on Linux and Windows, with Alt to reveal, Ctrl+Shift+M to toggle, and persistent preferences.
- Updated Electron from 44.4.5 to 44.7.2 and electron-builder from 26.16.1 to 26.17.0, incorporating dependency updates proposed in PRs #13 and #9.
- Repaired the dependency lockfile for clean installs and updated the vulnerable transitive build dependency http-cache-semantics to 4.3.0.
- Added Linux native menu interaction tests with screenshots and a Cinnamon candidate-testing checklist before release.
- Reworded the offline screen as a neutral connection landing page so automated AppImage catalog checks recognize it as useful application content rather than an error dialog.
- Fixed blank-window startup when WeRead is unavailable by serving a clear local recovery screen through a restricted internal protocol.
- Prevented concurrent failure handlers from interrupting recovery-page navigation.
- Strengthened package verification so required recovery resources cannot be omitted unnoticed.
- Replaced the oversized universal macOS build with separate Apple Silicon and Intel packages, and removed unused Electron language resources.
- Updated Electron from 44.4.3 to 44.4.5.
- Upgraded from Electron 33 to the Electron 44 release line.
- Added strict navigation, popup, redirect, and web-permission controls.
- Added single-instance behavior, window-state restoration, native navigation commands, and an offline/crash recovery page.
- Added configurable update notifications that link to the fixed GitHub Releases page without downloading or installing anything automatically.
- Added reproducible dependency locking, automated tests, dependency auditing, package-content checks, and Electron fuse verification.
- Added GitHub Actions release builds for macOS universal, Windows x64, and Linux x64, with SHA-256 checksums and clearly labeled unsigned artifacts.
- Removed unused dependencies and the empty preload script.
- Disabled Electron cookie encryption to avoid macOS Keychain prompts.
The v1.1.0 review, implementation, tests, and release-hardening work were assisted by OpenAI Codex.
Previous releases:
- v1.0.4 fixed grouped-book navigation and updated Electron and electron-builder.
- v1.0.3 updated Electron and electron-builder.
- v1.0.2 adopted electron-builder and added Apple Silicon, Windows, and Linux support.
- v1.0.1 updated documentation.
- v1.0.0 was the initial Intel macOS release.
Download the newest build from GitHub Releases.
| Platform | Architecture | Format |
|---|---|---|
| macOS | Apple Silicon (arm64) | DMG |
| macOS | Intel (x64) | DMG |
| Windows 10 or later | x64 | NSIS installer |
| Linux | x64 | AppImage and deb |
Release files include SHA-256 checksums and a signing-status note. macOS and Windows artifacts are signed when signing credentials are configured. A filename ending in -unsigned indicates that operating-system trust warnings are expected.
Download the arm64 DMG for an Apple Silicon Mac or the x64 DMG for an Intel Mac. Open it and drag WeRead into the Applications folder. Unsigned builds may require an explicit override in macOS Privacy & Security settings.
Download and run the x64 installer. Windows SmartScreen may warn when the installer is unsigned.
Install the deb package with your package manager, or mark the AppImage executable and run it directly.
Node.js 24 and npm are required.
npm ci
npm startRun the local checks:
npm run check
npm run auditBuild on the native platform:
npm run dist:mac
npm run dist:win
npm run dist:linuxGitHub Actions is the recommended way to create all three platforms. Run the Release workflow manually to produce downloadable candidate artifacts without publishing a release. After testing them, push a vX.Y.Z tag matching package.json to build and publish the GitHub Release. See the release checklist for the complete procedure, and the menu bar candidate test guide for Cinnamon testing before release.
Only the exact https://weread.qq.com origin can navigate inside the application. Other HTTPS links open in the system browser after a user action; HTTP, credential-bearing, malformed, local-file, JavaScript, and custom-scheme URLs are blocked. Web permissions are denied except for fullscreen and sanitized clipboard writes from the WeRead main frame.
The legacy session partition name is intentionally retained so existing users remain signed in. Application-owned state files contain only window geometry, menu bar preferences, update-check timestamps, and update-check preferences. Electron cookie encryption is disabled to avoid macOS Keychain prompts; website session data remains in Chromium's local profile under the operating-system user account.
- @ChRomiumCR — requested menu bar hiding and tested both the deb and AppImage candidates on Linux Mint 22.3 / Cinnamon 6.9 / X11 (#12).
Bug reports, feature suggestions, and testing are welcome contributions alongside code and documentation.
This remains a small hobby project intended to make the official WeRead website more convenient to access. Contributions, bug reports, and suggestions are welcome.
