
Buttercup to KeePass exporter
By David WORMS
May 14, 2025
- Categories
- Cyber Security
- Tags
- Authentication
- CSV
- Node.js
Never miss our publications about Open Source, big data and distributed systems, low frequency of one email every two months.
Buttercup is a password manager which works on all major platforms including Linux, macOS, Windows, iOS and Android. On March 3rd, Buttercup’s main contributor Perry Mitchell announced the retirement of the project. The news was received with sadness within the users community but also with great respect. Most of us are contributors to the open source community and understand the burden of sustaining popular projects.
I have been a Buttercup fan since its announcement on HackerNews 9 news ago. Using a password manager is a must-have, to not say a requirement. I oriented my choice to the KeePass ecosystem for two main reasons. First, I am fairly confident with the involvement and the sustainability of the community. Second, I have been using KeepPassXC prior to ButterCup and its functionalities suit my usage.
Having several hundred entries in my vault, a manual migration would have been painful. To ease the transition, I published a short script which reads a vault and extracts its information into a CSV suitable for KeePassXC import.
The project is named buttercup-to-keepass. It is open source and it is written as a Node.js package.
Installation
The Node.js npx
command downloads and executes the script.
npx buttercup-to-keepass --help
Alternatively, the project is cloned and initialised locally.
git clone https://github.com/adaltas/buttercup-to-keepass.git
cd buttercup-to-keepass
npm install
node index.js --help
Usage
The script requires the vault location, its master password as well as the CSV destination.
OTP code can be imported to KeePass with the -opt
(-o
) option.
node index.js \
--source ~/Downloads/buttercup.bcup \
--password my-secret \
--target ~/Downloads/buttercup.csv \
-o otp \
-o "2FA Auth"
The full list of available options is:
-c
--columns
Print column names in the first line.-h
--help
Display help information-i
--info
Print the vault structure to stdout.-o
--otp
List of attributes interpreted as OTP code.-p
--password
Buttercup vault password Required.-s
--source
Buttercup vault location Required.-t
--target
CSV exported file location Required.
Import
Importing the CSV file is rather straightforward. In KeePassXC, go to “Databases > Import > CSV file..” and select the exported CSV file. The guide asks for a database name, a description, the database password and created database location. In the import CSV field pane, use the default options.
Conclusion
The script was written and shared with the hope to ease your transition from Buttercup to KeePass. Personnaly, I will wait until the last moment, propably when iOS stop supporting the mobile app. I regret the decision to retire the project but we as a community respect the motivation.