Skip to content

Repository files navigation

Shinobi Launcher

Shinobi Launcher

Privacy-first multi-account launcher for Naruto Online

Encrypted vault · Isolated sessions · GPU/CPU tuning · Zero tracking · Linux + Windows


Version CI License Downloads Electron Platforms

Shinobi Launcher is a desktop launcher for the browser MMO Naruto Online (Oasgames). It wraps a custom Chromium + Flash PPAPI runtime so you can run multiple accounts side by side, keep credentials in an encrypted vault, and get notified before in-game events fire — all from one distraction-free window. The UI is AMOLED pure black (#000000) with shinobi gold (#d4a543) accents, built for long sessions. No telemetry, no crash reporter, no phone-home — everything stays on your machine.

Naruto Online still requires Flash PPAPI. Modern Chromium (≥88) and Tauri/WebView2 dropped PPAPI — Electron 11.5 is the last runtime with working Pepper Flash. The launcher exists precisely so the remaining community can keep playing.


✨ Features

Feature What it does
🥷 Isolated multi-account Each account gets its own persist:profile-<id> session partition — cookies, localStorage, cache and SWs never cross accounts.
🔐 AES-256 encrypted vault Credentials stored with AES-256-GCM; key derived from a machine-bound seed via PBKDF2-SHA512 (100k rounds). A stolen vault.json is useless on any other machine.
GPU / CPU optimization Curated Chromium flags for Flash PPAPI, plus Force-CPU and Modo Low-Spec profiles, CPU affinity pinning and oom_score_adj tuning.
🛡️ Stall auto-recovery Renderer crashes auto-reload (3/10 min per profile); a StallDetector watches SWF failures and zero-network stalls, then triggers reloadWithPreAuth.
Multi-region event timers Scheduled events per region across 6 server clusters (BR · NA · DE · ES · PL · FR), native desktop notifications N minutes before start, DST auto-detected, bilingual names.
📧 Temp email for alts One-click mail.tm inbox + Oasgames passport registration; captures the JWT login key automatically (rate-limited to prevent abuse).
🚫 Tracker blocker network/blocker.js filters Google Analytics, DoubleClick, Facebook pixels and Oasgames analytics at the WebRequest layer — game APIs whitelisted.
🌐 Bilingual EN + PT-BR Every user-facing string ships in both English and Brazilian Portuguese; toggle persists to config.json.

📦 Install

Grab the latest build from the Releases page.

Linux — AppImage or installer script:

# Option A: AppImage
chmod +x ShinobiLauncher-*.AppImage
./ShinobiLauncher-*.AppImage

# Option B: installer (detects Arch/Ubuntu/Fedora, installs Flash deps if missing)
unzip naruto-online-linux.zip
chmod +x install.sh
./install.sh

Windows — download the portable .zip, extract, run NarutoOnline.exe. No installation required.


⌨️ Keyboard shortcuts

Shortcuts are scoped per window. Game windows (the BrowserWindow opened when you click Play) intercept a small set of keys via before-input-event; the manager window only listens for Esc to close any open modal.

Game window (src/ui/manager/KeyboardShortcuts.js):

Key Action
F5 Clear current account's login (cookies + storage, then pre-auth via API and reload)
F12 Toggle DevTools (debug)
Alt+F4 Close the game window (graceful shutdown via SessionLifecycle)

Manager window (src/ui/app.js):

Key Action
Esc Close any open modal (profile editor / vault)

Blocked in game windows (Chromium defaults overridden to avoid leaking the game's email or opening dev menus by accident): F10 and bare Alt (Chromium menu bar), Ctrl+Shift+I / Ctrl+Shift+J (use F12 instead).


🏗️ Architecture

Single-responsibility modules under src/, no god objects — each subsystem has a thin facade preserving the public API.

src/
├── main.js              # Electron bootstrap: ready → flags → flash → window → daemons
├── preload.js           # contextBridge: window.narutoLauncher API
├── app/                 # Launcher · SessionLifecycle · CpuOptimizer · GpuDetector · StallDetector
├── config/              # settings · regions · i18n · urls · hardware · optimization
├── flash/               # plugin (findFlashPlugin) · mms (Low-Spec mms.cfg generator)
├── network/             # blocker · inspector · cookies · tempmail · api-login
├── profiles/            # store · ProfileVault · CryptoService · PasswordManager · partition
├── memory/              # MemoryGuard (RSS monitor + active-webContents registry)
├── ui/                  # index.html · styles.css · app.js · manager/ · controller facades
└── utils/               # logger · diagnostics · EventTimers · jwt

Full deep-dive (process model, IPC flow, vault crypto, launch sequence) → ARCHITECTURE.md.


🔒 Security

  • AES-256-GCM for credentials; key derived from a machine-bound seed + 32-byte per-installation salt via PBKDF2-SHA512, 100k iterations. Master-password backups use 200k iterations so derived keys can't be shared.
  • contextIsolation: true + nodeIntegration: false + a hardened preload.js exposing only the narutoLauncher bridge.
  • Threat model: protects against offline reading of vault.json on a different machine or under a different user.
  • --no-sandbox is required for PPAPI Flash injection (documented Chromium limitation, not a launcher vulnerability).
  • No telemetry, no crash reporter, no auto-update phone-home. Flash binaries are committed to the repo for reproducible builds — see FLASH_SETUP.md.

Full policy and supported versions → SECURITY.md.


🛠️ Development

npm install --ignore-scripts   # skip the ~180MB Electron binary if you only lint
npm run lint                   # ESLint (legacy config pinned via ESLINT_USE_FLAT_CONFIG=false)

Contributions welcome — see CONTRIBUTING.md. Golden rule: lint stays clean.


📚 Documentation


🌍 Regions

🇧🇷 BR · 🇺🇸 NA · 🇩🇪 DE · 🇪🇸 ES · 🇵🇱 PL · 🇫🇷 FR — scheduled events per region, native notifications, DST-aware.


💎 Credits

  • Flash PPAPI buildsdarktohka/clean-flash-builds (Clean Flash 34.0.0.x)
  • Naruto Online community — BR / NA / DE / ES / PL / FR players, for validating event schedules
  • Not affiliated with Oasis Games. "Naruto Online" is a trademark of its respective owners.

📄 License

MIT — free to use, modify and distribute. See LICENSE.

Built for the Naruto Online community — Linux + Windows, PC-only.

🇧🇷 Português (BR)

O Shinobi Launcher é um launcher desktop para o MMO de navegador Naruto Online (Oasgames). Ele envolve um runtime Chromium + Flash PPAPI customizado para você rodar várias contas lado a lado, guardar credenciais em um cofre criptografado e ser avisado antes dos eventos começarem — tudo de uma única janela limpa. A interface é AMOLED preto puro (#000000) com detalhes em dourado shinobi (#d4a543), feita para sessões longas. Sem telemetria, sem crash reporter, sem phone-home — tudo fica na sua máquina.

Principais funcionalidades:

  • 🥷 Multi-conta totalmente isolada (partições persist:profile-<id>)
  • 🔐 Cofre AES-256-GCM com chave derivada por PBKDF2-SHA512 (100k iterações)
  • ⚡ Otimização de GPU/CPU — flags Chromium, Modo Low-Spec, afinidade de CPU
  • 🛡️ Auto-recuperação de stall — reloader de renderer + StallDetector de SWF
  • ⏰ Timer de eventos multi-região (BR · NA · DE · ES · PL · FR), eventos agendados por região
  • 📧 Email temporário via mail.tm para criar alts em um clique
  • 🚫 Bloqueador de trackers (GA, DoubleClick, Facebook, Oasgames)
  • 🌐 UI bilíngue EN + PT-BR

Instalação (Linux):

# AppImage
chmod +x ShinobiLauncher-*.AppImage
./ShinobiLauncher-*.AppImage

# ou installer script (detecta Arch/Ubuntu/Fedora)
unzip naruto-online-linux.zip
chmod +x install.sh
./install.sh

Windows: baixe o .zip portátil, extraia, rode NarutoOnline.exe.

Atalhos de teclado: a tabela em inglês acima é a referência canônica (janela de jogo: F5 limpa login, F12 alterna DevTools, Alt+F4 fecha; janela do gerenciador: Esc fecha modais).

Documentação completa: ARCHITECTURE.md · FLASH_SETUP.md · ROADMAP.md · CHANGELOG.md · SECURITY.md · CONTRIBUTING.md.

About

Privacy-first multi-account Flash launcher for Naruto Online. Encrypted credential vault, GPU/CPU optimization, zero tracking. Linux + Windows.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

4 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages