Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »


    License Build Status Dependency Status Coverage Status NPM version Gittip is a Node.js library for reading and writing KeePass databases. Please note that currently only the newest database version, called KDBX, is supported. Features include so far:

    • Password and/or Keyfile credentials: supports both of the most common used credential types for KeePass databases.

    • Powerful API: This library offers you a powerful API, which even allows you raw access to the database, so even unsupported third-party fields can be modified.

    • Joyfully simple and flexible: I've built to be easily understandable and a joy to use. It's built with JavaScript and tries to provide a solid foundation for modifying KDBX databases.

    • Stunning performance: To further improve performance, even includes an optional native library, which will help while performing the key transformations. If your system should not have the Crypto++ Dev Libraries installed, it will automatically fallback to the slower Node.js methods.

    Note: is currently under active development. As such, while this library is well-tested, the API might change at anytime. Consider using it in production applications only if you're comfortable following a changelog and updating your usage accordingly.


    As mentioned above, is really easy to use. The following example code opens a database, outputs its name, changes the name to 'KeePass.IO rocks!' and saves the database with new credentials. More examples are available within the examples folder.

    var path = require('path');
    var kpio = require('../lib');
    var db = new kpio.Database();
    db.addCredential(new kpio.Credentials.Password('thematrix'));
    db.addCredential(new kpio.Credentials.Keyfile('apoc.key'));
    db.loadFile(databasePath, function(err) {
        if(err) throw err;
        var rawDatabase = db.getRawApi().get();
        console.log('Database name: ' + rawDatabase.KeePassFile.Meta.DatabaseName);
        rawDatabase.KeePassFile.Meta.DatabaseName = 'KeePass.IO rocks!';
        db.addCredential(new kpio.Credentials.Password('morpheus'));
        db.addCredential(new kpio.Credentials.Keyfile('trinity.key'));
        db.saveFile(newDatabasePath, function(err) {
            if(err) throw err;


    Copyright © 2013-2014 Pascal Mathis. All rights reserved.


    npm i

    Downloadsweekly downloads







    last publish


    • avatar