CARVIEW |
Select Language
HTTP/2 200
date: Wed, 30 Jul 2025 05:37:56 GMT
content-type: text/html; charset=utf-8
vary: X-PJAX, X-PJAX-Container, Turbo-Visit, Turbo-Frame, X-Requested-With,Accept-Encoding, Accept, X-Requested-With
etag: W/"6978354212c349a41fea16d0ca7af0a1"
cache-control: max-age=0, private, must-revalidate
strict-transport-security: max-age=31536000; includeSubdomains; preload
x-frame-options: deny
x-content-type-options: nosniff
x-xss-protection: 0
referrer-policy: no-referrer-when-downgrade
content-security-policy: default-src 'none'; base-uri 'self'; child-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/; connect-src 'self' uploads.github.com www.githubstatus.com collector.github.com raw.githubusercontent.com api.github.com github-cloud.s3.amazonaws.com github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com github-production-user-asset-6210df.s3.amazonaws.com *.rel.tunnels.api.visualstudio.com wss://*.rel.tunnels.api.visualstudio.com objects-origin.githubusercontent.com copilot-proxy.githubusercontent.com proxy.individual.githubcopilot.com proxy.business.githubcopilot.com proxy.enterprise.githubcopilot.com *.actions.githubusercontent.com wss://*.actions.githubusercontent.com productionresultssa0.blob.core.windows.net/ productionresultssa1.blob.core.windows.net/ productionresultssa2.blob.core.windows.net/ productionresultssa3.blob.core.windows.net/ productionresultssa4.blob.core.windows.net/ productionresultssa5.blob.core.windows.net/ productionresultssa6.blob.core.windows.net/ productionresultssa7.blob.core.windows.net/ productionresultssa8.blob.core.windows.net/ productionresultssa9.blob.core.windows.net/ productionresultssa10.blob.core.windows.net/ productionresultssa11.blob.core.windows.net/ productionresultssa12.blob.core.windows.net/ productionresultssa13.blob.core.windows.net/ productionresultssa14.blob.core.windows.net/ productionresultssa15.blob.core.windows.net/ productionresultssa16.blob.core.windows.net/ productionresultssa17.blob.core.windows.net/ productionresultssa18.blob.core.windows.net/ productionresultssa19.blob.core.windows.net/ github-production-repository-image-32fea6.s3.amazonaws.com github-production-release-asset-2e65be.s3.amazonaws.com insights.github.com wss://alive.github.com api.githubcopilot.com api.individual.githubcopilot.com api.business.githubcopilot.com api.enterprise.githubcopilot.com; font-src github.githubassets.com; form-action 'self' github.com gist.github.com copilot-workspace.githubnext.com objects-origin.githubusercontent.com; frame-ancestors 'none'; frame-src viewscreen.githubusercontent.com notebooks.githubusercontent.com; img-src 'self' data: blob: github.githubassets.com media.githubusercontent.com camo.githubusercontent.com identicons.github.com avatars.githubusercontent.com private-avatars.githubusercontent.com github-cloud.s3.amazonaws.com objects.githubusercontent.com release-assets.githubusercontent.com secured-user-images.githubusercontent.com/ user-images.githubusercontent.com/ private-user-images.githubusercontent.com opengraph.githubassets.com copilotprodattachments.blob.core.windows.net/github-production-copilot-attachments/ github-production-user-asset-6210df.s3.amazonaws.com customer-stories-feed.github.com spotlights-feed.github.com objects-origin.githubusercontent.com *.githubusercontent.com; manifest-src 'self'; media-src github.com user-images.githubusercontent.com/ secured-user-images.githubusercontent.com/ private-user-images.githubusercontent.com github-production-user-asset-6210df.s3.amazonaws.com gist.github.com; script-src github.githubassets.com; style-src 'unsafe-inline' github.githubassets.com; upgrade-insecure-requests; worker-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/
server: github.com
content-encoding: gzip
accept-ranges: bytes
set-cookie: _gh_sess=G%2B04GB%2Fr84Jglaym41MoweFkW1gkWR2c70v8N7%2BEe5kRYG9GWKva%2BVaLVhFlAOaKZAN%2FdnV0%2F%2B6zePG%2FbZnhL%2Bvw8kNHizgD9%2BkjCyNrEcU1Y83dgMky0qSSyLZ6goPi%2FFRaAYgcY0ILOjHq%2BBwyVg90j7okPmMYhHed8dbSz1Y13helChVU86GjhWqMbc87XgzTfH6Sq%2BcPf9b%2F55JBimpEwZPF59Cu6dT%2FeVGDCvh5MlDG77S0araKzt62sw8Bip9obMJiA4858bvBkNKBbg%3D%3D--NyZVEM0Mcyz3RPj4--cpEsrKCc1DdU5efJNEwxLQ%3D%3D; Path=/; HttpOnly; Secure; SameSite=Lax
set-cookie: _octo=GH1.1.468062767.1753853875; Path=/; Domain=github.com; Expires=Thu, 30 Jul 2026 05:37:55 GMT; Secure; SameSite=Lax
set-cookie: logged_in=no; Path=/; Domain=github.com; Expires=Thu, 30 Jul 2026 05:37:55 GMT; HttpOnly; Secure; SameSite=Lax
x-github-request-id: DCF2:E5283:13206AD:1736643:6889AFB3
GitHub - FiloSottile/passage: A fork of password-store (https://www.passwordstore.org) that uses age (https://age-encryption.org) as backend.
Skip to content
Navigation Menu
{{ message }}
-
-
Notifications
You must be signed in to change notification settings - Fork 43
A fork of password-store (https://www.passwordstore.org) that uses age (https://age-encryption.org) as backend.
License
FiloSottile/passage
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
passage ======= passage is a fork of password-store (https://www.passwordstore.org) that uses age (https://age-encryption.org) as a backend instead of GnuPG. Differences from pass --------------------- The password store is at $HOME/.passage/store by default. For decryption, the age identities at $HOME/.passage/identities are used with the -i age CLI option. For encryption, the nearest .age-recipients file (that is, the one in the same directory as the secret, or in the closest parent) is used with the -R age CLI option. If no .age-recipients files are found, the identities file is used with the -i option. Extensions are searched at $HOME/.passage/extensions. password-store extensions that wish to be compatible with passage can switch on the PASSAGE variable. The init command is not currently available, and moving or copying a secret always re-encrypts it. Example: simple set up ---------------------- In this setup, the key is simply saved on disk, which can be useful if the password store is synced to a location less trusted than the local disk. age-keygen >> $HOME/.passage/identities Example: set up with a password-protected key --------------------------------------------- This setup allows using the identity file password as the primary password to unlock the store. KEY="$(age-keygen)" echo "$KEY" | age -p -a >> $HOME/.passage/identities echo "$KEY" | age-keygen -y >> $HOME/.passage/store/.age-recipients Example: set up with age-plugin-yubikey --------------------------------------- This setup requires age v1.1.0, or rage (https://github.com/str4d/rage), and the PIV plugin age-plugin-yubikey (https://github.com/str4d/age-plugin-yubikey). It's recommended to add more YubiKeys and/or age keys to the .age-recipients file as recovery options, in case this YubiKey is lost. age-plugin-yubikey # run interactive setup age-plugin-yubikey --identity >> $HOME/.passage/identities age-plugin-yubikey --list >> $HOME/.passage/store/.age-recipients Integrating with fzf -------------------- The following script can be invoked with any (or no) passage flags, and spawns a fuzzy search dialog using fzf (https://github.com/junegunn/fzf) for selecting the secret. #! /usr/bin/env bash set -eou pipefail PREFIX="${PASSAGE_DIR:-$HOME/.passage/store}" FZF_DEFAULT_OPTS="" name="$(find "$PREFIX" -type f -name '*.age' | \ sed -e "s|$PREFIX/||" -e 's|\.age$||' | \ fzf --height 40% --reverse --no-multi)" passage "${@}" "$name" Migrating from pass ------------------- #! /usr/bin/env bash set -eou pipefail cd "${PASSWORD_STORE_DIR:-$HOME/.password-store}" while read -r -d "" passfile; do name="${passfile#./}"; name="${name%.gpg}" [[ -f "${PASSAGE_DIR:-$HOME/.passage/store}/$name.age" ]] && continue pass "$name" | passage insert -m "$name" || { passage rm "$name"; break; } done < <(find . -path '*/.git' -prune -o -iname '*.gpg' -print0) Environment variables --------------------- PASSAGE_DIR Password store location PASSAGE_IDENTITIES_FILE Identities file location PASSAGE_AGE age binary (tested with age and rage) PASSAGE_RECIPIENTS_FILE Override recipients for encryption operations Passed to age with -R PASSAGE_RECIPIENTS Override recipients for encryption operations Space separated, each passed to age with -r All other environment variables from password-store are respected, such as PASSWORD_STORE_CLIP_TIME and PASSWORD_STORE_GENERATED_LENGTH.
About
A fork of password-store (https://www.passwordstore.org) that uses age (https://age-encryption.org) as backend.
Topics
Resources
License
Code of conduct
Security policy
Stars
Watchers
Forks
Sponsor this project
You can’t perform that action at this time.