Skip to content

etherbeing/noir-guard

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Noir Guard

Offline-first password manager with an explorer-style interface, browser-side encryption, and installable PWA behavior.

Noir Guard is designed to feel closer to a polished desktop file explorer than a traditional web form. It runs entirely in the browser, keeps vault data local, supports encrypted backup and restore flows, and aims to stay transparent about how data is protected.

The project is also now scaffolded for native-style packaging:

  • Desktop shell via Tauri
  • Android shell via Capacitor
  • PWA install flow for browser-native standalone usage

Preview

Main explorer Password generator
Main explorer view Password generator view
Credential kinds SSH-focused workflow
Credential kinds view SSH credential workflow
Additional platform view
Additional application screenshot

What Noir Guard already does

  • Runs as an installable PWA with offline-first local storage
  • Uses browser-side cryptography for encrypted vault storage
  • Supports asymmetric vault payloads with restore and migration paths
  • Organizes credentials in nested folders with explorer-style navigation
  • Provides grid-based credential browsing, favorites, quick access, and multi-select actions
  • Generates strong passwords locally and evaluates password strength
  • Tracks history, stale passwords, and rotation planning
  • Exports and restores encrypted vault backups
  • Supports encrypted credential sharing payloads
  • Includes an extension install surface for autofill-related workflows
  • Supports theme switching, English/Spanish localization, and responsive layouts for desktop, tablets, and phones

Platform focus

Noir Guard is being built toward a single browser-based product that works well across:

  • Desktop browsers as a full explorer-like vault
  • Android phones and tablets as a responsive installed PWA
  • Offline usage where the vault remains available without a network connection
  • Browser extension assisted flows for autofill and credential handoff

Security model

Noir Guard aims to keep security understandable, not hidden.

  • Vault data is encrypted locally in the browser
  • The app does not require a backend service to function
  • The UI includes manual lock and blur-triggered auto-lock behavior
  • Failed unlock attempts use persisted exponential backoff protection
  • The app ships with strict CSP guidance and an aggressive developer-console phishing warning
  • Clipboard flows are explicit and time-limited where possible

Important note: This project is transparent and security-focused, but that is not the same as a formal third-party security audit. Treat it accordingly until it has undergone independent review.

Backup and restore

Noir Guard supports encrypted vault backup files and login-time restore flows.

  • Single or multiple backup files can be uploaded during restore
  • Each backup can be unlocked with its own passphrase
  • Restores can merge into the current vault or replace it
  • Collision handling can be manual or bulk-driven
  • Restores can preserve the restored vault protection, or rebuild the vault with a new algorithm, key size, and passphrase
  • Backup exports can optionally omit key parameters, in which case the app tells the user exactly which parameters must be saved separately

Install and run

Requirements

  • Node.js 18+
  • A modern browser with Web Crypto support

Development

Preferred commands:

pnpm install
pnpm dev

Build:

pnpm build

Run tests:

pnpm test:run

Coverage:

pnpm test:coverage

Security script:

pnpm security-test

If you prefer npm, the package scripts are standard Vite scripts and will also work with npm run ....

Native shells

For the closest native-feeling wrappers without rebuilding the app from scratch:

  • Desktop uses Tauri instead of Electron
  • Android uses Capacitor

Why:

  • Tauri is generally lighter and closer to the host platform than Electron for desktop
  • Capacitor gives the project a practical Android application wrapper while preserving the existing React app

Native build notes and commands are documented in NATIVE.md.

The app is also runtime-aware now:

  • Browser install prompts are only shown in real browser/PWA contexts
  • Tauri and Capacitor builds are treated as already-installed shells
  • Native-capable environments can use system file pickers and save dialogs for vault snapshots and encrypted payload exchange

PWA usage

When the browser supports installation, Noir Guard can be installed as a standalone app. Once installed, it behaves more like a local application shell than a normal website.

  • The install button only appears when installation is actually available
  • The app registers a service worker for offline-capable usage
  • Manifest and icon metadata are included for installed usage

Project structure

src/
  App.tsx                 Main application flow and explorer logic
  components/             UI surfaces, dialogs, explorer panels
  crypto/                 Split crypto helpers and vault lifecycle code
  lib/                    Shared utilities
  models.ts               Core vault and credential types
  password.ts             Password generation and evaluation
public/
  manifest.webmanifest    PWA manifest
  icons/                  PWA icons
extra/
  screenshot-*.png        README preview images
TODO.md                   Forward roadmap

Architecture notes

  • src/crypto/ now contains the vault lifecycle, asymmetric helpers, symmetric helpers, and payload types in smaller files
  • src/App.tsx orchestrates login, restore, explorer state, backup flows, and sync/conflict handling
  • src/components/ holds the install, restore, snapshot, history, and explorer dialogs
  • src/password.ts contains local password generation and strength logic

Roadmap

The remaining roadmap is tracked in TODO.md. It now focuses on the next PWA and offline multi-platform milestones instead of completed historical work.

License

MIT

Author

Created by Esteban Chacon Martin (etherbeing)

About

Noir Guard (Guard of the night more or less means that xD) it is a password and credentials manager that is thought to be used (mostly by me), MIT license with a modern look and feel multiplatform and with a wide range of capabilities (mostly the ones I need on my daily life), if you like it use it, if you don't then suggest a feature, please...

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors