Arkhe-claude-plugins sops-encrypt
install
source · Clone the upstream repo
git clone https://github.com/joaquimscosta/arkhe-claude-plugins
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/joaquimscosta/arkhe-claude-plugins "$T" && mkdir -p ~/.claude/skills && cp -r "$T/plugins/devtools/skills/sops-encrypt" ~/.claude/skills/joaquimscosta-arkhe-claude-plugins-sops-encrypt && rm -rf "$T"
manifest:
plugins/devtools/skills/sops-encrypt/SKILL.mdsource content
SOPS Encrypt
Encrypt
.env files by converting to YAML and encrypting with SOPS + age.
Why YAML? SOPS dotenv store has a known bug (#1435) that corrupts backslash and
\n sequences. The helper script converts dotenv→YAML before encryption.
Workflow
-
Detect current state:
python3 ${CLAUDE_SKILL_DIR}/../sops-setup/scripts/detect_sops.py <project-root> -
Verify prerequisites:
must be true — if not, tell user to runtools.sops.installed/devtools:sops-setup
must be true — if not, tell user to runproject.sops_yaml.exists/devtools:sops-setup
must be true — if not, tell user to runage_key.exists/devtools:sops-setup
-
Show unencrypted .env files from
. If empty, report "No .env files found to encrypt" and exit.project.env_files -
Use
(multiSelect: true) — which files to encrypt. List eachAskUserQuestion
file. If a corresponding.env*
file already exists, note it will be overwritten..enc.yaml -
Encrypt each selected file (convert dotenv→YAML, then encrypt):
python3 ${CLAUDE_SKILL_DIR}/../sops-setup/scripts/dotenv_yaml.py to-yaml <file> > <file>.enc.yaml.tmp sops --encrypt <file>.enc.yaml.tmp > <file>.enc.yaml rm <file>.enc.yaml.tmpExample:
→.env.local.env.local.enc.yaml -
Verify each encrypted file exists and is non-empty.
-
Summary:
| File | Encrypted To | Status | |------|-------------|--------| | .env.local | .env.local.enc.yaml | done | | .env.production | .env.production.enc.yaml | done |Remind user to commit the
files..enc.yaml
Key Rules
- Always verify
exists before attempting encryption.sops.yaml - Always convert dotenv→YAML before encrypting (use the helper script)
- Warn if an
file will be overwritten.enc.yaml - Never delete the original
file — only create the.env
copy.enc.yaml - Clean up
files even if encryption fails.tmp