KeePass database reader in NodeJS

npm install
9 downloads in the last week
30 downloads in the last month

build status is a simple KeePass database reader written in NodeJS.


GPL version 3. Please take a look into LICENSE if you want to know more.

Prerequisites requires version 0.8.x of Node.js or higher. If you want to run the tests or work on, you'll want Mocha and should.js.

Installing with NPM

npm install

Loading a database

Loading a database in is kinda simple:

var keepassio = require('');
var db = new keepassio();

    password: '1234',
    keyfile: 'my.key'

db.load('database.kdbx', function(error, data) {
    if(error) throw error;

Thats it. If your database does not have a keyfile, you can just omit the keyfile key when calling setCredentials. If the loading was successful, data will be an object with all the meta data, groups and entries in it.

test.kdbx data, formatted as JSON

    "meta": {
        "generator": "KeePass",
        "dbName": "Test Name",
        "dbNameChanged": "2013-03-02T19:43:39.000Z",
        "dbDescription": "Test Description",
        "dbDescriptionChanged": "2013-03-02T19:43:39.000Z",
        "defaultUser": "",
        "defaultUserChanged": "2013-03-02T19:43:09.000Z",
        "maintenanceHistoryDays": 365,
        "masterKeyChanged": "2013-03-02T19:43:09.000Z",
        "masterKeyChangeRec": -1,
        "masterKeyChangeForce": -1,
        "recycleBinEnabled": false,
        "recycleBinChanged": "2013-03-02T19:43:39.000Z",
        "entryTemplatesGroup": "AAAAAAAAAAAAAAAAAAAAAA==",
        "entryTemplatesGroupChanged": "2013-03-02T19:43:09.000Z",
        "historyMaxItems": 10,
        "historyMaxSize": 6291456,
        "lastSelectedGroup": "Tey6uDYSQUCUpzBsHbrshw==",
        "lastTopVisibleGroup": "Tey6uDYSQUCUpzBsHbrshw=="
    "groups": {
        "Tey6uDYSQUCUpzBsHbrshw==": {
            "name": "Test",
            "notes": "",
            "iconID": 49,
            "lastModificationTime": "2013-03-02T19:43:09.000Z",
            "creationTime": "2013-03-02T19:43:09.000Z",
            "lastAccessTime": "2013-03-02T19:43:45.000Z",
            "expiryTime": "2013-03-02T12:15:48.000Z",
            "expires": false,
            "usageCount": 6,
            "locationChanged": "2013-03-02T19:43:09.000Z",
            "isExpanded": true,
            "lastTopVisibleEntry": "wGtcsTfSoEadz/fqbTy8Bg==",
            "entries": {
                "TGCQ5xfOoUCV+yLGGCxM8g==": {
                    "title": "",
                    "url": "",
                    "username": "will-it-work?",
                    "notes": "",
                    "lastModificationTime": "2013-03-02T19:44:12.000Z",
                    "creationTime": "2013-03-02T19:43:48.000Z",
                    "lastAccessTime": "2013-03-02T19:44:12.000Z",
                    "expiryTime": "2013-03-02T12:15:48.000Z",
                    "expires": false,
                    "usageCount": 1,
                    "locationChanged": "2013-03-02T19:43:48.000Z",
                    "iconID": 0,
                    "password": "yesitwill"
                "wGtcsTfSoEadz/fqbTy8Bg==": {
                    "title": "agent",
                    "url": "",
                    "username": "smith",
                    "notes": "",
                    "lastModificationTime": "2013-03-02T19:44:34.000Z",
                    "creationTime": "2013-03-02T19:44:14.000Z",
                    "lastAccessTime": "2013-03-02T19:44:34.000Z",
                    "expiryTime": "2013-03-02T12:15:48.000Z",
                    "expires": false,
                    "usageCount": 1,
                    "locationChanged": "2013-03-02T19:44:14.000Z",
                    "iconID": 0,
                    "password": "matrixtest"
            "groups": {}
} KeePass database reader - © 2012-2013 P. Mathis (

npm loves you