Command Line OptionsCommand line options to automate KeePass tasks.
You can pass a file path in the command line in order to tell KeePass to open this file immediately after startup.
Switches can be either prefixed using
a minus (
-) or two minus characters (
On Windows, a slash (
/) is another alternative.
The prefixes are equivalent; it doesn't matter which one you use.
Database file. The database file location is passed as argument. Only one database file is allowed. If the path contains a space, it must be enclosed in quotes (").
Passwords are passed using the
-pw: option. In order to
pass 'abc' as password, you would add the following argument to the command line:
-pw:abc. Note that there must be no space between the ':' and the
password. If your password contains a space, you must enclose it in quotes. For
-pw:"my secret password".
For supplying the key file location, the
exists. The same rules as above apply, just that you specify the key file location:
-keyfile:D:\pwsafe.key. You also need to quote the value, if it contains
a space, tab or other whitespace characters.
In order to just pre-select a key file, use the
For example, if you lock your database with a password and a key file, but
just want to type
in the password (so, without selecting the key file manually), your command line would
look like this:
KeePass.exe "C:\My Documents\MyDatabase.kdb" -preselect:C:\pwsafe.key
KeePass would then show a prompt for the password for the database, but in
the key file list, the
C:\pwsafe.key file is selected already. When using the
preselect switch, KeePass by default activates the key file switch and
sets the focus to the password edit window.
Note the difference! The
preselect switch just pre-selects the key file
for you and displays the login prompt. In contrast, the
doesn't prompt you for the (maybe missing) password.
-minimize command line argument makes KeePass start up minimized.
-auto-type command line argument makes all previous KeePass
instances perform a global auto-type.
-readonly switch is present in the command line, KeePass
will open the database in read-only mode.
-lock switch forces KeePass to open in locked mode (i.e.
you will not be asked immediately for the master key when also passing
a database path).
The order of the arguments is arbitrary.
Open the database file 'C:\My Documents\MyDatabase.kdb' (KeePass will prompt you for the password and/or key file location):
KeePass.exe "C:\My Documents\MyDatabase.kdb"
If you got a database that is locked with a password 'abc', you could open it like this:
KeePass.exe "C:\My Documents\MyDatabaseWithPw.kdb" -pw:abc
If your USB stick always mounts to drive F: and you've locked your database with a key file on the USB stick, you could open your database as follows:
KeePass.exe "C:\My Documents\MyDatabaseWithFile.kdb" -keyfile:F:\pwsafe.key
If you've locked your database using a password and a key file, you can combine the two switches and open your database as follows:
KeePass.exe "C:\My Documents\MyDatabaseWithTwo.kdb" -pw:abc -keyfile:F:\pwsafe.key
You have locked your database using a password and a key file, but only want to have the key file pre-selected (i.e. you want to get prompted for the password), your command line would look like this:
KeePass.exe "C:\My Documents\MyDatabaseWithTwo.kdb" -preselect:F:\pwsafe.key
Starting KeePass using a Batch File
Batch files can be used to start KeePass. Mostly you want to specify some of the parameters listed above. You can theoretically simply put the command line (i.e. application path and parameters) into the batch file, but this is not recommended as the command window will stay open until KeePass is closed. The following method is recommended instead:
START "" KeePass.exe ..\MyDb.kdb -pw:MySecretPw
START command will run KeePass (which opens the
..\MyDb.kdb file using
MySecretPw as password). KeePass is assumed to be in the same
directory (working directory) as the batch file, otherwise you need to
specify a different path.
START executes the given command line and immediately exits,
i.e. it doesn't wait until the application is terminated. Consequently,
the command window will disappear after KeePass has been started.
Please note the two quotes (
") after the
START command. These quotes
are required if the application path contains quotes (in the example
above, the quotes could also be removed).
If you want to learn more about the
START command syntax, type
START /? into the command window.
Closing/Locking KeePass using a Batch File
To close all currently running KeePass instances, call
KeePass.exe with the
All KeePass windows will attempt to close. If a database has been modified, KeePass will ask you whether you want to save or not. If you wish to save in any case (i.e. a forced exit without any confirmation dialog), enable the 'Automatically save database on exit and workspace locking' option in 'Tools' - 'Options...' - 'Advanced'.
The KeePass instance that has been created by the command above is not visible (i.e. it does not show a main window) and will immediately terminate after sending close requests to the other instances.
KeePass ≥ 1.17 and ≥ 2.10 support the
--unlock-all command line options to lock/unlock the workspaces
of all other KeePass instances.