GOPASS(1)
๐ GOPASS(1) โ the standard Unix password manager, bestie edition ๐
okay so this is gopass(1), from the User Commands manual, and honestly? it's the moment. it's giving "your passwords are safe and also your life is together." stay with me, there's a lot here and every single bit of it matters ๐ซถ
โจ NAME โจ
gopass โ literally the standard Unix password manager. that's it. that's the whole name section. iconic. ๐
๐ SYNOPSIS ๐
gopass [global options] command [command options] [,arguments...]
so you got your global options, then your command, then that command's own options, then the args. the , before arguments... is literally in there, don't come for me, I'm just the messenger ๐ญ
โจ GLOBAL OPTIONS โจ
these bad boys work no matter which command you're running. global. universal. main character energy. ๐
--alsoclip,-Cโ copies the password and shows everything. you get both. greedy in the best way ๐--charsโ print specific characters from the secret. like, picky but make it useful โจ--nofuzzysearchโ do NOT start fuzzy search when an entry isn't found. no vibes-based guessing for you ๐--noparsing,-nโ do not parse the output. raw. unfiltered. ๐--nosyncโ disable auto-sync. sometimes you just don't wanna ๐--password,-oโ display only the password. it takes precedence over all other flags, so this is the boss flag fr fr--qrโ print the password as a QR Code. scan it with your phone, chaos ensues ๐--qrbodyโ print the body as a QR Code. same energy, different part of the secret--revision,-rโ show a past revision. does NOT support RCS specific shortcuts. use the exact revision, or-<N>to select the Nth oldest revision of this entry. put some respect on the history ๐ฐ๏ธ--safe,-sโ do not display unsafe content (e.g. the password) even if safecontent is disabled. extra careful baby ๐--unsafe,-u,-fโ display unsafe content (e.g. the password) even if safecontent is enabled. living dangerously, love that for you ๐ฅ--yes,-yโ always answer yes to yes/no questions. no more ~prompts~, we're committing ๐ซก
๐ COMMANDS ๐
๐ง age
age commands
built-in commands for the age backend โจ these allow limited interactions with the gopass specific age identities.
okay so: added identities are automatically added as recipient to your secrets when encrypting โ but not to your recipients, so make sure you keep your recipients and identities in sync the way you want to. all age identities, including plugin ones, should be supported. we also still support github identities despite them being deprecated by age โ we do so by falling back to the ssh identities for these and keeping a local cache of ssh keys for a given github identity. ๐ซถ
Flags
--age-ssh-key-pathโ custom path to additional SSH key or directory of keys for the age backend--age-sshkeysโ load SSH keys from the default SSH directory
๐ฆ alias
print domain aliases
prints defined domain aliases. short, sweet, slays. ๐
๐ audit
decrypt all secrets and scan for weak or leaked passwords
this command decrypts all secrets and checks for common flaws and (optionally) against a list of previously leaked passwords. it's the vibe check your password store has been avoiding ๐ญ
Flags
--formatโ output format.text,csv,htmlorjson. Default:text--fullโ print full details of all findings. Default:false--output-file,-oโ output filename. used forcsvandhtml--summaryโ print a summary of the audit results. Default:true(print summary)--templateโ HTML template. if not set, use the built-in default.
โญ cat
decode and print content of a binary secret to stdout, or encode and insert from stdin
this command is similar to the way cat works on the command line. it can either be used to retrieve the decoded content of a secret similar to cat file, or vice versa to encode the content from STDIN to a secret. same energy, password-store edition ๐
๐ธ clone
clone a password store from a git repository
this command clones an existing password store from a git remote to a local password store. can be either used to initialize a new root store or to add a new mounted sub-store. needs at least one argument (git URL) to clone from. accepts a second argument (mount location) to clone and mount a sub-store, e.g. gopass clone git@example.com/store.git foo/bar โจ
Flags
--check-keysโ check for valid decryption keys. generate new keys if none are found.--cryptoโ select crypto backend[age gpgcli plain]--pathโ path to clone the repo to--storageโ select storage backend[cryptfs fossilfs gitfs jjfs]
๐ config
display and edit the configuration file
this command allows for easy printing and editing of the configuration ๐
- no argument โ the entire config is printed
- a single argument โ a single key can be printed
- two arguments โ a setting specified by key can be set to value
Flags
--storeโ set options to a specific store
๐ง convert
convert a store to different backends
convert a store to a different set of backends. glow-up but for storage ๐ฅ
Flags
--cryptoโ which crypto backend?[age gpgcli plain]--moveโ replace store?--storageโ which storage backend?[cryptfs fossilfs fs gitfs jjfs]--storeโ specify which store to convert
๐ copy
copy secrets from one location to another
this command copies an existing secret in the store to another location. this also works across different sub-stores ๐ซถ if the source is a directory it will automatically copy recursively โ in that case, the source directory is re-created at the destination if no trailing slash is found, otherwise the contents are flattened (similar to rsync). no cap, that trailing slash is load-bearing ๐
Flags
--commit-message,-mโ set the commit message--force,-fโ force to copy the secret and overwrite existing one--interactive-commit,-iโ open an editor for the commit message
โจ create
easy creation of new secrets
this command starts a wizard to aid in creation of new secrets ๐งโโ๏ธ not me trusting the wizard with my entire digital life
Flags
--force,-fโ force path selection--store,-sโ which store to use
๐ delete
remove one or many secrets from the store
this command removes secrets. it can work recursively on folders. recursing across stores is purposefully not supported โ that's a hard no, bestie ๐ โโ๏ธ
Flags
--commit-message,-mโ set the commit message--force,-fโ force to delete the secret--interactive-commit,-iโ open an editor for the commit message--recursive,-rโ recursive delete files and folders
๐ฉบ doctor
check your gopass installation for common issues
runs a series of diagnostic checks on the gopass installation: binary dependencies, git configuration, store permissions, recipient key validity, and git remote connectivity. exits with a non-zero status if any check fails. so if it's mad, it's actually mad ๐ญ
Flags
--recipientsโ run a detailed recipient consistency diagnostic (canonical IDs, missing keys,.public-keys/status)--verbose,-vโ show passing checks in addition to warnings and errors
๐ edit
edit new or existing secrets
use this command to insert a new secret or edit an existing one using your $EDITOR ๐๏ธ it will attempt to create a secure temporary directory for storing your secret while the editor is accessing it. please make sure your editor doesn't leak sensitive data to other locations while editing โ fr fr, this one matters ๐
Note: if$EDITORis not set we will tryeditor. if that's not available either we fall back tovi. consider usingupdate-alternatives --config editorto change the defaults.
Flags
--commit-message,-mโ set the commit message--create,-cโ create a new secret if none found--editor,-eโ use this editor binary--forceโ force overwriting and encrypting even if none of your local keys is among the recipients--interactive-commit,-iโ open an editor for the commit message
๐ env
run a subprocess with a pre-populated environment
this command runs a sub process with the environment populated from the keys of a secret. your secrets, but make them environment variables ๐
Flags
--execโ replace the current process with the subprocess viaexec(3)rather than spawning a child process (not supported on Windows)--fileโ write each secret to a ramdisk temp file and exportKEY_FILE=/pathinstead ofKEY=value--keep-case,--kcโ do not capitalize the environment variable and instead retain the original capitalization--stdinโ pipe the secret's password to the subprocess's stdin instead of setting an environment variable
๐ find
search for secrets
this command will first attempt a simple pattern match on the name of the secret. if there is an exact match it will be shown directly; if there are multiple matches, a selection will be shown ๐ซถ
Flags
--json,-jโ output matches as JSON array--regex,-rโ interpret pattern as regular expression--unsafe,-uโ in the case of an exact match, display the password even if safecontent is enabled
๐ ๏ธ fsck
check store integrity, clean up artifacts and possibly re-write secrets
check the integrity of the given sub-store or all stores if none are specified. will automatically fix all issues found, i.e. it will change permissions, re-write secrets and remove outdated configs ๐ง it will touch your stuff, so like, know that going in ๐
Flags
--decryptโ decrypt and reencrypt during fsck.--storeโ limit fsck to this mount point
๐ฆ fscopy
copy files from or to the password store
this command either reads a file from the filesystem and writes the encoded and encrypted version in the store, or it decrypts and decodes a secret and writes the result to a file. either source or destination must be a file and the other one a secret ๐ if you want the source to be securely removed after copying, use gopass fsmove โจ
๐ง fsmove
move files from or to the password store
this command either reads a file from the filesystem and writes the encoded and encrypted version in the store, or it decrypts and decodes a secret and writes the result to a file. either source or destination must be a file and the other one a secret.
the source will be wiped from disk or from the store after it has been copied successfully and validated. so yeah, it's gone-gone ๐ if you don't want the source to be removed, use gopass fscopy ๐
๐ฅ generate
generate a new password
dialog to generate a new password and write it into a new or existing secret. by default, the new password will replace the first line of an existing secret (or create a new one). fresh password, who dis ๐
Flags
--clip,-cโ copy the generated password to the clipboard--commit-message,-mโ set the commit message--edit,-eโ open secret for editing after generating a password--force,-fโ force to overwrite existing password--force-regenโ force full re-generation, incl. evaluation of templates. will overwrite the entire secret! ๐จ not a drill--generator,-gโ choose a password generator, use one of:cryptic,memorable,xkcdorexternal. Default:cryptic--interactive-commit,-iโ open an editor for the commit message--print,-pโ print the generated password to the terminal--strictโ require strict character class rules--symbols,-sโ use symbols in the password--xkcd-capitalize,--xkcdcapitalizeโ capitalize first letter of each word in the generated XKCD password
and that's the first chunk, bestie โ there's more where this came from, don't go anywhere ๐ธ
--xkcd-lang,--lang,--xkcdlangโ which language the XKCD password gets generated in ๐ currently onlyen(english, and that's the default) ordeare supported--xkcd-numbers,--xkcdnumbersโ tacks a random number onto the end of the generated XKCD password ๐ข--xkcd-sep,--sep,--xkcdsepโ the word separator for generated XKCD passwords โจ and if you don't specify one, bestie, the words get smooshed together with no spaces/separator at all and the first character of the words gets capitalised
git ๐ง
Run a git command inside a password store:
gopass git [--store=<store>] <git-command>
Ok so if your password store is a git repository, this literally just executes a git command specified by git-command-args. That's it. That's the vibe ๐
Flags
--storeโ the store to operate on
grep ๐
Search for secrets files containing search-string when decrypted.
This one decrypts all the secrets and does a pattern match on the content. All of them. Every single one. She's thorough ๐
Flags
--regexp,-rโ interpret the pattern as a RE2 regular expression
history ๐ฐ๏ธ
Show password history.
Displays the change history for a secret. Iconic for when you're like "wait what was it before I rotated it" ๐ญ
Flags
--password,-pโ include passwords in the output
init ๐ฑ
Initialize a new password store.
Sets up new password storage and uses gpg-id for encryption ๐
Flags
--cryptoโ select the crypto backend [age,gpgcli,plain]--path,-pโ set the sub-store path to operate on--storageโ select the storage backend [cryptfs,fossilfs,fs,gitfs,jjfs]--store,-sโ set the name of the sub-store
insert โ๏ธ
Insert a new secret.
Inserts a new secret, obviously ๐ Optionally it can echo the secret back to the console while you're typing it. Or, optionally, the entry can be multiline. And it'll prompt you before overwriting an existing secret โ unless you force it, of course ๐
Flags
--append,-aโ append data read from STDIN to existing data--commit-messageโ set the commit message--echo,-eโ display the secret while typing--force,-fโ overwrite any existing secret and do not prompt to confirm recipients--interactive-commit,-iโ open an editor for the commit message--multiline,-mโ insert using$EDITOR
link ๐
Create a symlink.
Makes a symlink from one entry in a mounted store to another entry ๐ซถ
โ ๏ธ Important: it does not cross mounts! Like, at all. Do not come for her about it ๐
list ๐
List existing secrets.
Lists all existing secrets, duh. Give it a folder prefix and it'll only list certain subfolders of the store โ highkey useful when your store is a whole ecosystem ๐ธ
Flags
--flat,-fโ print a flat list--folders,-dโ print a flat list of folders--json,-jโ output as JSON array--limit,-lโ display no more than this many levels of the tree--strip-prefix,-sโ strip this prefix from filtered entries
merge ๐ซ
Merge multiple secrets into one.
This is the dedupe workflow, bestie. It needs exactly one destination (it may already exist) and at least one source (which must exist, and can be multiple). Then gopass merges all the entries into one, drops you into an editor, saves the result and removes all the merged entries โจ
Flags
--delete,-dโ remove merged entries--force,-fโ skip the editor, merge entries unattended
mounts ๐๏ธ
Edit mounted stores.
Displays all mounted password stores, and offers several subcommands to create or remove mounts ๐
move ๐
Move secrets from one location to another.
Moves a secret from one path to another โ and yes it works across different sub-stores, she's versatile like that ๐โโ๏ธ
And here's the detail you don't wanna miss: if the source is a directory, the source directory is re-created at the destination if there's no trailing slash. Otherwise the contents are flattened (similar to rsync). So that trailing slash is load-bearing, fr fr ๐ญ
Flags
--commit-message,-mโ set the commit message--force,-fโ force the move and overwrite the existing one--interactive-commit,-iโ open an editor for the commit message
otp ๐
Generate time- or hmac-based tokens.
Tries to parse an OTP URL (otpauth://). The URL can be TOTP or HOTP. And you can provide the URL on its own line, or on a key value line with a key named 'totp' ๐
Flags
--alsoclip,-Cโ copy the time-based token and show it--chained,-pโ chain the token to the password--clip,-cโ copy the time-based token into the clipboard--password,-oโ only display the token--qr,-qโ write QR code to FILE--snip,-sโ scan screen content to insert a OTP QR code into the provided entry
process ๐งต
Process a template file.
It reads the template file and replaces all variables with their values โจ
Flags
(no flags here, she's a self-starter ๐ )
pull โฌ๏ธ
Pull a store from its remote.
Pulls the selected store from its configured remote. And if no remote or branch is specified, the storage backend defaults get used โ no cap ๐
Flags
--store,-sโ select the store to pull
push โฌ๏ธ
Push a store to its remote.
Pushes the selected store to its configured remote. Same deal: no remote or branch specified? Storage backend defaults, babes ๐
Flags
--store,-sโ select the store to push
pwgen ๐ฒ
Generate passwords.
Prints any number of passwords to the console. The optional length parameter sets the length of each password โญ
Flags
--ambiguous,-Bโ do not include characters that could be easily confused with each other, like'1'and'l'or'0'and'O'๐ซถ--memorable,-mโ use the memorable (word-based) password generator. The requested length is a minimum (output may be longer). Incompatible with--no-numerals(memorable always includes digits)--memorable-capitalize,--memorablecapitalize,--mcโ capitalize (some) words in the generated memorable password. This flag implies--memorable--no-capitalize,-Aโ do not include capital letters in the generated passwords--no-numerals,-0โ do not include numerals in the generated passwords--one-per-line,-1โ print one password per line--symbols,-yโ include at least one symbol in the password--xkcd,-xโ use multiple random english words combined into a password. By default, space is used as the separator and all words are lowercase ๐ธ--xkcd-capitalize,--xkcdcapitalize,--xcโ capitalize the first letter of each word in the generated xkcd style password. This flag implies-xkcd--xkcd-lang,--lang,--xkcdlang,--xlโ language to generate the password from; currently onlyen(english, default) ordeare supported--xkcd-numbers,--xkcdnumbers,--xnโ add a random number to the end of the generated xkcd style password. This flag implies-xkcd--xkcd-sep,--sep,--xkcdsep,--xsโ word separator for the generated xkcd style password. If no separator is specified, the words are combined without spaces/separator and the first character of the words is capitalised. This flag implies-xkcd
rcs ๐๏ธ
Run a RCS command inside a password store.
And the page says: if the password store is a git repository, execute a git command specified by git-command-args. Yeah, it says git โ that's literally what the man page says, don't look at me ๐๐
recipients ๐ฏโโ๏ธ
Edit recipient permissions.
Displays all existing recipients for all mounted stores, and the subcommands let you add or remove recipients ๐
Flags
--json,-jโ output recipients as JSON array--prettyโ pretty print recipients
reorg ๐งน
Reorganize a password store by editing a text file.
This one lists all the secrets in a text file, line by line, and opens it in an editor. Once you save and leave the editor, gopass reads the temp file, calculates the necessary moves and shows you a diff and a confirmation prompt ๐ซถ Once you acknowledge, it reorganizes the secrets and creates a meaningful commit message. Iconic behavior, honestly โจ
secret-service ๐
Run a D-Bus Secret Service daemon backed by gopass.
It implements the org.freedesktop.secrets D-Bus API so desktop applications (Firefox, Chromium, VS Code, Electron apps, NetworkManager, secret-tool, ...) store their secrets in the same gopass password store as the CLI ๐ one store to rule them all, periodt
setup ๐
Initialize a new password store.
This command is automatically invoked if gopass is started without any existing password store. It exists so users can be handed simple one-command setup instructions ๐
Flags
--create-team,--createโ create a new team instead of joining an existing one (default:false, i.e. join an existing team)--cryptoโ select the crypto backend [age,gpgcli,plain]--emailโ EMail for unattended GPG key generation--nameโ Firstname and Lastname for unattended GPG key generation--remoteโ URL to a git remote, will attempt to join this team--storageโ select the storage backend [cryptfs,fossilfs,fs,gitfs,jjfs]--team,--aliasโ name of the team to create or join (may contain slashes). Also used as the local mount point
show ๐
Display the content of a secret.
Shows an existing secret and optionally puts its first line on the clipboard. And if it does go on the clipboard โ heads up โ it gets cleared after 45 seconds โณ so go paste it, bestie ๐ญ
Flags
--alsoclip,-Cโ copy the password and show everything--charsโ print specific characters from the secret--nofuzzysearchโ do not start fuzzy search when an entry is not found--noparsing,-nโ do not parse the output--nosyncโ disable auto-sync--password,-oโ display only the password. Takes precedence over all other flags ๐--qrโ print the password as a QR Code--qrbodyโ print the body as a QR Code--revision,-rโ show a past revision. Does NOT support RCS specific shortcuts. Use an exact revision or-<N>to select the Nth oldest revision of this entry--safe,-sโ do not display unsafe content (e.g. the password) even ifsafecontentis disabled--unsafe,-u,-fโ display unsafe content (e.g. the password) even ifsafecontentis enabled--yes,-yโ always answer yes to yes/no questions
sum ๐งฎ
Compute the SHA256 checksum.
Decodes a Base64 encoded secret and computes the SHA256 checksum over the decoded data. Super useful for verifying the integrity of an inserted secret ๐ฅ
sync ๐
Sync all local stores with their remotes.
Syncs all local stores with their git remotes (if any) and checks any possibly affected gpg keys ๐
Flags
--store,-sโ select the store to sync
templates ๐
Edit templates.
So yeah โ it lists all the templates just vibing in your password store, and lets you edit them and create new ones. Templates are basically your little starter kits, and this is where you manage the whole lineup. ๐
๐งน unclip
An internal command to clear the clipboard. It clears the clipboard if the content matches the checksum โ like a little bouncer checking IDs at the door. ๐ซถ
Flags
--forceโ clear the clipboard even if the checksum mismatches. Yeah, it's a little pushy, but sometimes that's what you need.--timeoutโ time to wait. โณ
๐ update
Check for updates, bestie.
This command checks for gopass updates over on GitHub and automatically downloads and installs any missing update for you. No manual labor, no hunting around โ it just handles it. โจ
With --pre, release candidates and other pre-releases are considered as well โ so if you like living on the edge, this is your moment. ๐ฅ
Flags
--preโ include pre-releases (e.g. release candidates). It's giving early access, it's giving beta-tester main character energy. ๐
๐ธ version
Display version.
This command displays version and build time information. Simple, iconic, does exactly what it says on the tin. ๐
๐ REPORTING BUGS ๐
Found a bug? Don't suffer in silence, bestie โ report it to <https://github.com/gopasspw/gopass/issues/new>. The maintainers literally want to know. ๐โจ
๐ COPYRIGHT ๐
Copyright ยฉ 2021 Gopass Authors. This program is free software; you may redistribute it under the terms of the MIT license. This program has absolutely no warranty.
Translation: it's free, it's MIT-licensed, and if it breaks, nobody's legally on the hook. Standard open-source bestie behavior. ๐ซถ
And that's the whole page, babes โ this was gopass from gopass (github.com/gopasspw/go..., dated October 2026, filed under GOPASS(1). Go forth and store those secrets safely. ๐ฆ๐๐ธ
๐ฆ where this page comes from
- arch rolling: gopass 1.17.4-1 ยท MIT
- nixpkgs unstable: gopass 1.17.4
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms