<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: theozero</title><link>https://news.ycombinator.com/user?id=theozero</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Wed, 20 May 2026 06:54:06 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=theozero" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by theozero in "CISA Admin Leaked AWS GovCloud Keys on GitHub"]]></title><description><![CDATA[
<p>Get everything out of plaintext!<p>Varlock is a great and flexible way to do this.</p>
]]></description><pubDate>Tue, 19 May 2026 16:20:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=48195402</link><dc:creator>theozero</dc:creator><comments>https://news.ycombinator.com/item?id=48195402</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48195402</guid></item><item><title><![CDATA[New comment by theozero in "CISA Admin Leaked AWS GovCloud Keys on GitHub"]]></title><description><![CDATA[
<p>You might like varlock - it helps keep secrets out of plaintext by using plugins to pull from various backends (aws ssm, gcp, vault, 1pass, etc). Also has built in local encryption with shared team vaults coming soon.<p>Additionally provides pre commit scanning, log redaction, and much more.</p>
]]></description><pubDate>Tue, 19 May 2026 16:13:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=48195303</link><dc:creator>theozero</dc:creator><comments>https://news.ycombinator.com/item?id=48195303</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48195303</guid></item><item><title><![CDATA[New comment by theozero in "Show HN: SecretEnv – Run any process with secrets from all your backends"]]></title><description><![CDATA[
<p>We piggyback on .env files with a new DSL rather than introducing a new file.<p>Using plugins that register new functions, you can fetch from many different backends (15 and growing). The main difference if I understand correctly is that the wiring of vars to where those things live does live in committed code, but is totally declarative and safe. It's also incredibly flexible since functions can be written to make things idiomatic for that backend. Keeping that within git makes sense to us, as you ideally want deployments to be immutable.<p>The other benefit is this gives you a way to manage both sensitive and non-sensitive config - with a single source of truth for validation, types, docs.</p>
]]></description><pubDate>Tue, 05 May 2026 17:52:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=48026020</link><dc:creator>theozero</dc:creator><comments>https://news.ycombinator.com/item?id=48026020</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48026020</guid></item><item><title><![CDATA[New comment by theozero in "Show HN: SecretEnv – Run any process with secrets from all your backends"]]></title><description><![CDATA[
<p>Check out <a href="https://varlock.dev" rel="nofollow">https://varlock.dev</a> - it uses functions and a plugin system to pull from different backends. But also allows composing values together in whatever way you like, has built in validation, extra protection for secrets, and a ton more.</p>
]]></description><pubDate>Tue, 05 May 2026 16:31:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=48024799</link><dc:creator>theozero</dc:creator><comments>https://news.ycombinator.com/item?id=48024799</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48024799</guid></item><item><title><![CDATA[New comment by theozero in "Using Changesets in a polyglot monorepo"]]></title><description><![CDATA[
<p>check out <a href="https://bumpy.varlock.dev" rel="nofollow">https://bumpy.varlock.dev</a> - still a bit of work to do to make other languages even easier, but it fixes a few things with changesets around custom publishing.</p>
]]></description><pubDate>Mon, 04 May 2026 21:24:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=48015205</link><dc:creator>theozero</dc:creator><comments>https://news.ycombinator.com/item?id=48015205</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48015205</guid></item><item><title><![CDATA[Show HN: Bumpy – versioning/changelog tool, fixed 120 open changesets issues]]></title><description><![CDATA[
<p>Meet bumpy  - your new favourite open-source versioning, release, and changelog tool. Especially useful in monorepos with many related packages, but also great to use in simpler setups.<p>This is a modern successor to the popular  changesets tool, used by many open source projects.<p>While changesets is great, and I love the file-based bump+changelog workflow, the project has hundreds of open issues, many of which have been open for multiple years. Bumpy fixes most of the important ones (over 120+ by my last count), and adds some new features as well. It also greatly simplifies things, so it should be easier to evolve as folks start pushing its limits.<p>Some highlights:<p><pre><code>  - changesets is built as a monorepo with 20 subpackages, this is a much simpler monolith
  - changesets requires you install a github app, use a github action, an npm module, and another for changelog formatting (this is a single install)
  - much more flexible include/exclude logic, instead of assuming behaviour is the same for all private packages
  - allows custom publishing commands, does not assume/force npm publishing
  - more sane peer dependency bumping logic
  - built in formatters, and easier to write custom ones
  - non-interactive version of add command (useful for agents)
  - it's infested with delightful frogs
  - lots of other small quality of life improvements
</code></pre>
What's missing:<p><pre><code>  - no prerelease workflows yet (changesets users say this part of it is very confusing, so want to get it right)
  - I want to allow multiple publish targets per package
  - Add plugin system to define common publishing targets (e.g., VSCode extension marketplace)
</code></pre>
Yes it was coded using AI, but carefully. There is a comprehensive test suite. We are using it actively to release varlock along with 25+ related libs and plugins.<p>Run `bunx @varlock/bumpy init` to get started - if you are using changesets, it will help you migrate automatically.</p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47931761">https://news.ycombinator.com/item?id=47931761</a></p>
<p>Points: 5</p>
<p># Comments: 0</p>
]]></description><pubDate>Tue, 28 Apr 2026 08:19:37 +0000</pubDate><link>https://github.com/dmno-dev/bumpy</link><dc:creator>theozero</dc:creator><comments>https://news.ycombinator.com/item?id=47931761</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47931761</guid></item><item><title><![CDATA[New comment by theozero in "Ask HN: Do you trust AI agents with API keys / private keys?"]]></title><description><![CDATA[
<p>Totally - the only completely safe way is to inject keys in a proxy and keep them out of the process. But getting them totally out of plaintext is a great first step, both to keep it from AI and malicious scripts that are looking for keys.</p>
]]></description><pubDate>Thu, 16 Apr 2026 03:56:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=47788481</link><dc:creator>theozero</dc:creator><comments>https://news.ycombinator.com/item?id=47788481</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47788481</guid></item><item><title><![CDATA[New comment by theozero in "Ask HN: Do you trust AI agents with API keys / private keys?"]]></title><description><![CDATA[
<p>You will probably like varlock - it helps get your keys out of plaintext, while giving your agents a schema and additional tools so it can interact with env vars safely. The next step is injecting your keys via proxy, but just varlock is a huge improvement as a first step. Generally provides a ton of quality of live improvements as well, whether working solo or on a team.</p>
]]></description><pubDate>Mon, 13 Apr 2026 15:24:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=47753362</link><dc:creator>theozero</dc:creator><comments>https://news.ycombinator.com/item?id=47753362</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47753362</guid></item><item><title><![CDATA[New comment by theozero in "Coding Agents Are Reading Your .env"]]></title><description><![CDATA[
<p>Another tool that helps here is <a href="https://varlock.dev" rel="nofollow">https://varlock.dev</a> (free + open source!)<p>There are plugins for many different secret storage solutions, including infisical - as well as native local encryption (ie secure enclave on mac) that will be released very soon.<p>Plus it adds validation, imports, log redaction, leak prevention, and a ton more.</p>
]]></description><pubDate>Thu, 09 Apr 2026 18:38:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=47707784</link><dc:creator>theozero</dc:creator><comments>https://news.ycombinator.com/item?id=47707784</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47707784</guid></item><item><title><![CDATA[New comment by theozero in "The .env File Nobody Needs"]]></title><description><![CDATA[
<p>Check out <a href="https://varlock.dev" rel="nofollow">https://varlock.dev</a> - it makes .env files useful and safer!</p>
]]></description><pubDate>Wed, 01 Apr 2026 14:52:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=47601748</link><dc:creator>theozero</dc:creator><comments>https://news.ycombinator.com/item?id=47601748</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47601748</guid></item><item><title><![CDATA[New comment by theozero in "Storing Claude Code API keys in KeePassXC instead of plaintext config"]]></title><description><![CDATA[
<p>You might like <a href="https://varlock.dev" rel="nofollow">https://varlock.dev</a> (free and open source) - it has a plugin system so you can follow this pattern but pull from many different backends. Plus it provides a lot more... like being able to import shared config/schema from other files, validation, log redaction, composing values together with functions.<p>Keepass plugin is in an open PR, should be merged soon!</p>
]]></description><pubDate>Wed, 25 Mar 2026 19:37:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=47522124</link><dc:creator>theozero</dc:creator><comments>https://news.ycombinator.com/item?id=47522124</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47522124</guid></item><item><title><![CDATA[New comment by theozero in "Show HN: Touchenv – store ENV master keys in macOS keychain"]]></title><description><![CDATA[
<p>You'll probably like <a href="https://varlock.dev" rel="nofollow">https://varlock.dev</a> (free and open source)
Im just about to roll out similar built in secure-enclave encryption with fingerprint unlocking. But integrated into a larger tool that does validation, type generation, secrets protection, and a bunch more cool stuff!</p>
]]></description><pubDate>Tue, 17 Mar 2026 19:23:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=47417018</link><dc:creator>theozero</dc:creator><comments>https://news.ycombinator.com/item?id=47417018</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47417018</guid></item><item><title><![CDATA[New comment by theozero in "Show HN: GitAgent – An open standard that turns any Git repo into an AI agent"]]></title><description><![CDATA[
<p>Check out <a href="https://varlock.dev" rel="nofollow">https://varlock.dev</a> for a modern take on .env that gets your secrets out of plaintext. Free and open source - works with tons of tools. Adds validation, type safety, lots of nice features.</p>
]]></description><pubDate>Sun, 15 Mar 2026 05:02:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=47384519</link><dc:creator>theozero</dc:creator><comments>https://news.ycombinator.com/item?id=47384519</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47384519</guid></item><item><title><![CDATA[New comment by theozero in "Stop Putting Secrets in .env Files"]]></title><description><![CDATA[
<p>Reading from 1Password definitely does add some overhead, but at least our integration fetches in bulk so should be ~2s total and not scale with number of secrets. For team members, they don't need any service accounts, so its just making sure they are granted vault access, which can be managed through team settings you likely already have set up anyway. Add new team member to "devs" and you're done. Anyway certainly not perfect, but sure beats a lot of the other options.<p>Should be easy enough to set up a keyenv plugin - varlock adds a lot of additional last mile tooling to get secrets/config integrated into projects, regardless of where they ultimately live.</p>
]]></description><pubDate>Wed, 04 Mar 2026 22:38:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=47254971</link><dc:creator>theozero</dc:creator><comments>https://news.ycombinator.com/item?id=47254971</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47254971</guid></item><item><title><![CDATA[New comment by theozero in "Stop Putting Secrets in .env Files"]]></title><description><![CDATA[
<p>While the 1Password model is not perfect, you can organize your vaults however makes sense for your project. You can do prod/staging/dev, or by projects, etc. Or you can use the new environments feature and create a separate "environment" for each. Service accounts and users can be granted access to specific vaults only.<p>The huge benefit is that if you are already using it for other stuff, there is no additional "secret zero" to set up - plus you get biometric unlock for your secrets.<p>Easiest way to use it for dev purposes is varlock (although I'm biased since I created it).<p><a href="https://github.com/dmno-dev/varlock" rel="nofollow">https://github.com/dmno-dev/varlock</a></p>
]]></description><pubDate>Tue, 03 Mar 2026 18:24:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=47236534</link><dc:creator>theozero</dc:creator><comments>https://news.ycombinator.com/item?id=47236534</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47236534</guid></item><item><title><![CDATA[New comment by theozero in "Stop Putting Secrets in .env Files"]]></title><description><![CDATA[
<p>You will probably really like <a href="https://varlock.dev" rel="nofollow">https://varlock.dev</a><p>It’s a whole toolkit for this - with built in validation, type safety, and extra protection for sensitive secrets.</p>
]]></description><pubDate>Sat, 28 Feb 2026 04:41:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=47190519</link><dc:creator>theozero</dc:creator><comments>https://news.ycombinator.com/item?id=47190519</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47190519</guid></item><item><title><![CDATA[New comment by theozero in "Show HN: enveil – hide your .env secrets from prAIng eyes"]]></title><description><![CDATA[
<p>You might like <a href="https://varlock.dev" rel="nofollow">https://varlock.dev</a> - it lets you use a .env.schema file with jsdoc style comments and new function call syntax to give you validation, declarative loading, and additional guardrails. This means a unified way of managing both sensitive and non-sensitive values - and a way of keeping the sensitive ones out of plaintext.<p>Additionally it redacts secrets from logs (one of the other main concerns mentioned in these comments) and in JS codebases, it also stops leaks in outgoing server responses.<p>There are plugins to pull from a variety of backends, and you can mix and match - ie use 1Pass for local dev, use your cloud provider's native solution in prod.<p>Currently it still injects the secrets via env vars - which in many cases is absolutely safe - but there's nothing stopping us from injecting them in other ways.</p>
]]></description><pubDate>Tue, 24 Feb 2026 18:01:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=47140337</link><dc:creator>theozero</dc:creator><comments>https://news.ycombinator.com/item?id=47140337</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47140337</guid></item><item><title><![CDATA[New comment by theozero in "Show HN: Env-rx – Catch missing .env variables before they break your CI"]]></title><description><![CDATA[
<p>Thanks for the kind words. It's actually decoupled and up to the user if they want to use it for pure validation as part of CI/deployment, just to inject values, or to integrate more deeply. But you can get the most benefit by integrating it fully. This lets you set values, compose values using functions, take advantage of coercion, and helps protect your secrets.<p>You can just use `varlock run -- ...your command` and it will load, validate, and reinject as env vars. This is what enables it to be used with any language or any tool. We have a standalone binary. You could also just use `varlock load` to do validation and rely on values all being set externally. However we do provide javascript helpers to just load everything automatically - although this just calls out to the CLI, keeping your app isolated from the code that loads and validates the vars. For JS we actually go a bit further and patch http and console to protect any sensitive data - because we know exactly which config items are sensitive.<p>It's really meant to just be a complete complete toolkit and then let users integrate as deep as they want to.</p>
]]></description><pubDate>Thu, 19 Feb 2026 07:54:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=47071095</link><dc:creator>theozero</dc:creator><comments>https://news.ycombinator.com/item?id=47071095</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47071095</guid></item><item><title><![CDATA[New comment by theozero in "Show HN: Env-rx – Catch missing .env variables before they break your CI"]]></title><description><![CDATA[
<p>You might like varlock (<a href="https://varlock.dev" rel="nofollow">https://varlock.dev</a>)<p>You can use it to declaratively fetch from various backends, but it’s optional. At its core it lets you create a .env.schema and you get validation, type safety, guardrails for sensitive values, and a flexible toolkit to deal with all config related headaches.<p>The big difference from your tool (and many others) is that instead of trying to provide tooling to keep an example and other files in sync, the schema file is part of the loading process, so it can never be out of sync. This also helps create a single source of truth, and helps create a unified system to deal with all config - both sensitive and not.</p>
]]></description><pubDate>Thu, 19 Feb 2026 04:41:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=47070007</link><dc:creator>theozero</dc:creator><comments>https://news.ycombinator.com/item?id=47070007</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47070007</guid></item><item><title><![CDATA[New comment by theozero in "Show HN: Dotenv Mask Editor: No more embarrassing screen leaks of your .env"]]></title><description><![CDATA[
<p>yeah for our DNS we use a little provider called... Cloudflare.<p>But hey some tokenized crypto dns provider is probably much more reliable! lol</p>
]]></description><pubDate>Thu, 22 Jan 2026 05:11:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=46715570</link><dc:creator>theozero</dc:creator><comments>https://news.ycombinator.com/item?id=46715570</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46715570</guid></item></channel></rss>