• Stars
    star
    233
  • Rank 172,230 (Top 4 %)
  • Language
    TypeScript
  • License
    MIT License
  • Created almost 9 years ago
  • Updated 7 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

🌏 Buttercup browser extension


Buttercup for Browsers


Buttercup Browser Extension

Buttercup credentials manager extension for the browser.

Buttercup Build Status Chrome users Firefox users Chat securely on Keybase

About

This browser extension allows users to interface with password archives authored by the Buttercup password manager (though it does not require the application to be installed).

The extension can remotely connect to archives via Buttercup's common communication protocols (WebDAV, Dropbox etc.). Vaults are loaded from their remote source and their contents used to assist users with logging in to their recorded services. The extension also periodically updates vaults from their remote source so that the contents are always up to date.

This extension uses Locust to perform login form detection. Issues relating to the detection and operation of login forms should be opened there.

The extension also comes with a full-featured vault editing interface, so you can even use it as a standalone password manager.

Vault editing

Forms & Logins

Buttercup for Browsers auto-detects some login forms and login inputs, allowing the user to auto-fill them at their discretion. This extension uses Locust under the hood to detect forms and inputs (any issues with detecting forms and inputs should be opened there).

Supported browsers

Chrome, Firefox, Edge (version 79+) and Brave are supported.

Some browsers, such as Brave for example, will be able to install Buttercup via the Google Chrome web store.

Other browsers will be supported in order of request/popularity. Issues created for unsupported browsers, or for browsers not on the roadmap, may be closed without warning.

Opera is not supported due to their incredibly slow and unreliable release process. We will not be adding support for Opera.

Integrated platforms

The extension allows for connections to several services where your vaults can be stored:

  • My Buttercup
  • Dropbox
  • Google Drive
  • WebDAV (any service supporting WebDAV)
  • Local filesystem

Supported platforms

The browsers listed above, running on Windows, Mac or Linux on a desktop platform. This extension is not supported on any mobile or tablet devices.

Usage

The browser extension can be controlled from the popup menu, which is launched by pressing the Buttercup button in the browser menu. This menu displays a list of archives as well as settings and other items.

When viewing pages that contain login forms, Buttercup can assist logging in when you interact with the login buttons (displayed beside detected login inputs).

Buttercup can also remember new logins, which are detected as they occur.

You can block Buttercup from detecting forms and inputs by applying the attribute data-bcupignore=true:

<input type="email" data-bcupignore="true" />

Development

Development of features and bugfixes is supported in the following environment:

  • NodeJS version 12 (latest minor version)
  • Linux / Mac
  • Tested in at least Chrome / Firefox

To set up your development environment:

  • Clone this repo
  • Ensure API keys are available (Google Drive)
  • Execute npm install inside the project directory

Chrome

Run the following to develop the extension:

  1. Execute npm run dev to build and watch the project (to build production code, execute npm run build)
  2. Go to chrome://extensions and enable "Developer mode"
  3. Select the new button "Load unpacked", then select the ./dist directory built on step 1

Firefox

Run the following to develop the extension:

  • Execute npm run dev:firefox to build and watch the project (to build production code, execute npm run release)

Releasing

To build release-ready zip archives, run the command npm run release after having set up the development environment. The archives will be written to release/(browser) where (browser) is the browser type. Archives named extension.zip contain the built extension sourcecode and source.zip contains the raw source.

Adding to Chrome

You can load an unpacked extension in Chrome by navigating to chrome://extensions/. Simply locate the project's directory and use dist/ as the extension directory.

Adding to Firefox

You can load an unpacked extension in Firefox by navigating to about:debugging. Click "Load Temporary Add-on" and locate the project's directory, using dist/ as the extension directory.

More Repositories

1

buttercup-desktop

🔑 Cross-Platform Passwords & Secrets Vault
TypeScript
4,298
star
2

buttercup-core

🎩 The mighty NodeJS password vault
TypeScript
469
star
3

buttercup-mobile

📱 React-Native mobile application for Buttercup
TypeScript
396
star
4

dossier

📈 Project overview and feature planning for Buttercup
48
star
5

buttercup-importer

🎣 3rd-party archive importer for Buttercup
JavaScript
43
star
6

rust-crypto-wasm

Rust
38
star
7

ui

React UI Components used in Buttercup products
JavaScript
31
star
8

react-formatted-input

An input component that abides by configurable formatting and constraint rules
JavaScript
29
star
9

buttercup-cli

Buttercup password manager for the command line
TypeScript
27
star
10

locust

Login form location & automation utility
TypeScript
20
star
11

buttercup-website

Buttercup's Homepage
JavaScript
12
star
12

buttercup-exporter

Export Buttercup vaults
JavaScript
9
star
13

google-oauth2-client

Google OAuth2 authentication client
TypeScript
9
star
14

secure-file-host

Secure filesystem host toolkit for Browser-Desktop datasource connection
JavaScript
8
star
15

buttercup-generator

Simple Javascript Password Generator for Buttercup Products
JavaScript
8
star
16

buttercup-core-web

Web-based build of the Buttercup core library.
JavaScript
7
star
17

channel-queue

A queue management library with channels
JavaScript
6
star
18

dropbox-client

Dropbox client library
JavaScript
6
star
19

crypto

🔒 Buttercup's native encryption tools written in Rust
Rust
6
star
20

buttercup-server

Archive server for Buttercup
JavaScript
6
star
21

googledrive-client

Client for making basic Google Drive requests
TypeScript
6
star
22

credentials

Encrypted credentials handler for Buttercup
JavaScript
5
star
23

signing

Signing and verification tools for Buttercup archives
JavaScript
4
star
24

datasources

Buttercup archive datasources
JavaScript
4
star
25

file-interface

Client request library interface and explorer
TypeScript
4
star
26

buttercup-mobile-compat

Compiled library bundle for Buttercup's mobile platform
JavaScript
3
star
27

config

Configuration utility
JavaScript
3
star
28

desktop-v2-beta

Buttercup desktop application
TypeScript
3
star
29

app-env

Buttercup application environment configuration manager
JavaScript
3
star
30

bcupfs

Buttercup FileSystem for in-vault file storage and encryption
JavaScript
3
star
31

wasmcane

WASM Cryptography tools for iocane
Rust
2
star
32

account-rescue

Account reset/rescue framework for NodeJS
JavaScript
2
star
33

search

Vault searching components
JavaScript
2
star
34

iconographer

Icon queuing, fetching and caching library
JavaScript
2
star
35

archive-sharing

Share archive configurations between applications
JavaScript
1
star
36

icon-proxy

Self-hosted website icon proxy for Buttercup
TypeScript
1
star
37

fetch

Fetch adapter for cross-platform use.
JavaScript
1
star
38

download-count

JavaScript
1
star
39

daemon

Browser extension helper daemon
Rust
1
star
40

facades

Editing facades for Buttercup vaults and content
JavaScript
1
star
41

buttercup-native-bindings

OS-specific bindings and daemons.
JavaScript
1
star
42

attachments

Manage vault attachments and media
1
star