Back to terminal tools
sekrt cover

sekrt

Your secrets: synced, retrievable and safely stored. Plus a painless way to keep .env files out of your repos.

GitHubpip install

The vault

sekrt init creates a vault at ~/.local/share/sekrt and asks for the passphrase that will encrypt it. Commands that touch a secret ask for that passphrase; ls, find, rm and status never do, because they decrypt nothing. sekrt unlock caches the derived key (never the passphrase) in a RAM-backed, user-private location with a TTL: gpg-agent, without the agent.

sekrt CLI walkthrough
Init, add, get: a working vault in four commands.

The .env workflow

sekrt env push encrypts the .env of the repository you are standing in and files it under that repo; sekrt env pull restores it in any fresh clone, on any machine. Monorepos with one env file per service are handled, and an edited local file is never overwritten without --force.

sekrt env push and pull
A repo's .env, encrypted into the vault and restored in a fresh clone.

Running a command with your secrets

sekrt expose cannot work, because a child process cannot set variables in the shell that started it. So sekrt wraps the command instead, and the values live in *its* environment for exactly as long as it runs. Never written to disk, never left in your shell, and never placed in a command line, because ps is world-readable. sekrt shell opens a subshell that tags its own prompt, so a shell holding secrets never looks like an ordinary one.

sekrt run wrapping a command
sekrt run and sekrt shell: secrets scoped to one process.

The TUI

sekrt with no arguments opens the interface: a folder tree of the vault, fuzzy filtering, a masked detail view, add and edit forms with a built-in generator, and one-key sync. Eleven colour presets, one per hue, editable live with t.

The sekrt TUI
Browsing, filtering, revealing and syncing, without leaving the keyboard.

Security model

Try it
zsh: sekrt
$uv tool install sekrt
$sekrt init
>✔ vault created at ~/.local/share/sekrt
$sekrt add work/github -u alberto -g
$sekrt run 'uv publish'

Alberto Rota · Research · Contact