Bruno Pinto

Bruno Pinto

@bpinto.com

27 followers81 following145 posts

I've been running coding agents in VMs, and the worst part was always credentials. Either I pasted a token into the VM and hoped, or I did everything myself. So I built foca. It's basically ssh-agent for secrets: the VM asks, I tap Touch ID, it gets the token. github.com/bpinto/foca

View full thread

My favourite bit: actions. Some things shouldn't be a token sitting in the VM, like AWS creds. So the host runs granted for it, with a fixed command and a checked profile name, and the VM only gets the short-lived output. credential_process = foca exec aws-creds --param profile=dev-admin

Other things it does: - approvals can last a while if you want, up to 8h - locking the screen or closing the lid drops every grant - every request goes into an audit log, denied ones included (never the values) - if it can't prompt or write the log, it says no

I've been running coding agents in VMs, and the worst part was always credentials. Either I pasted a token into the VM and hoped, or I did everything myself. So I built foca. It's basically ssh-agent for secrets: the VM asks, I tap Touch ID, it gets the token. github.com/bpinto/foca

View full thread

The prompt tells you who's asking. If the kernel can confirm the process, it shows it plainly. If it only has the VM's word for it, it says so: "gh via claude (unverified)". A caller can't sneak its own text into the prompt either.

Each VM or container gets its own socket and its own vault. If a secret isn't exposed to that VM, asking for it looks exactly like asking for one that doesn't exist.

I've been running coding agents in VMs, and the worst part was always credentials. Either I pasted a token into the VM and hoped, or I did everything myself. So I built foca. It's basically ssh-agent for secrets: the VM asks, I tap Touch ID, it gets the token. github.com/bpinto/foca

When something in the VM wants a secret, I get a Touch ID prompt on my Mac saying which secret, which VM and which program. On Linux it's the normal polkit password dialog. If I say no, it gets nothing.

Bruno Pinto reposted

🏆 Win a combo ticket + hotel in Singapore - follow us & repost this post! The world’s biggest full-stack conference & the world's first event on AI-native software engineering are coming to🇸🇬Singapore on Apr 15–16. Can’t wait to see you at React Summit & @aicodingsummit.bsky.social Asia!

@ricky.fm thanks for the react.dev docs updates! I was wondering if you have any reference to forms that have full support for client side validation? I would like to stop using third party libraries that are not transition compatible but I haven't found related code confirming that is possible.

It would be awesome to get “useEffectEvent()” hook in a react minor/patch release. It has been under “experimental” build for some time now and it can be so useful. I wonder if they are holding onto it because they may be looking at ways to remove useEffect instead - if that’s possible.

It would be awesome to get “useEffectEvent()” hook in a react minor/patch release. It has been under “experimental” build for some time now and it can be so useful. I wonder if they are holding onto it because they may be looking at ways to remove useEffect instead - if that’s possible.

Bruno Pinto reposted

Write flat tests. No "describe", no scenario nesting, no beforeEach/afterEach hooks (as a rule). Each test case is self-contained, listing all the setup it needs. Use Symbol.dispose for reliable cleanup. Use granular test cases. ☝️ These things will make your tests shine.

You are up to date.