A pass extension for importing data from most of the existing password manager.
pass import is a password store extension allowing you to import your password
database to a password store repository conveniently. It natively supports
import from 23 different password managers. More manager support can easily
Passwords are imported into the existing default password store, therefore
the password store must have been initialised before with
By default, pass imports entries at the root of the password store and only keeps the main data (password, login, email, URL, group). This behaviour can be changed using the provided options.
Pass import handles duplicates and is compatible with browserpass.
The following password managers are supported:
|Password Manager||How to export Data||Command line|
|1password||See this guide||
|1password4||File > Export: CSV||
|1password4pif||File > Export: 1PIF||
|chrome||See this guide||
|chromesqlite||See this guide||
|enpass||File > Export > As CSV||
|dashlane||File > Export > Unsecured Archive in CSV||
|fpm||File > Export Passwords: Plain XML||
|gorilla||File > Export: Yes: CSV Files||
|kedpm||File > Export Passwords: Plain XML||
|keepass||File > Export > Keepass2 (XML)||
|keepass2csv||File > Export > Keepass (CSV)||
|keepassx||File > Export to > Keepass XML File||
|keepassx2||Database > Export to CSV File||
|keepassxc||Database > Export to CSV File||
|lastpass||More Options > Advanced > Export||
|networkmanager||Also support specific networkmanager dir and ini file||
|password-exporter||Add-ons Prefs: Export Passwords: CSV||
|pwsafe||File > Export To > XML Format||
|revelation||File > Export: XML||
|roboform||Roboform > Options > Data & Sync > Export To: CSV file||
|upm||Database > Export||
usage: pass import [-h] [-V] [[-p PATH] [-c] [-e] [-f] | -l] [manager] [file] Import data from most of the password manager. Passwords are imported in the existing default password store, therefore the password store must have been initialised before with 'pass init' positional arguments: manager Can be: 1password, 1password4, 1password4pif, bitwarden, chrome, chromesqlite, dashlane, enpass, fpm, gorilla, kedpm, keepass, keepasscsv, keepassx, keepassx2, keepassxc, lastpass, networkmanager, passwordexporter, pwsafe, revelation, roboform. file File is the path to the file that contains the data to import, if empty read the data from stdin. optional arguments: -h, --help show this help message and exit -p PATH, --path PATH Import the passwords to a specific subfolder. -c, --clean Clean data before import. -e, --extra Also import all the extra data present. -l, --list List the supported password managers. -f, --force Overwrite existing path. -q, --quiet Be quiet. -v, --verbose Be verbose. -V, --version Show the program version and exit. More information may be found in the pass-import(1) man page.
man pass-import for more information.
Import password from KeePass
pass import keepass keepass.xml (*) Importing passwords from keepass . File: keepass.xml . Number of password imported: 6 . Passwords imported: Social/mastodon.social Social/twitter.com Social/news.ycombinator.com Servers/ovh.com Servers/ovh.com0 Bank/aib
Import password to a different password store
export PASSWORD_STORE_DIR="~/.mypassword-store" pass init <gpg-id> pass import keepass keepass.xml
Import password to a subfolder
pass import keepass keepass.xml -p Import/ (*) Importing passwords from keepass . File: db/keepass.xml . Root path: Import . Number of password imported: 6 . Passwords imported: Import/Social/mastodon.social Import/Social/twitter.com Import/Social/news.ycombinator.com Import/Servers/ovh.com Import/Servers/ovh.com0 Import/Bank/aib
Passwords should not be written in plain text form on the drive. Therefore when possible you should pipe your passwords to pass import:
my_password_manager_export_cmd | pass import keepass
Otherwise, if your password manager lacks this command line option, you should take care of securely removing the plain text password database:
pass import lastpass data.csv shred -u data.csv
You might also want to update the passwords imported using
pass 1.7.0or greater.
python3(python 3.4, 3.5 and 3.6 are supported)
sudo apt-get install python3-defusedxml
pip3 install defusedxml
git clone https://github.com/roddhjav/pass-import/ cd pass-import sudo make install # For OSX: make install PREFIX=/usr/local
pass-import is available in the Arch User Repository.
pacaur -S pass-import # or your preferred AUR install method
wget https://github.com/roddhjav/pass-import/releases/download/v2.3/pass-import-2.3.tar.gz tar xzf pass-import-2.3.tar.gz cd pass-import-2.3 sudo make install # For OSX: make install PREFIX=/usr/local
wget https://github.com/roddhjav/pass-import/releases/download/v2.3/pass-import-2.3.tar.gz.asc gpg --recv-keys 06A26D531D56C42D66805049C5469996F0DF68EC gpg --verify pass-import-2.3.tar.gz.asc
Feedback, contributors, pull requests are all very welcome. Please read the
CONTRIBUTING.md file for more details on the contribution process.
Copyright (C) 2017 Alexandre PUJOL This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.