This is the client half of the project. The server half — the SKSE plugin that exposes Skyrim's game state over a WebSocket — lives in the companion repository:
andreyvelsk/SkyrimWebSocket — install it inside Skyrim first; without it the monitor has nothing to talk to.
A Vue 3 + Vite PWA + capacitor + electron companion app for The Elder Scrolls V: Skyrim. It connects to a running Skyrim session over WebSocket and shows the player state — stats, inventory, magic, and hotkeys — in real time, on a separate screen.
Designed primarily for the AYN Thor handheld as a second-screen Skyrim companion, but it runs on any modern browser (desktop, phone, tablet).
Demo of gameplay is here - https://www.youtube.com/watch?v=6KL9jrvZpFg
if you have troubles launching the app, feel free to ask for a help in youtube video comments
- Real-time monitoring over WebSocket (stats, inventory, magic, hotkeys)
- Installable as a Progressive Web App (offline shell, home-screen launch)
- Multilingual UI (English / Russian) via
vue-i18n - Skyrim-themed responsive design, optimized for handhelds
- Works fully client-side — no backend besides the in-game plugin
- Now app also has Enderal SE support, with game map! (tested on latest GOG version)
- Install the SkyrimWebSocket SKSE plugin in your Skyrim Special Edition. Follow the install guide in that repo. By default it listens on
ws://127.0.0.1:8765. - Launch Skyrim through
skse64_loader.exeand load a save. - Install latest .apk release (recomended for most android devices), OR, Open https://andreyvelsk.github.io/SkyrimWebMonitor/ in a browser on the same machine
- Configure the WebSocket URL on first launch and connect.
If you use Obtainium, you can install and update the APK directly from this repository's GitHub Releases.
- Open Obtainium and tap Add App.
- Choose GitHub as the source.
- Paste the repo URL:
https://github.com/andreyvelsk/SkyrimWebMonitor. - Select the latest release asset (
.apk) and install.
After that, Obtainium will notify you when a new release is published.
The app can be installed to the home screen / start menu like a native app — it then opens fullscreen and works offline (UI shell only; live data still requires Skyrim + the plugin to be running). Note: this normally way work only if app launched on same device with WS server
- Open latest release
- Look for a version of you OS (Linux or Windows)
- For Linux users - make app as executable,
chmod +xand app file name
- Open https://andreyvelsk.github.io/SkyrimWebMonitor/.
- Look for the install icon (⊕ / monitor-with-arrow) in the address bar, or open the browser menu and choose Install SkyrimWebMonitor… / Apps → Install this site as an app.
- Confirm. The app launches in its own window and gets a shortcut.
- Open the URL.
- Tap the ⋮ menu → Add to Home screen (or Install app).
- Confirm. Launch it from the home screen.
Requirements: Node.js 20+ and npm.
git clone https://github.com/andreyvelsk/SkyrimWebMonitor.git
cd SkyrimWebMonitor
npm install
cp .env.example .env # set VITE_WS_URL to your SkyrimWebSocket address
npm run dev # http://localhost:5173/SkyrimWebMonitor/Other useful scripts:
npm run build # production build into dist/
npm run preview # serve the production build
npm run tsc # type-check
npm run release # bump patch, create git commit+tag, push main + tags
npm run release -- minor
npm run lint # ESLint with --fix
npm run lint:css # Stylelint with --fix
npm run format # Prettier + StylelintRelease orchestration is split between a local command and GitHub Actions:
npm run releaseWhat it does:
- Works only on the
mainbranch and requires a clean git working tree. - Runs
npm run tscandnpm run buildas a preflight check. - Bumps the npm version (
patchby default, ornpm run release -- minor|major). - Creates the release commit and git tag via
npm version. - Pushes
mainand the new tag toorigin.
Pushing a tag like v0.1.1 triggers .github/workflows/release.yml, which:
- Builds the production web assets and Capacitor Android project.
- Builds a release APK.
- Creates a GitHub Release automatically and uploads the APK.
APK signing is optional but recommended. To sign release builds in CI, add these GitHub Actions secrets:
ANDROID_KEYSTORE_BASE64ANDROID_KEYSTORE_PASSWORDANDROID_KEY_ALIASANDROID_KEY_PASSWORD
If those secrets are absent, the workflow still creates a GitHub Release and uploads the unsigned release APK.
If you run into a bug, please open a GitHub issue and include:
- A description of the problem and clear steps to reproduce it.
- A trace-level log from
SkyrimWebSocketcaptured during reproduction. SetLogLevel=traceinData/SKSE/Plugins/SkyrimWebSocket.ini, reproduce the issue, then attach the log file:%USERPROFILE%\Documents\My Games\Skyrim Special Edition\SKSE\SkyrimWebSocket.log - If the game crashed, also attach the
.dmpfile found in the same folder. - Browser name + version, OS, and (if relevant) device — e.g. AYN Thor, Android 14, Chrome 130.
- Browser DevTools console output (any errors / warnings) and, if applicable, the failing WebSocket frame.
The bug-report requirements mirror those of the SkyrimWebSocket project — most of the data the app shows comes from there, so the plugin's trace log is what makes issues actionable.
- Vue 3 (Composition API) + TypeScript
- Vite build tooling
- Pinia state management
- vue-i18n internationalization
- vite-plugin-pwa (Workbox) PWA support
- ESLint, Stylelint, Prettier
- Game icons by game-icons.net — used under the CC BY 3.0 license. Each icon retains its original author attribution; see folder names under
public/icons/ - Map from Immersive Paper Map (3rd Edition) by Ckw25
- Fonts: Cinzel and Cormorant Garamond via Google Fonts (Open Font License).
- The Elder Scrolls V: Skyrim is © Bethesda Softworks / ZeniMax. This is an unofficial fan-made companion app and is not affiliated with or endorsed by Bethesda.
Released under the MIT License.