This project has moved and is read-only. For the latest updates, please go here.
Note: This is an incomplete and preliminary documentation. More documentation will be added as requests come in or when the app is more feature stable. At the moment, I am rather developing new features than writing documentation.
If you want, I'd be happy if you contribute texts for this place!

If you need further instructions, please ask a question on!

Basic workflows

Opening an existing database

When I created the app, I assumed that most users are already using Keepass 2.x on the desktop. For opening the database, there are two main options:
  • You can open the file directly if it is located on a webserver or in the cloud. Use "Open URL" on the startscreen. By default, files from the cloud or FTP/HTTP(S) servers are cached in the application's cache directory after loading them once. This allows to access your files even when you're offline.
  • If you don't have your database stored on a webserver or in the cloud (or if you're using KP2A Offline) you need to copy your kdbx-Database to your phone. Using USB or Wifi is probably tedious if you do the transfer by hand. I'd rather suggest to use a sync tool like FolderSync then. Such a tool copies your database to your local storage, so you always have it accessible. FolderSync can access your database if you have it on a network share or use any other common storage.
  • If your device supports mass storage mode, you can also copy the database to your phone and use the Keepass "Synchronize" command every now and then to keep the files in sync. Note that this does not work with MTP (e.g. Galaxy Nexus, SGS3).

Creating a new database

Select "Create new database" from the start screen. Tap the integrated help icons for more information.

Getting passwords into the password fields

There are many ways how to enter the passwords from your database in the corresponding fields. By default, the clipboard as well as the KP2A keyboard are activated in the settings:
  • The KP2A keyboard is the recommended way because it's safe against clipboard loggers: Whenever you select an entry, the KP2A keyboard notification will appear in the notification bar. Click it to activate the keyboard. (The first time you do this, you are required to enable the keyboard in the system settings. This must be done by the user for Android security reasons.) As soon as it's activated, you can tap a field where you want to enter data from the selected entry. The KP2A keyboard will come up. Click the KP2A key (on the bottom left) to select whether you want to enter Username/password etc. When you're done, click the Keyboard key (next to the KP2A key) to switch back to your favorite keyboard.
  • The clipboard based approach can be used as well: Pull the notification bar down and select "Copy username/password to clipboard". Then long-tap the field where you want to paste the data. A small "paste" button should come up.

These two options can be used in different workflows:
  1. Browser-based workflow: If you are browsing the web and need to enter crendentials for a webpage, the recommended workflow is to use the "Share URL" option from the browser's menu. Then select Keepass2Android (or KP2A Offline). Open your database (if it's not already opened) and select the entry you want to enter. Use one of the two methods described above to enter the credentials.
  2. KP2A based workflow for websites: Open KP2A, open your database, select your entry (in this step, the notification bar items should show up already). Now click the URL link of the entry to open a browser window with the website. Use one of the two methods described above to enter the credentials.
  3. KP2A Keyboard based workflow: When you are in a text field, you can use the Android icon in the notification bar to switch to the KP2A keyboard. Hit the KP2A key to select an icon. After it's selected, hit the KP2A key again to enter the desired field.

Creating a new account

Assume you want to create an account on a website. If you do not have a database yet, see above. As soon as you have created or located an existing database, you may proceed as follows:
  • Go to the website you want to create the account for
  • Select Share/Share URL from the browser's menu and tap "Keepass2Android"
  • Log in to your database (if it's not already unlocked)
  • You will see the search result screen with "No search results"
  • Tap "Create entry for URL"
  • Choose the desired group, then tap "Add entry"
  • Tap the "..." button next to the password field to launch the password generator, create your password and then select "Accept"
  • Enter a name for the entry
  • Enter the username you want to use for the entry
  • Tap "Save" on the top
  • You should see notifications like "Entry is available through KP2A keyboard" and/or "Copy username/password to clipboard". If not, view the new entry by clicking it.
  • Return back to the browser.
  • Use the notifications to enter your new credentials. See "Getting passwords into the password fields" for more details.
  • If the user name you entered is not available or valid, choose a different one but copy it to clipboard. After creating the account, don't forget to update the new entry.

Keepass2Android vs Keepass2Android Offline vs Keepassdroid

What's the difference between these apps? I tried to create a comparison on Comparison of Keepass apps for Android to help you pick the best for you!

Advanced topics

YubiKey NEO support for One-Time-Passwords

Please see the How to use Keepass2Android with YubiKey NEO page.

Advanced usage of the Keepass2Android keyboard

Please see the Advanced usage of the Keepass2Android keyboard page.


  • Should I use the KP2A keyboard for entering passwords?
The KP2A keyboard is meant to quickly "paste" or "type" values from your database to any text fields by using the KP2A icon. The QUERTY keyboard is just for convenience (if you just have the KP2A keyboard activated and need to enter a few letters). However, every other (trustworthy) keyboard is ok as well to enter sensitive information: Keyboard's aren't unsafe in Android. Only the clipboard is. Thus, the KP2A keyboard allows to get information out of the database without using the clipboard.
You can use any keyboard when you enter the main database password - it's safe!
  • Is it safe to store my kdbx file in the cloud?
While it may happen that someone gets access to your kdbx file in the cloud, there is still no need to worry: the purpose of encryption is to protect the data even in case someone gets the kdbx file! As long as you are using a safe master key, you're safe!
  • Why is Keepass2Android so big?
Please see Keepass2Android Apk for more information.

For developers

If you are interested in adding new features, you have two options:
Either your features can be implemented as a plug-in. Please see How to create a plug-in? for more information. Or you add the features directly in the source code of the projects and commit the patches. Please see Building with Mono for Android for more information.

Last edited Jun 2, 2014 at 8:46 PM by PhilippC, version 15


pkloes Oct 21, 2015 at 10:15 PM 
I would like to add a feature to Keepass2Android. Can you give me a pointer where to start implementing a KeyProvider, at least that what its called in keepass. What i want is to use this device as a masterpassword replacement. As i understand you decided to disable the usual KeyProvider interface because of its synchronous nature and within the keepass2android plugin sdk framework i cant find a fitting entrypoint to replace/add new masterpassword providers.

mdades Oct 13, 2014 at 4:23 PM 
I'm having problems with the offline version.
I set the program to not turn off so that I could
avoid entering in the long password each time I
open the program, but that does not work. is
there some way to keep the program active?

also, I would like to add my own icons to program
items. is there some way to do that?