The MotherDuck shell plugin allows you to use 1Password to securely authenticate DuckDB CLI with your fingerprint, Apple Watch, or system authentication, rather than storing your credentials in plaintext.
Follow the instructions to configure your default credentials and source the plugins.sh file, then you'll be prompted to authenticate DuckDB CLI with biometrics.
Requirements
- Sign up for 1Password.
- Install and sign in to 1Password for Mac or Linux.
- Install 1Password CLI 2.42.0 or later.
If you've already installed 1Password CLI, learn how to update your installation. - Connect 1Password CLI with the 1Password app.
- Install DuckDB CLI.
The following shells are supported:
- Bash
- Zsh
- fish
Step 1: Configure your default credentials
Step 2: Source the plugins.sh file
To make the plugin available, source yourplugins.sh file. For example:
op folder may vary depending on your configuration directory. op plugin init will output a source command with the correct file path.
If this is your first time installing a shell plugin, you’ll also need to add the source command to your RC file or shell profile to persist the plugin beyond the current terminal session. For example:
Step 3: Use the CLI
1Password only provides your MotherDuck token when aduckdb command connects to MotherDuck, for example duckdb md: or duckdb md:my_db. Commands that only use local databases run without prompting you to authenticate. 1Password also doesn’t provide the token if one is already set in the motherduck_token or MOTHERDUCK_TOKEN environment variable, or in the connection string.
Step 4: Remove imported credentials from disk
After saving your MotherDuck credentials in 1Password, you can remove all local copies you previously had stored on disk.
Next steps
1Password Shell Plugins support more than 60 third-party CLIs. To see a list of supported CLIs:Get help
Reference
Thanks to @sterlinm for contributing this plugin! Learn how to build your own shell plugins.