All projects

TinyVault

Live

A credential vault for browser agents: the model logs in without ever seeing the password

0 of 50 runs
Password Leaks with TinyVault
50 of 50 runs
Password Leaks without a Vault
<1,000 lines
Core Fill Logic
TinyVault screenshot

Overview

A small library and MCP server for browser agents that need to log in. The model gets an opaque handle instead of the password. When it asks to fill one, TinyVault reads the page's real origin from the browser, checks it against the one site that credential belongs to, types the password itself, and reports only whether it worked. I wanted a number for how often the password leaks, so it ships with a Docker test bed of hostile pages. Same model, same tasks: with the password in context it leaked in 50 of 50 runs, with TinyVault in 0 of 50. The first attempt did leak, to a fake "please sign in again" prompt. I added a one-fill rule and reran everything. The failed run is still in the repo.

Screenshots

TinyVault screenshot 2
TinyVault screenshot 3
TinyVault screenshot 4

Tech Stack

TypeScriptNode.jsPlaywrightMCPlibsodium1Password CLIDockerClaude Haiku 4.5Vitest