The open-source standard for managing and sharing environment variables securely across your entire development workflow.
π beakcrypt.com Β Β·Β π Report a Bug Β Β·Β β¨ Request a Feature
Tired of pasting .env files into Slack? Sending secrets over email? Beakcrypt gives your team a shared, end-to-end encrypted vault for environment variables β managed with a CLI that fits into the workflow you already use.
- π End-to-end encrypted β secrets are encrypted on your machine before they ever leave it
- π€ Team vaults β invite teammates and manage access per project
- β‘ CLI-first β push and pull
.envfiles in seconds - π Fully open-source β audit every line, self-host if you want, contribute freely
πΉ Demo video coming soon.
# Log in with GitHub OAuth
$ beakcrypt login
β Logged in as jane@acme.com
# Link this directory to a project
$ beakcrypt link
β Linked to acme/api (development)
# Push your local secrets β encrypted before upload
$ beakcrypt push
β Encrypting 12 variables...
β Synced to vault
# A teammate pulls the secrets on their machine
$ beakcrypt pull
β Fetching from vault...
β Written to .env.local
# Inject secrets directly into any command
$ beakcrypt run -- npm run devNo more .env files in Slack. No more "which version of the key is correct?". One vault. One source of truth.
This is a Turborepo monorepo managed with pnpm workspaces.
beakcrypt/
βββ apps/
β βββ web/ # Next.js app β beakcrypt.com
β βββ docs/ # Documentation site (Fumadocs)
βββ packages/
β βββ cli/ # CLI tool β published as `beakcrypt` on npm
β βββ convex/ # Convex backend β schema, auth, API
β βββ crypto/ # Shared E2EE primitives (RSA-4096, AES-256-GCM)
β βββ shared/ # Shared types and utilities
β βββ ui/ # Shared UI component library
β βββ transactional/ # Transactional email templates
β βββ eslint-config/ # Shared ESLint configuration
β βββ typescript-config/ # Shared TypeScript configuration
βββ turbo.json
βββ pnpm-workspace.yaml
βββ tsconfig.json
| Tool | Version | Install |
|---|---|---|
| Node.js | v18 or later |
nodejs.org |
| pnpm | v10 or later |
corepack enable && corepack prepare pnpm@latest --activate |
| Git | latest | git-scm.com |
Note: pnpm is the only tool you need globally. Convex CLI is run via
npx(no global install needed). If you already have pnpm installed vianpm i -g pnpm, that works too.
Verify your setup:
node --version # v18+
pnpm --version # v10+
git --versionJust want to run it locally? Clone directly. Want to contribute back? Fork first, then clone your fork β see Contributing.
git clone https://github.com/prudentbird/beakcrypt.git
cd beakcrypt
git checkout devpnpm installcp apps/web/.env.example apps/web/.env.localOpen apps/web/.env.local and fill in the required values. Every variable is documented inside the file. The two services you must configure:
Convex β run npx convex dev from the repo root. It will walk you through creating a free deployment and automatically print your CONVEX_DEPLOYMENT, CONVEX_URL, and CONVEX_SITE_URL values.
GitHub OAuth β create a free OAuth App at github.com/settings/developers:
- Homepage URL:
http://localhost:3000 - Callback URL:
http://localhost:3000/api/auth/callback/github
Better Auth β generate a secret:
openssl rand -base64 32pnpm devThe web app will be available at http://localhost:3000 and the docs at http://localhost:3000/docs.
Note:
pnpm devstarts all apps using Turborepo with Vercel Microfrontends. If you only want to run the web app locally, use:cd apps/web && npx next dev --port 3000 --turbopack
Tip: If you want to start the server before configuring Convex (e.g. to explore the codebase), set
SKIP_ENV_VALIDATION=1:SKIP_ENV_VALIDATION=1 pnpm dev
pnpm build # Build all apps and packages
pnpm lint # Run ESLint across the monorepo
pnpm typecheck # TypeScript type checking
pnpm format # Format code with Prettier
pnpm dev:app # Run only the web app + Convex backendContributions are welcome β bug fixes, features, and docs all count. Please read CONTRIBUTING.md before opening a PR.
Quick contribution flow:
# 1. Fork the repo and clone your fork
git clone https://github.com/<your-username>/beakcrypt.git
cd beakcrypt
git remote add upstream https://github.com/prudentbird/beakcrypt.git
# 2. Create a feature branch off dev
git fetch upstream
git checkout -b feat/your-feature upstream/dev
# 3. Make your changes, then push
git push origin feat/your-feature
# 4. Open a Pull Request against the dev branchReady to jump in?
- π Open a bug report
- β¨ Request a feature
- π Submit a pull request β see our PR template
- π·οΈ
good first issueβ great for first-time contributors
Distributed under the MIT License β see LICENSE for details.
If you find Beakcrypt useful, please consider giving it a β
Made with β€οΈ by prudentbird and contributors