All databases are hosted in VMs. Most of them only support amd64, so the host machine is also amd64 - this is the only limitation. It uses hardware virtualization, so nothing is emulated.
Absolutely. Doppler custodies the credentials entirely themselves, and Infisical ditched zero-trust earlier on citing complexity and UX concerns - IMO they just didn't try hard enough ;)
I also decided to embrace .env because that's how humans (and apparently agents -- for now) like to work when building stuff. Except Capy is the only solution I know of that allows you to cryptographically revoke access to those .env files in real time.
I'd say the two biggest things are Portability, and Ergonomics.
For portability your secrets in those platforms can't move around with you, but with Capy they can move with you wherever you're doing your work. Your local machine, your sandbox, etc.
Capy also helps you deploy your secrets into Coder, Claude, Copilot and whatever other Clever product you prefer to use ;)
For ergonomics, Capy is built from the ground up as a CLI, which means it's extremely flexible in where you want to use it. I'm also working currently on making it work SUPER well in agentic coding workflows. There's going to be more on that coming soon!
I love this question, because it's something I've been thinking about a lot for the next evolution of this product. My solution, currently, is that the CLI provides all the guardrails.
All the security and logical primitives are enforced via the CLI's command layout, similar to how it is done with git, and the human is still in the loop for the most critical stuff like initial onboarding, saving secrets, resolving conflicts, running deployments, and performing rotations.
I do eventually want to find safe ways for agents to take over those tasks, and there is a lot to learn from how software factory agents currently work with git. The thing is, even with software factories, the VERSION CONTROL gates are also usually still defined by humans (when to commit, merge, deploy, etc.). Whatever it is, the same level of automation ought to exist for secrets and configuration.
To that end, I have an upcoming MCP that acts as a wrapper for orchestrating sequences of Capy CLI commands (but never the contents of them). In the preliminary MCP implementation there's nothing the agent is actually able to interpret, besides maybe identifying variable names, what the stack looks like, and what services the application likely uses.
See CC6.2 Creation and Removal of User Credentials and CC6.6 External Protections, but if you don't work in a regulated environment, world's your oyster!
On the crypto side, the values are encrypted client-side before they’re sent. This means the service stores ciphertext it has no ability to decrypt. So the worst case for a backend compromise is someone getting encrypted blobs plus some metadata.
On the controls side, SAST scanning in CI, and minimizing deps as much as possible in the client and the service.
People really dont take this stuff seriously enough, but my experience with Firestore (circa ~2014) was that it was too "easy" with a lot of stuff.
Not sure how to describe this, but it's almost like the product gives you the false impression that you're done setting it up when there's still things like security rules that you need to learn and know about.