TRANSCRYPT(1)
π TRANSCRYPT β like, the whole manual, bestie
okay so this is transcrypt(1) β the section-1 manual page β and honestly? it's giving β¨magicβ¨. it's a script that makes a Git repo encrypt stuff transparently, meaning the files look normal to you but land in git all locked up. let me tell you everything, no cap. π«Ά
β¨ NAME β¨
transcrypt β transparently encrypt files within a git repository π
πΈ SYNOPSIS πΈ
transcrypt [options...]
that's it. that's the whole invocation. iconic. π
π¦ DESCRIPTION π¦
so here's the tea: transcrypt will configure a Git repository to support the transparent encryption/decryption of files. how? by utilizing OpenSSL's symmetric cipher routines and Git's built-in clean/smudge filters. literally the dream team. π«
it will also add a Git alias "ls-crypt" to list all transparently encrypted files within the repository. cute nickname, does a real job. π
the transcrypt source code and full documentation may be downloaded from https://github.com/elasticdog/transcrypt. go follow, iykyk. π
π OPTIONS π
so many options and every single one is a main character. here we go:
-c,--cipher=cipherβ the symmetric cipher to utilize for encryption; defaults toaes-256-cbcπ-p,--password=passwordβ the password to derive the key from; defaults to 30 random base64 characters π²-y,--yesβ assume yes and accept defaults for non-specified options. yes-queen mode, no questions asked π-d,--displayβ display the current repository's cipher and password. show me the secrets bestie π-r,--rekeyβ re-encrypt all encrypted files using new credentials. glow-up for your keys π-f,--flush-credentialsβ remove the locally cached encryption credentials and re-encrypt any files that had been previously decrypted. bye to the cache π§Ή-F,--forceβ ignore whether the git directory is clean, proceed with the possibility that uncommitted changes are overwritten. β οΈ girl be CAREFUL with this one, it literally says uncommitted changes might get overwritten. periodt.-u,--uninstallβ remove all transcrypt configuration from the repository and leave files in the current working copy decrypted. we're breaking up (amicably) π-l,--listβ list all of the transparently encrypted files in the repository, relative to the top-level directory π-s,--show-raw=fileβ show the raw file as stored in the git commit object; use this to check if files are encrypted as expected. vibe check on your ciphertext π-e,--export-gpg=recipientβ export the repository's cipher and password to a file encrypted for a gpg recipient. sharing is caring (securely) π€-i,--import-gpg=fileβ import the password and cipher from a gpg encrypted file π₯-v,--versionβ print the version information π·οΈ-h,--helpβ view this help message π
π EXAMPLES π
π starting fresh (the setup era)
to initialize a Git repository to support transparent encryption, just change into the repo and run the transcrypt script. transcrypt will prompt you interactively for all required information if the corresponding option flags were not given. no flags? no problem, it'll interview you like a little journalist π€
$ cd <path-to-your-repo>/
$ transcrypt
π₯ actually encrypting stuff
once a repository has been configured with transcrypt, you can transparently encrypt files by applying the "crypt" filter and diff to a pattern in the top-level .gitattributes config. if that pattern matches a file in your repository, the file will be transparently encrypted once you stage and commit it:
$ echo 'sensitive_file filter=crypt diff=crypt' >> .gitattributes
$ git add .gitattributes sensitive_file
$ git commit -m 'Add encrypted version of a sensitive file'
(no that's not a typo, there are two spaces in there. leave it. it's fine. π)
see the gitattributes(5) man page for more information β go read it, it's your new bestie too π
π§ you just cloned an encrypted repo
if you have just cloned a repository containing files that are encrypted, you'll want to configure transcrypt with the same cipher and password as the origin repository. once transcrypt has stored the matching credentials, it will force a checkout of any existing encrypted files in order to decrypt them. match the creds, get the files, slay π
π your origin repo just rekeyed
if the origin repository has just rekeyed, all clones should flush their transcrypt credentials, fetch and merge the new encrypted files via Git, and then re-configure transcrypt with the new credentials. three-step choreography, do it in order, no skipping π©°
π AUTHOR π
Aaron Bull Schaefer <aaron@elasticdog.com> β thank you king π«‘
πΈ MAINTAINER πΈ
James Murty <james@murty.co> β keeping it alive, we love to see it π«Ά
β SEE ALSO β
and that's the whole page, bestie! π this absolute icon of a manpage is dated August 2016 and it's TRANSCRYPT(1) β go forth, encrypt transparently, and don't ever run -F without thinking. mwah! π
β¨π
π¦ where this page comes from
- nixpkgs unstable: transcrypt 2.3.2
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms