MCPcopy
hub / github.com/gopasspw/gopass

github.com/gopasspw/gopass @v1.16.1 sqlite

repository ↗ · DeepWiki ↗ · release v1.16.1 ↗
2,653 symbols 15,115 edges 541 files 1,277 documented · 48%
README
<img src="https://github.com/gopasspw/gopass/raw/v1.16.1/docs/logo.png" height="250" alt="gopass Gopher by Vincent Leinweber, remixed from the Renée French original Gopher" title="gopass Gopher by Vincent Leinweber, remixed from the Renée French original Gopher" />

Overview

OpenSSF Scorecard Build Status Go Report Card Packaging status MIT License Github All Releases Gopass Slack

The slightly more awesome standard UNIX password manager for teams.

Manage your credentials with ease. In a globally distributed team, on multiple devices or fully offline on an air-gapped machine.

  • Works everywhere - The same user experience on Linux, MacOS, *BSD or Windows
  • Built for teams - Built from our experience working in distributed development teams
  • Full autonomy - No network connectivity required, unless you want it

How Does It Work?

Gopass is a drop-in replacement for pass, the standard UNIX password manager. By default your credentials are encrypted with GPG and versioned in git. This can be customized easily. Other backends for encryption (e.g. age) and storage (e.g. fossil) are also available. The primary interface is the command line, making it an excellent choice for CLI fans, CI/CD systems or anything you can hook it up with. Gopass can also integrate with your browser so you can largely avoid the command line - if you want.

Installation

Necessary prerequisites for running gopass

gopass can operate without any dependencies but most users will use it with gpg and git. An external editor is required to use gopass edit.

Installation through package managers

Homebrew (Linux/MacOS)

homebrew version

brew install gopass

MacPorts (macOS)

macports version

sudo port install gopass

Debian (Ubuntu, Debian, Raspbian, ...)

Warning: Do not install the gopass package from the official repositories. That is a completely different project that has no relation to us.

curl https://packages.gopass.pw/repos/gopass/gopass-archive-keyring.gpg | sudo tee /usr/share/keyrings/gopass-archive-keyring.gpg >/dev/null
cat << EOF | sudo tee /etc/apt/sources.list.d/gopass.sources
Types: deb
URIs: https://packages.gopass.pw/repos/gopass
Suites: stable
Architectures: all amd64 arm64 armhf
Components: main
Signed-By: /usr/share/keyrings/gopass-archive-keyring.gpg
EOF
sudo apt update
sudo apt install gopass gopass-archive-keyring

Fedora / RedHat / CentOS

Fedora version

dnf install gopass

Note: You might need to run dnf copr enable daftaupe/gopass first.

Arch Linux

Arch version

pacman -S gopass

Windows

Scoop version

# WinGet
winget install Git.Git
winget install GnuPG.Gpg4win
winget install gopass.gopass
# Chocolatey
choco install gpg4win
choco install gopass
# Alternatively
scoop install gopass

FreeBSD / OpenBSD

cd /usr/ports/security/gopass
make install

Alpine Linux

apk add gopass

Other installation options

Please see docs/setup.md for other options.

From Source

go install github.com/gopasspw/gopass@latest

Note: latest is not a stable release. We recommend to only use released versions.

Manual download

Download the latest release and add the binary to your PATH.

Quick start guide

Initialize a new gopass configuration:

gopass setup

   __     _    _ _      _ _   ___   ___
 /'_ '\ /'_'\ ( '_'\  /'_' )/',__)/',__)
( (_) |( (_) )| (_) )( (_| |\__, \\__, \
'\__  |'\___/'| ,__/''\__,_)(____/(____/
( )_) |       | |
 \___/'       (_)

🌟 Welcome to gopass!
🌟 Initializing a new password store ...
🌟 Configuring your password store ...
🎮 Please select a private key for encrypting secrets:
[0] gpg - 0xFEEDBEEF - John Doe <john.doe@example.org>
Please enter the number of a key (0-12, [q]uit) (q to abort) [0]: 0
❓ Do you want to add a git remote? [y/N/q]: y
Configuring the git remote ...
Please enter the git remote for your shared store []: git@gitlab.example.org:john/passwords.git
✅ Configured

By default gopass setup will use gpg encryption and git storage. This will create a new password store in $HOME/.local/share/gopass/stores/root and a configuration in $HOME/.config/gopass/config using gpg encryption and git for versioned storage. Users can override these with e.g. --crypto=age to use age encryption instead or opt out of using a versioned store with --storage=fs.

An existing store can be cloned with e.g. gopass clone git@gitlab.example.org:john/passwords.git.

Create a new secret:

gopass create

List all existing secrets:

gopass ls

Copy an existing password to the clipboard:

gopass show -c foo

Remove an existing secret:

gopass rm foo

Other examples:

# Command structure
gopass [<command>] [options] [args]
# Shortcut for gopass show [<key>]
gopass [<key>]

# Enter the gopass REPL
gopass

# Find all entries matching the search string
gopass find github

# List your store
gopass ls

# List all mounts
gopass mounts

# List all recipients
gopass recipients

# Sync with all remotes
gopass sync

# Setup a new store
gopass setup

Screenshot

screenshot

Support

Please ask on Slack.

Contributing

We welcome any contributions. Please see CONTRIBUTING.md for more information.

Credit & License

gopass is licensed under the terms of the MIT license. You can find the complete text in LICENSE.

Please refer to our Contributors page for a complete list of our contributors.

Extension points exported contracts — how you extend this code

Storage (Interface)
Storage is an storage backend. [6 implementers]
internal/backend/storage.go
Byter (Interface)
Byter is a minimal secrets write interface. It is used for writing secrets to the store. [3 implementers]
pkg/gopass/store.go
Queuer (Interface)
Queuer is a queue interface. [2 implementers]
internal/queue/background.go
Safer (Interface)
(no doc) [3 implementers]
pkg/debug/debug.go
PassPromptFunc (FuncType)
PassPromptFunc is a password prompt function.
pkg/termio/context.go
ProgressCallback (FuncType)
ProgressCallback is a callback for updating progress.
pkg/ctxutil/ctxutil.go
RecipientCallback (FuncType)
RecipientCallback is a callback to verify the list of recipients.
internal/store/store.go
ActionCallback (FuncType)
ActionCallback is the callback for the creation calls to print and copy the credentials.
internal/create/wizard.go

Core symbols most depended-on inside this repo

Log
called by 648
pkg/debug/debug.go
Run
called by 386
internal/cui/actions.go
String
called by 359
internal/backend/crypto/age/age.go
Reset
called by 292
internal/reminder/reminder.go
NewContextInMemory
called by 223
internal/config/config.go
Error
called by 214
internal/action/exit/errors.go
Error
called by 175
internal/store/leaf/fsck.go
Contains
called by 170
pkg/set/set.go

Shape

Function 1,271
Method 1,183
Struct 123
TypeAlias 34
Interface 32
FuncType 10

Languages

Go100%

Modules by API surface

pkg/ctxutil/ctxutil.go66 symbols
internal/store/mockstore/store.go41 symbols
internal/backend/storage/jjfs/jj.go36 symbols
internal/backend/storage/cryptfs/crypt.go35 symbols
helpers/postrel/main.go33 symbols
internal/store/mockstore/inmem/store.go32 symbols
internal/backend/storage/gitfs/git.go31 symbols
internal/config/config.go27 symbols
internal/backend/crypto/age/identities.go27 symbols
internal/tpl/funcs.go25 symbols
internal/store/leaf/recipients.go25 symbols
internal/backend/storage/fossilfs/fossil.go25 symbols

Used by 1 indexed graphs manifest dependencies, hub-wide

Dependencies from manifests, versioned

al.essio.dev/pkg/shellescapev1.6.0 · 1×
codeberg.org/tslocum/cbindv0.1.6 · 1×
filippo.io/agev1.2.1 · 1×
filippo.io/edwards25519v1.1.0 · 1×
github.com/ProtonMail/go-cryptov1.3.0 · 1×
github.com/atotto/clipboardv0.1.4 · 1×
github.com/blang/semver/v4v4.0.0 · 1×
github.com/boombuler/barcodev1.1.0 · 1×
github.com/caspr-io/yamlpathv0.0.0-2020072207511 · 1×
github.com/clipperhouse/stringishv0.1.1 · 1×
github.com/clipperhouse/uax29/v2v2.3.0 · 1×

For agents

$ claude mcp add gopass \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact