MARK(1)

NAME
pimport - A passwords importer swiss army knife

SYNOPSIS
pimport [options] dst src [src]

DESCRIPTION
pimport is a passwords importer swiss army knife allowing you to import your password database to your new password manager repository conveniently. It natively supports import from 55 password managers, and export to 6 destination password managers. More manager support can easily be added. By default, pimport imports entries at the root of the password store and only keeps the primary data (password, login, email, URL, group). This behaviour can be changed using the provided options. It also handles duplicates and support OTP secret.

COMMAND

pimport [ --path <path>, -p <path> ] [ --root <path>, -r <path> ]
     [ --key <file>, -k <file> ] [ --all, -a ] [ --force, -f ]
     [ --clean, -c ] [--convert, -Cl] [ --sep <char> ] [ --del <char> ]
     [ --cols <cols> ] [ --config <file> ] [ --out <path>, -o <path> ]
     [----list-importers, -l] [--list-exporters, -l] [--help, -h]
     [--version, -V] [ --verbose, -v ] [ --quiet, -q ]
     dst src [src] Import data from most of the password manager. Passwords are imported into an existing password repository; therefore, the password repository must have been initialised before. dst refer to one of the supported destination password managers to which you want to export your data. The complete list of supported destination managers can be found in the section SUPPORTED DESTINATION MANAGERS. src [src] can refer to two things: the path to the data to import or to the password manager name followed by the path to the data to import. If only the path to the data to import is given, pass-import automatically detects the data format to import. The complete list of supported managers can be found in the section SUPPORTED MANAGERS. If --out or -o is specified along with an argument, provide a path where the destination password manager lives. It can be a file, a directory, or even a login depending on the manager. Specific root directory to use in the password store can be given using --path or -p or --root or -r, along with an argument. Where --path refer to the destination repository while --root refer to the source repository. If required by a password manager, a key file can be given using the --key or -k option along with the path to the keyfile to use. If --all or -a is specified, conserve and import all the data present in the backup file. Otherwise, only title, password, login, URL, comments, and group data are imported. If --force or -f is specified, the import process will overwrite existing password entry if it already exists. If --clean or -c is specified, clean the password path in order to be more command line friendly. If --convert or -C is specified, convert the invalid characters present in the paths before import. Invalid characters for both Windows and Unix systems are supported. The default separator replaces the invalid characters: '-' If --sep is specified, provide a character of replacement for the path separator. Default: '-' If --del is specified, provide an alternative CSV delimiter character. Default: ',' If --cols is specified along with an argument, set the expected CSV columns to map columns to credential attributes. Only used for the generic csv importer. If --config is specified along with an argument, pass-import will consider this config file instead of the default one '.import'. If --list-importers or -l is specified, print the list of the available password manager. If --list-exporters or -e is specified, print the list of the available destination password manager. If --help or -h is specified without argument, print the program usage. If the option is specified along with an argument and if this argument is a supported password manager, print usage for this manager. If --verbose or -v is specified, be more verbose. This option can be specified multiple times to set the verbosity level.

OPTIONS

-o <path>, --out=<path>
    Where the destination password manager lives. Can be a file, a directory or even a login depending of the manager.

-r <path>, --root=<path>
    Only import the password from a specific subfolder.

-p <path>, --path=<path>
    Import the passwords to a specific subfolder.

-k <file>, --key=<file>
    Path to a keyfile if required by a manager.

-a, --all
    Also import all the extra data present.

-f, --force
    Overwrite existing passwords.

-c, --clean
    Clean data before import.

-C, --convert
    Convert invalid characters present in the paths.

--sep=<char>
    Provide a character of replacement for the path separator. Default: '-'

--del=<char>
    Provide an alternative CSV delimiter character. Default: ','

--cols=<cols>
    CSV expected columns to map columns to credential attributes. Only used for the generic csv importer.

--config=<file>
    Set a config file. Default: '.import'

-l, --list-importers
    List the supported password managers.

-e, --list-exporters
    List the supported password exporters.

-h, --help
    Show usage message.

-V, --version
    Show the program version and exit.

-v, --verbose
    Set verbosity level, can be used more than once.

-q, --quiet
    Be quiet.

EXAMPLES

$ pimport keepass lastpass.csv --out keepass.kdbx`

$ pimport csv ~/.password-store --out file.csv`

Import password from KeePass to password store
    $ pimport pass keepass.xml --out ~/.password-store
    (*) Importing passwords from keepass to pass
     . Passwords imported from: keepass.xml
     . Passwords exported to: ~/.password-store
     . Number of password imported: 6
     . Passwords imported:
           Social/mastodon.social
           Social/twitter.com
           Social/news.ycombinator.com
           Servers/ovh.com/bynbyjhqjz
           Servers/ovh.com/jsdkyvbwjn
           Bank/aib

Import password to a subfolder
    $ pimport pass bitwarden.json -p Import/ --out ~/.password-store
    (*) Importing passwords from bitwarden to pass
     . Passwords imported from: bitwarden.json
     . Passwords exported to: ~/.password-store
     . 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/bynbyjhqjz
          Import/Servers/ovh.com/jsdkyvbwjn
          Import/Bank/aib

If the manager is not correctly detected, you can pass it at source argument
    $ pimport pass dashlane dashlane.csv --out ~/.password-store

CONFIGURATION FILE
Some configurations can be read from a configuration file called .import if it is present at the root of the password repository. The configuration read from this file will be overwritten by their corresponding command-line option if present.

Example of the .import configuration file
    $ cat .import
    --- # Separator string
    separator: '-' # The list of string that should be replaced by other string. Only activated
    # if the `clean` option is enabled.
    cleans:
      ' ': '-'
      '&': 'and' # The list of protocol. To be removed from the title.
    protocols:
      - http:// # The list of invalid characters. Replaced by the separator.
    invalids:
      - '<'
      - '>'

SUPPORTED DESTINATION MANAGERS

csv (csv)
    Website:
     You should use the --cols option to map columns to credential attributes.
     The recognized column names by pass-import are the following:
     'title', 'password', 'login', 'email', 'url', 'comments',
     'otpauth', 'group'
     ``title`` and ``group`` field are used to generate the password
     path. If you have otp data, they should be named as ``otpauth``.
     These are the *standard* field names. You can add any other field
     you want. Command: pimport csv src [src]

gopass (gopass)
    Website: https://www.gopass.pw/ Command: pimport gopass src [src]

keepass (kdbx)
    Website: https://www.keepass.info Command: pimport keepass src [src]

keepassx2 (kdbx)
    Website: https://www.keepassx.org Command: pimport keepassx2 src [src]

keepassxc (kdbx)
    Website: https://keepassxc.org Command: pimport keepassxc src [src]

pass (pass)
    Website: https://passwordstore.org Command: pimport pass src [src]

SUPPORTED MANAGERS

1password (csv) v6
    Website: https://1password.com Export: See this guide: https://support.1password.com/export Command: pass import 1password file.csv

1password (1pif) v4
    Website: https://1password.com Export: See this guide: https://support.1password.com/export Command: pass import 1password file.1pif

1password (csv) v4
    Website: https://1password.com Export: See this guide: https://support.1password.com/export Command: pass import 1password file.csv

aegis (json)
    Website: https://github.com/beemdevelopment/Aegis Export: Settings> Tools: Export Plain Command: pass import aegis file.json

aegis (json)
    Website: https://github.com/beemdevelopment/Aegis Export: Settings> Tools: Export encrypted Command: pass import aegis file.json

andotp (json)
    Website: https://github.com/andOTP/andOTP Export: Backups> Backup plain Command: pass import andotp file.json

apple-keychain (keychain)
    Website: https://support.apple.com/guide/keychain-access Export: See this guide: https://gist.github.com/santigz/601f4fd2f039d6ceb2198e2f9f4f01e0 Command: pass import applekeychain file.txt

bitwarden (csv)
    Website: https://bitwarden.com Export: Tools> Export Vault> File Format: .csv Command: pass import bitwarden file.csv

bitwarden (json)
    Website: https://bitwarden.com Export: Tools> Export Vault> File Format: .json Command: pass import bitwarden file.json

blur (json)
    Website: https://abine.com Export: Settings: Export Data: Export Blur Data Command: pass import blur file.json

blur (csv)
    Website: https://abine.com Export: Settings: Export Data: Export CSV: Accounts: Export CSV Command: pass import blur file.csv

buttercup (csv)
    Website: https://buttercup.pw Export: File > Export > Export File to CSV Command: pass import buttercup file.csv

chrome (csv)
    Website: https://support.google.com/chrome Export: See this guide: https://support.google.com/chrome/answer/95606#see Command: pass import chrome file.csv

chrome (csv)
    Website: https://support.google.com/chrome Export: See this guide: https://support.google.com/chrome/answer/95606#see Command: pass import chrome file.csv

clipperz (html)
    Website: https://clipperz.is Export: Settings > Data > Export: HTML + JSON Command: pass import clipperz file.html

csv (csv)
    Website:
     You should use the --cols option to map columns to credential attributes.
     The recognized column names by pass-import are the following:
     'title', 'password', 'login', 'email', 'url', 'comments',
     'otpauth', 'group'
     ``title`` and ``group`` field are used to generate the password
     path. If you have otp data, they should be named as ``otpauth``.
     These are the *standard* field names. You can add any other field
     you want. Export: Nothing to do Command: pass import csv file.csv --cols 'url,login,,password'

dashlane (csv)
    Website: https://www.dashlane.com Export: File > Export > Unsecured Archive in CSV Command: pass import dashlane file.csv

dashlane (json)
    Website: https://www.dashlane.com Export: File > Export > Unsecured Archive in JSON Command: pass import dashlane file.json

encryptr (csv)
    Website: https://spideroak.com/encryptr Export: Compile from source and follow instructions from this guide: https://github.com/SpiderOak/Encryptr/issues/295#issuecomment-322449705 Command: pass import encryptr file.csv

enpass (json) v6
    Website: https://www.enpass.io Export: Menu > File > Export > As JSON Command: pass import enpass file.json

enpass (csv)
    Website: https://www.enpass.io Export: File > Export > As CSV Command: pass import enpass file.csv

firefox (csv)
    Website: https://www.mozilla.org/en-US/firefox/lockwise/ Export: In about:logins Menu: Export logins Command: pass import firefox file.csv

firefox (csv)
    Website: https://github.com/kspearrin/ff-password-exporter Export: Add-ons Prefs: Export Passwords: CSV Command: pass import firefox file.csv

fpm (xml)
    Website: http://fpm.sourceforge.net Export: File > Export Passwords: Plain XML Command: pass import fpm file.xml

freeotp+ (json)
    Website: https://github.com/helloworld1/FreeOTPPlus Export: Settings> Export> Export JSON Format Command: pass import freeotp+ file.json

gnome (libsecret)
    Website: https://wiki.gnome.org/Projects/GnomeKeyring
     You can provide a gnome-keyring collection label to import. It can be empty
     to import all collections. Export: Nothing to do Command: pass import gnome-keyring <label>

gnome-auth (json)
    Website: https://gitlab.gnome.org/World/Authenticator Export: Backup > in a plain-text JSON file Command: pass import gnome-authenticator file.json

gopass (gopass)
    Website: https://www.gopass.pw/ Export: Nothing to do Command: pass import gopass path/to/store

gorilla (csv)
    Website: https://github.com/zdia/gorilla/wiki Export: File > Export: Yes: CSV Files Command: pass import gorilla file.csv

kedpm (xml)
    Website: http://fpm.sourceforge.net Export: File > Export Passwords: Plain XML Command: pass import kedpm file.xml

keepass (kdbx)
    Website: https://www.keepass.info Export: Nothing to do Command: pass import keepass file.kdbx

keepass (csv)
    Website: https://www.keepass.info Export: File > Export > Keepass (CSV) Command: pass import keepass file.csv

keepass (xml)
    Website: https://www.keepass.info Export: File > Export > Keepass (XML) Command: pass import keepass file.xml

keepassx (xml)
    Website: https://www.keepassx.org Export: File > Export to > Keepass XML File Command: pass import keepassx file.xml

keepassx2 (kdbx)
    Website: https://www.keepassx.org Export: Nothing to do Command: pass import keepassx2 file.kdbx

keepassx2 (csv)
    Website: https://www.keepassx.org Export: Database > Export to CSV File Command: pass import keepassx2 file.csv

keepassxc (kdbx)
    Website: https://keepassxc.org Export: Nothing to do Command: pass import keepassxc file.kdbx

keepassxc (csv)
    Website: https://keepassxc.org Export: Database > Export to CSV File Command: pass import keepassxc file.csv

keeper (csv)
    Website: https://keepersecurity.com Export: Settings > Export : Export to CSV File Command: pass import keeper file.csv

lastpass (csv)
    Website: https://www.lastpass.com Export: More Options > Advanced > Export Command: pass import lastpass file.csv

myki (csv)
    Website: https://myki.com Export: See this guide: https://support.myki.com/myki-app/exporting-your-passwords-from-the-myki-app/how-to-export-your-passwords-account-data-from-myki Command: pass import myki file.csv

network-manager (nm)
    Website: https://wiki.gnome.org/Projects/NetworkManager
     Support import from the installed network configuration but also from a
     specific directory of NetworkManager configuration file or from a given
     file.
     Example:
     -------
     - From directory of ini file: `pass import networkmanager dir/`.
     - From ini file: `pass import networkmanager file.ini`. Export: Also support specific networkmanager dir and ini file Command: pass import networkmanager

padlock (csv)
    Website: https://padloc.app Export: Settings > Export Data and copy text into a .csv file Command: pass import padlock file.csv

pass (pass)
    Website: https://passwordstore.org Export: Nothing to do Command: pass import pass path/to/store

passman (csv)
    Website: https://passman.cc Export: Settings > Export credentials > Export type: CSV Command: pass import passman file.csv

passman (json)
    Website: https://passman.cc Export: Settings > Export credentials > Export type: JSON Command: pass import passman file.json

passpack (csv)
    Website: https://www.passpack.com Export: Settings > Export > Save to CSV Command: pass import passpack file.csv

passpie (yaml) v1.0
    Website: https://www.enpass.io Export: `passpie export file.yml` Command: pass import passpie file.yml

pwsafe (xml)
    Website: https://pwsafe.org Export: File > Export To > XML Format Command: pass import pwsafe file.xml

revelation (xml)
    Website: https://revelation.olasagasti.info Export: File > Export: XML Command: pass import revelation file.xml

roboform (csv)
    Website: https://www.roboform.com Export: Roboform > Options > Data & Sync > Export To: CSV file Command: pass import roboform file.csv

saferpass (csv)
    Website: https://saferpass.net Export: Settings > Export Data: Export data Command: pass import saferpass file.csv

upm (csv)
    Website: http://upm.sourceforge.net Export: Database > Export Command: pass import upm file.csv

zoho (csv)
    Website: https://www.zoho.com/vault Export: Tools > Export Secrets: Zoho Vault Format CSV Command: pass import zoho file.csv

zoho (csv)
    Website: https://www.zoho.com/vault Export: Tools > Export Secrets: Zoho Vault Format CSV Command: pass import zoho file.csv

SECURITY CONSIDERATION

Passwords should not be written in plain text form on the drive. Therefore when possible, you should import it directly from the encrypted data. For instance, with an encrypted Keepass database:
    $ pimport pass keepass file.kdbx --out ~/.password-store

Otherwise, if your password manager does not support it, you should take care of securely removing the plain text password database:
    $ pimport pass lastpass data.csv --out ~/.password-store
    $ shred -u data.csv

Alternatively, pass-import can decrypt gpg encrypted file before importing it. For example:
    $ pimport pass lastpass lastpass.csv.gpg --out ~/.password-store

SEE ALSO
pass-import(1),

AUTHORS
pimport was written by Alexandre Pujol (alexandre@pujol.io).

COPYING
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/>.