Inspiration

Every project we start gets a .env file in its folder. Now coding agents read that folder too. An agent can open .env, print a key into a transcript, or paste it into a tool call.

We believe that storing your secrets where you develop software is the wrong primitive. We also wanted teams to fit .sct into their workflows without giving up security. Thus, .sct was born!

PS: We also built an experimental feature that sends mock Apple Wallet cards to an iPhone through AirDrop!

What it does

.sct is a macOS app that keeps secrets in an encrypted vault outside your projects. sct run -- bun run dev starts a command with its secrets as environment variables. .sct also sends encrypted secrets to a verified Mac through AirDrop or a relay. Claude Code uses secrets through an MCP server, and each request opens a local approval window. The agent never sees a value.

How we built it

A relay on SpacetimeDB connects senders and recipients. Senders publish events, and recipients subscribe to them. When a sender shares a secret, such as an API key, with a teammate, the relay stores an encrypted copy that only the recipient's Mac can decrypt with its private key.

Challenges we ran into

Synchronization and pairing our devices via the relay took a couple of tries, and I think was the most challenging part because we had to believe it'd work and have some sort of idea for how it should work, before it worked.

Accomplishments that we're proud of

  • Encrypted sharing of environment variables between two or more Macs through a relay
  • AirDrop secrets to your teammates
  • Expiry dates on the secrets you share
  • Injection-only sharing of secrets like API Keys and Credit card info: recipients use a secret at runtime, but they can't reveal, copy, or reshare it
  • Built for agents from the ground up, with custom skills, a CLI, and an MCP server

What we learned

The hardest part was the DX and AX of the relay and AirDrop flows. We wanted humans and agents to find them intuitive. We also designed every flow around security from the start, and that was hard too!

What's next for sct

A notarized .dmg, @sct/env on npm, and more agents than Claude Code.

Built With

  • aes-256-gcm
  • airdrop
  • animejs
  • apple-wallet
  • bun
  • css
  • electron-vite
  • eslint
  • github-actions
  • html
  • napi-rs
  • node.js
  • playwright
  • react-doctor
  • spacetime-db
  • spacetimedb
  • zod
Share this project:

Updates

Submission history