Skip to content

Engineering / Open resources

EnvRune

A Go CLI that replaces .env files with an encrypted vault: secrets are referenced by name in a versionable envrune.yml and injected straight into the process, with masked output and end-to-end encrypted team sharing.

Masking that survives streaming

Injected values the process prints come out as ****, including their URL-encoded and base64 forms. Because a value can arrive split across two chunks of output, the filter holds back only the tail that could still be the start of a secret — and in a terminal the process runs inside a pseudo-terminal, so colours, progress bars and prompts keep working.

AI agents can run, but not read

envrune mcp is an MCP server for Claude Code, Cursor and Copilot: the agent runs the tests or starts the dev server with the secrets injected and gets masked output back. No tool returns a value, and only the commands named in envrune.yml can be run — arbitrary commands are off by default.

A server that cannot read or grant itself access

In EnvRune Cloud, each environment's key is encrypted to every device with age (X25519), and every public key is reached through a chain of Ed25519 signatures ending at roots pinned by the team itself. A compromised server can refuse service or see who fetched what; it cannot read a value, or make a client encrypt to a key no admin signed.

A record of decisions already described in the case study; no release date assigned. New changes can be added as dated entries.

Project evidence