{"id":13406882,"url":"https://github.com/buttercup/buttercup-desktop","last_synced_at":"2025-04-09T00:30:19.424Z","repository":{"id":37546343,"uuid":"42370929","full_name":"buttercup/buttercup-desktop","owner":"buttercup","description":":key: Cross-Platform Passwords \u0026 Secrets Vault","archived":false,"fork":false,"pushed_at":"2024-09-30T18:17:32.000Z","size":15994,"stargazers_count":4307,"open_issues_count":150,"forks_count":332,"subscribers_count":70,"default_branch":"master","last_synced_at":"2024-10-29T15:38:41.382Z","etag":null,"topics":["buttercup","electron","encryption","login","password-manager","password-vault","security"],"latest_commit_sha":null,"homepage":"https://buttercup.pw","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/buttercup.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-09-12T19:54:55.000Z","updated_at":"2024-10-29T12:58:40.000Z","dependencies_parsed_at":"2023-02-16T20:15:34.749Z","dependency_job_id":"85c865a8-7bd5-45dd-a79e-6bc8a35ccffe","html_url":"https://github.com/buttercup/buttercup-desktop","commit_stats":{"total_commits":2057,"total_committers":113,"mean_commits":18.20353982300885,"dds":0.596985901798736,"last_synced_commit":"48f9e20ed74feb22c1985fa0b34a48f5b800a62b"},"previous_names":[],"tags_count":178,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/buttercup%2Fbuttercup-desktop","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/buttercup%2Fbuttercup-desktop/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/buttercup%2Fbuttercup-desktop/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/buttercup%2Fbuttercup-desktop/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/buttercup","download_url":"https://codeload.github.com/buttercup/buttercup-desktop/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247649648,"owners_count":20973098,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["buttercup","electron","encryption","login","password-manager","password-vault","security"],"created_at":"2024-07-30T19:02:41.985Z","updated_at":"2025-04-09T00:30:19.386Z","avatar_url":"https://github.com/buttercup.png","language":"TypeScript","funding_links":["https://opencollective.com/buttercup"],"categories":["TypeScript","HarmonyOS","JavaScript","Uncategorized","Applications","Apps","security"],"sub_categories":["Windows Manager","Uncategorized","Security","Utilities","Password","Open Source","🛠️ Utilities (79)"],"readme":"# Buttercup Desktop\n\u003e Buttercup for Desktop - Mac, Linux and Windows\n\n[![Buttercup](https://cdn.rawgit.com/buttercup-pw/buttercup-assets/6582a033/badge/buttercup-slim.svg)](https://buttercup.pw) ![Latest version](https://img.shields.io/github/tag/buttercup/buttercup-desktop.svg?label=latest) [![Chat securely on Keybase](https://img.shields.io/badge/keybase-bcup-blueviolet)](https://keybase.io/team/bcup)\n\n\u003cimg width=\"1406\" alt=\"Buttercup Desktop screenshot\" src=\"https://github.com/buttercup/buttercup-desktop/assets/3869469/1320b163-3e5c-4423-a4fd-8de7ffad2a0e\"\u003e\n²\n\n---\n\n⚠️ **Project Closure** ⚠️\n\nThe Buttercup project has come to an end, and these repositories are in transition to becoming public archives. No public-facing resources will be removed, wherever possible. Please do not create issues or PRs - they will unfortunately be ignored. Discussion can be found [here](https://github.com/buttercup/buttercup-desktop/discussions/1395), and explanation [here](https://gist.github.com/perry-mitchell/43ebfcec4d874b77a704be1d4f2262e6).\n\n---\n\n## About\n\nButtercup is a free, open-source and cross-platform **password manager**, built on NodeJS with Typescript. It uses strong industry-standard encryption to protect your passwords and credentials (among other data you store in Buttercup vaults) at rest, within vault files (`.bcup`). Vaults can be loaded from and saved to a number of sources, such as the **local filesystem**, **Dropbox**, **Google Drive** or any **WebDAV**-enabled service (like _ownCloud_ or _Nextcloud_ ¹).\n\n### Why you need a password manager\n\nPassword management is a crucial tool when you have _any_ online presence. It's vital that all of your accounts online use strong and unique passwords so that they're much more difficult to break in to. Even if one of your accounts are breached, having unique passwords means that the likelihood of the attacker gaining further access to your accounts portfolio is greatly reduced.\n\nWithout a password manager, such as Buttercup, it would be very tedious to manage different passwords for each service. If you remember your passwords it's a good sign that they're not strong enough. Ideally you should memorise a primary password for your vault, and not know any of the account-specific passwords off the top of your head.\n\n### Precautions\n\nButtercup securely encrypts your data in protected files, but this security is only as strong as the weakest component - and this is very often the primary password used to lock and unlock your vault. Follow these basic guidelines to ensure that your vault is safe even if exposed:\n\n * Choose a **unique** password that is not used elsewhere\n * Use a highly-varied set of different characters - such as alpha-numeric, symbols and spaces\n * Use a long password - the longer the better\n * Don't include words or names in the password\n * Never share your password with anyone\n\n_It is very important to note that no one associated with Buttercup will ever request your personal vault or its primary password. Do not share it or any of its related details with anyone. Developers or contributors working with Buttercup may request **example** vaults created via your system to try and reproduce issues, but please ensure to never use your real password or store actual credentails within such vaults._\n\n### Versions\n\nThe current stable version is **2**. We recommend upgrading if you're still on v1, as it is no longer being actively maintained. You can still browse the v1 source and documentation [here](https://github.com/buttercup/buttercup-desktop/tree/v1).\n\nButtercup is built on Node 20 LTS - no other platform is officially supported.\n\n### Operating Systems\n\nButtercup Desktop is officially supported on:\n\n * Most linux distributions (x64), such as Ubuntu\n * MacOS (x64, Apple Silicon¹)\n * Windows 10 / 11 (x64)\n\n ¹ No builds yet\n\n#### Arch Linux\n\nButtercup is also available for [Arch via the AUR](https://aur.archlinux.org/packages/buttercup-desktop/). This release channel is maintained by our community.\n\nSome Arch users have reported the occasional segfault - if you experience this please try [this solution](https://github.com/buttercup/buttercup-desktop/issues/643#issuecomment-413852760) before creating an issue.\n\n#### 32bit builds (x86)\n\nButtercup no longer provides 32bit builds, due to the complexity of supporting them in the build pipeline.\n\n## Portability\n\nButtercup provides a portable **Windows** version. Look for the release with the name `Buttercup-win-x64-2.0.0-portable.exe` where `2.0.0` is the version and `x64` is the architecture.\n\nAlthough not explicitly portable, both the Mac **zip** and Linux **AppImage** formats are more or less standalone. They still write to the standard config/log destinations, however.\n\nTo make the most of the portable version, some enviroment variables are required:\n\n| Enviroment Variables   | Description |\n|------------------------|-------------|\n| `BUTTERCUP_HOME_DIR`   | If provided buttercup will use this path for saving __configrations__ , __user settings__ or even __temprorary files__ |\n| `BUTTERCUP_CONFIG_DIR` | Stores __user settings__, not allways needed but can be used to change config location or will default to BUTTERCUP_HOME_DIR `Optional: Only activates if BUTTERCUP_HOME_DIR is provided` |\n| `BUTTERCUP_TEMP_DIR`   | Same as BUTTERCUP_CONFIG_DIR but stores __temprory files__ `Optional: Only activates if BUTTERCUP_HOME_DIR is provided` |\n\n### Sample `ButtercupLauncher.bat` for Windows portable executable\n\n\u003e This example stores user settings and cache on the portable folder, but stores temprory files on the host PC.\n\n```bat\n@ECHO OFF\nif not exist \"%~dp0Buttercup\" mkdir \"%~dp0Buttercup\"\nset \"BUTTERCUP_HOME_DIR=%~dp0Buttercup\"\nset \"BUTTERCUP_TEMP_DIR=%temp%\"\nstart %~dp0Buttercup.exe %*\n```\n\n## Configuration\n\nConfiguration files are stored in OS-specific locations.\n\n### Command-Line arguments\n\nThe following arguments can be provided to Buttercup, but are all optional.\n\n| Argument              | Description                           |\n|-----------------------|---------------------------------------|\n| `--autostart`         | Flag passed to Buttercup when launched automatically by the OS. |\n| `--hidden`            | Disables the automatic opening of the main window upon launch. |\n| `--no-update`         | Disables automatic update checking. **Not recommended**: Use at your own risk. |\n\n### App config\n\nApplication configuration.\n\n * Linux: `$XDG_CONFIG_HOME/Buttercup/desktop.config.json`\n * Mac: `~/Library/Preferences/Buttercup/desktop.config.json`\n * Windows: `$APPDATA/Buttercup/Config/desktop.config.json`\n\n### Vault storage\n\nStorage of connected vaults (not actual vault contents).\n\n * Linux: `$XDG_DATA_HOME/Buttercup/vaults.json`\n * Mac: `~/Library/Application\\ Support/Buttercup/vaults.json`\n * Windows: `$LOCALAPPDATA/Buttercup/Data/vaults.json`\n\n### Offline vault cache\n\nStored copies of vaults for offline use.\n\n * Linux: `$(node -e \"console.log(os.tmpdir())\")/$(whoami)/Buttercup/vaults-offline.cache.json`\n * Mac: `$(node -e \"console.log(os.tmpdir())\")/Buttercup/vaults-offline.cache.json`\n * Windows: `$(node -e \"console.log(os.tmpdir())\")/Buttercup/vaults-offline.cache.json`\n\n### Logs\n\nLogs are written for all app sessions.\n\n * Linux: `~/.local/state/Buttercup-nodejs` or `$XDG_STATE_HOME/Buttercup-nodejs`\n * Mac: `~/Library/Logs/Buttercup-nodejs`\n * Windows: `%LOCALAPPDATA%\\Buttercup-nodejs\\Log`\n\n_Note that logs for portable Windows applications will be written to the same directory that the executable resides in._\n\n## Published Applications\n\nYou can view the current releases on the [Buttercup Desktop releases page](https://github.com/buttercup/buttercup-desktop/releases). Under each release are some assets - the various binaries and installers for each platform Buttercup supports. When installing or downloading, make sure to pick the right operating system and architecture for your machine.\n\n_Note that at this time, Buttercup only supports x64 (64 bit) machines._\n\n### Linux\n\nWe provide an **AppImage** build for Linux, because it is the most desirable format for us to release. AppImages support auto-updating, a crucial feature (we feel) for a security application. The other build types do not.\n\n**Important:** Buttercup uses Electron to build its desktop application, which relies on [**AppImageLauncher**](https://github.com/TheAssassin/AppImageLauncher#readme) for correct integration of AppImages into the host OS. Features like **Google Drive** authentication and correct `.desktop` icon use is only performed when integrating via AppImageLauncher. We highly recommend that you install it.\n\nWe won't be supporting formats like Snapcraft, deb or rpm images as they do not align with our requirements. Issues requesting these formats will be closed immediately. Discussion on topics like this should be started on other social channels.\n\n## Development\n\nTo begin developing features or bug-fixes for Buttercup Desktop, make sure that you first have Node v16 or greater installed with NPM v7 or greater.\n\nOnce cloned, make sure to install all dependencies: `npm install`. After that, open 2 terminals and run `npm run start:build` on one, and then `npm run start:main` in the other.\n\n### Contributing\n\nThere are a number of ways you can contribute to Buttercup!\n\n#### Features \u0026 Bug fixes\n\nWe welcome pull-requests and issues that serve to better Buttercup as a platform. Please remain respecful (this is free \u0026 open source after all) with your ideas and observations, and always consider opening an issue before starting on a substantial pull request.\n\n#### Translations\n\nButtercup relies on the community for translating its interfaces into languages besides English. We use British English (en_GB) as the base language, and translate into all others that our contributors are kind enough to provide.\n\nTo add support for a language, make sure to add the translations for our [**vault UI**](https://github.com/buttercup/ui#translations--i18n) first. After that, you can follow these instructions to add another language to the desktop application:\n\n * Copy the `source/shared/i18n/translations/en.json` file to the language code you're providing (eg. `fi.json` for Finnish).\n * Edit the `source/shared/i18n/translations/index.ts` file and:\n   * Import the new JSON file: `import fi from \"./fi.json\";`.\n   * Export the imported constant inside the default export already in that file.\n\n#### Contributions\n\nThis project exists thanks to all the people who contribute. [[Contribute]](CONTRIBUTING.md).\n\u003ca href=\"https://github.com/buttercup/buttercup-desktop/graphs/contributors\"\u003e\u003cimg src=\"https://opencollective.com/buttercup/contributors.svg?width=890\" /\u003e\u003c/a\u003e\n\nWe'd also like to thank:\n\n- Mohammad Amiri (Brand \u0026 Identity) ([@pixelvisualize](https://twitter.com/pixelvisualize))\n- Arash Asghari (Brand \u0026 Identity) ([@\\_arashasghari](https://twitter.com/_arashasghari))\n\n#### Backers\n\nThank you to all our backers! 🙏 [[Become a backer](https://opencollective.com/buttercup#backer)]\n\n\u003ca href=\"https://opencollective.com/buttercup#backers\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/buttercup/backers.svg?width=890\"\u003e\u003c/a\u003e\n\n#### Sponsors\n\nSupport this project by becoming a sponsor. Your logo will show up here with a link to your website. [[Become a sponsor](https://opencollective.com/buttercup#sponsor)]\n\n\u003ca href=\"https://opencollective.com/buttercup/sponsor/0/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/buttercup/sponsor/0/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/buttercup/sponsor/1/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/buttercup/sponsor/1/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/buttercup/sponsor/2/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/buttercup/sponsor/2/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/buttercup/sponsor/3/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/buttercup/sponsor/3/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/buttercup/sponsor/4/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/buttercup/sponsor/4/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/buttercup/sponsor/5/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/buttercup/sponsor/5/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/buttercup/sponsor/6/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/buttercup/sponsor/6/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/buttercup/sponsor/7/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/buttercup/sponsor/7/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/buttercup/sponsor/8/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/buttercup/sponsor/8/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/buttercup/sponsor/9/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/buttercup/sponsor/9/avatar.svg\"\u003e\u003c/a\u003e\n\n## Notes and Caveats\n\n * ¹ External services like Nextcloud and ownCloud must be configured correctly to support access via the web (using WebDAV). CORS must permit access from any source.\n * ² Buttercup (including MadDev Oy) is not affiliated with any of the companies represented in screenshots or preview images.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbuttercup%2Fbuttercup-desktop","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbuttercup%2Fbuttercup-desktop","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbuttercup%2Fbuttercup-desktop/lists"}