Skip to content

Proposal: Add git-crypt encryption for personal files (enable safe use with Claude.ai/code) #203

@alondc

Description

@alondc

Code of Conduct

Existing issues

  • I searched existing issues and this hasn't been requested yet

Problem

Summary

I've implemented and validated git-crypt support in my fork and have been
using it locally — it works end-to-end with Claude.ai/code. Sharing it
here as a contribution in case it's useful to others.

Problem

career-ops stores genuinely sensitive data: salary targets, active
interview pipelines, negotiation positions, and full application history.
Running it with Claude Code cloud (Claude.ai/code) means the repo needs
to be accessible remotely, but committing this data in plaintext to any
remote — public or private — is an unnecessary risk, especially for users
on employer-managed GitHub accounts.

Proposed solution

Solution

git-crypt encrypts specific files so they're stored as opaque binary blobs
in git history, unreadable without the key, while Claude reads them
transparently once the repo is unlocked. A GIT_CRYPT_KEY environment
variable in Claude.ai/code project settings handles the unlock
automatically on session start.

What I added

  • .gitattributes — encryption patterns for personal files (cv.md,
    config/profile.yml, data/, reports/, interview-prep/, tracker
    TSVs); system files stay plaintext
  • .cloud-setup.sh — session setup script: installs git-crypt, runs
    npm install, unlocks repo via GIT_CRYPT_KEY
  • CLAUDE.md — two new steps before the onboarding flow: git pull to
    sync, and a git-crypt unlock check with a clear warning if the key is missing
  • docs/cloud-setup.md — end-user guide covering init, key export,
    env var setup, verification, rotation, and troubleshooting

No breaking changes

Users who don't use git-crypt are completely unaffected. .gitattributes
only activates if git-crypt is initialized in the repo. The CLAUDE.md
steps gracefully skip if cv.md is already plaintext.

Happy to open a PR if this aligns with the project direction.

Area

Other

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions