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.
- 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.
- 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.
- 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.
- 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.
- The upload screen accepts
.kdbxfiles from a file picker or drag and drop. - The context stores database buffers locally and decrypts with
argon2-browserpluskdbxweb. - The dashboard lets you switch between opened databases with the selector in the top-left corner.
- Database changes stay local and can be exported or saved back to disk without a server round trip.
Install dependencies:
npm installStart the dev server:
npm run devRun lint:
npm run lintBuild for production:
npm run buildsrc/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.
- 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.
No license file is currently included in the repository.