Skip to content

Repository files navigation

KeePass Web

KeePass Web is a local-first web client for working with KeePass .kdbx databases in the browser. It decrypts and edits databases client-side with Next.js, React, TypeScript, kdbxweb, and WebAssembly-based Argon2, with no backend service in the data path.

What It Does

  • Import existing KeePass databases from your machine.
  • Create a brand new KeePass database locally.
  • Unlock databases in the browser and browse folders and entries.
  • Search credentials, copy fields, and manage multiple opened databases.
  • Save changes back to disk with browser file-system support when available.
  • Keep the app shell available offline with a service worker and cache-backed local storage.

Privacy Model

  • No database content is sent to a server.
  • Password derivation and decryption happen in the browser.
  • Imported database buffers are cached locally in IndexedDB for offline reopening.
  • The app registers a service worker so the shell remains available offline.
  • Chrome and Edge get the best save/open experience because the app uses the File System Access API when the browser supports it.

Main Screens

  • Upload and manager screen: import files, create databases, and manage loaded databases.
  • Unlock screen: enter the master password for a locked database.
  • Dashboard: browse folders and entries, search, copy data, export subsets, and switch between opened databases.

Browser Support

  • Recommended: Chrome or Edge on desktop.
  • Supported with fallback behavior: browsers without the File System Access API can still import and download databases, but they will not get the same direct save/open handle workflow.
  • Offline support works in any browser that supports service workers and IndexedDB.

How It Works

  1. The upload screen accepts .kdbx files from a file picker or drag and drop.
  2. The context stores database buffers locally and decrypts with argon2-browser plus kdbxweb.
  3. The dashboard lets you switch between opened databases with the selector in the top-left corner.
  4. Database changes stay local and can be exported or saved back to disk without a server round trip.

Development

Install dependencies:

npm install

Start the dev server:

npm run dev

Run lint:

npm run lint

Build for production:

npm run build

Project Structure

  • src/app/ - app shell, theme setup, and service worker registration.
  • src/components/ - upload, unlock, dashboard, and supporting UI.
  • src/context/ - KeePass state management and database operations.
  • src/lib/ - KeePass crypto helpers, cache helpers, and database utilities.
  • public/ - static assets and offline manifest/service worker assets.

Notes For Contributors

  • Keep browser warnings out of the console; Next dev overlays can intercept clicks when warnings are present.
  • Preserve local-first behavior. Do not add network calls for database content.
  • Test changes in Chrome if they touch save/open or file picker behavior.
  • Prefer small, focused edits and keep the UI consistent with the current dark glassmorphism style.

License

No license file is currently included in the repository.

About

KeePass Web is a local-first web client for working with KeePass .kdbx databases in the browser. It decrypts and edits databases client-side with Next.js, React, TypeScript, kdbxweb, and WebAssembly-based Argon2, with no backend service in the data path.

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages