Form-filling agent built on browser-use: describe yourself once, point it at any web form, and it fills every field automatically. You review and submit manually.
Meet Phil: eight hands on the keyboard so you don't have to use any.
For Claude Code, Codex, Cursor, etc.: start with AGENTS.md. Claude Code also loads CLAUDE.md.
Open a terminal and run:
curl -fsSL https://raw.githubusercontent.com/jayzuccarelli/autofill/main/install.sh | bashRequires git and a supported OS (macOS or Linux). Windows is untested. You don't need Python: the installer fetches uv, which brings its own.
autofillThe first time you run it, autofill walks you through:
- Profile: asks your name, date of birth, email, phone, location, socials, and a short summary; saves to
knowledge/profile.md. - Provider: lets you pick a provider (Browser Use, OpenAI, Anthropic, or local Ollama), then paste your key (skipped for Ollama); saves to
.env. - Extra files: optionally add supporting documents (PDFs, docs) to
knowledge/. - Builds the database: indexes everything under
knowledge/so it's ready.
| Provider | Key env var | Notes |
|---|---|---|
| Browser Use | BROWSER_USE_API_KEY |
Default; managed, no extra setup. Uses bu-2-0; override with AUTOFILL_BROWSERUSE_MODEL. Their hosted models need a paid Browser Use plan; credits alone don't unlock them. |
| Anthropic | ANTHROPIC_API_KEY |
Uses claude-sonnet-5 |
| OpenAI | OPENAI_API_KEY |
Uses gpt-5.6-terra |
| Ollama | (none, local) | Experimental. Needs Ollama running locally; defaults to qwen2.5:14b. Override with AUTOFILL_OLLAMA_MODEL; point at a remote host with OLLAMA_HOST. Smaller models (≤7B) tend to misfill fields; 14B+ recommended. |
autofill 'https://example.com/register'The agent opens a browser, fills the form, and leaves it open for you to review and submit.
Always wrap the URL in single or double quotes. Bare URLs with
?or&are interpreted by the shell;&backgrounds the command and your URL gets truncated. Quoting hands the full URL to autofill verbatim.
autofill --provider anthropic 'https://example.com/register?ref=xyz' # override providerautofill uninstallautofill has been tested with:
- Generic single-page HTML forms (Google Forms, Typeform, etc.)
- Hosted-form platforms: Greenhouse (
*.greenhouse.io), Lever (jobs.lever.co), Ashby (jobs.ashbyhq.com), Workable (apply.workable.com)
These now work. autofill runs in a persistent browser profile (~/.autofill/browser-profile), so your logins are remembered across runs.
-
Import your Chrome logins (optional). During setup, autofill offers to import your existing Chrome cookies (sessions, never passwords) so it starts already signed in to sites you use. Best-effort: if Chrome's cookie store can't be read on your system, just use the manual flow below.
-
Sign in once per site. When the agent hits a sign-in or sign-up wall:
- It stops and waits; it never types your credentials itself.
- You log in (or create the account) manually in the open browser window, handling any MFA, then press Enter in the terminal.
- The agent reloads the form, now authenticated, and fills it.
Because the session is saved, later runs go straight to the form.
- CAPTCHAs: Cloudflare challenges, reCAPTCHA, and similar bot checks halt the agent. The browser stays open so you can solve them manually, but the agent won't resume automatically.
- Very long multi-step forms: supported up to ~50 LLM steps (configurable in
Config.agent_max_steps); longer forms may exhaust the budget before reaching the final review screen.
- The agent will not click Submit; you always review first
- Learns from your corrections: edits you make before submitting are remembered for next time
- Run
autofillagain any time to re-run setup if something is missing - Edit
knowledge/profile.mdor add files toknowledge/to update your info; the database re-indexes on each run - Any
.pdf,.doc, or.docxinknowledge/is offered to the agent for file-upload fields; it picks which file matches which upload based on form labels knowledge/lives inside the install directory (~/autofill/by default);.envlives in~/.autofill/, so your API key survives an uninstall and reinstall
Your profile and documents stay on your machine; autofill reads them locally and stores corrections locally. Relevant excerpts are sent to the LLM provider you configured (Browser Use, OpenAI, or Anthropic) so it can fill in form fields; that content is subject to your provider's data-handling policy. Choose the Ollama provider to keep everything on your machine, so no profile excerpts leave your network. Passwords, SSNs, and similar sensitive fields are stripped before any corrections are saved.
Usage stats are off unless you turn them on. Setup asks once, the default answer is no, and nothing is sent before you answer. If you say yes, autofill sends anonymous events (tool version, OS, LLM provider, whether a run completed) to help prioritize development. No personal data, no form content, no URLs.
Change your mind either way by re-running autofill and going through setup again, or by setting the variable directly:
# zsh
echo 'export AUTOFILL_TELEMETRY=0' >> ~/.zshrc # 1 to enable
# bash (Linux)
echo 'export AUTOFILL_TELEMETRY=0' >> ~/.bashrc
# bash (macOS)
echo 'export AUTOFILL_TELEMETRY=0' >> ~/.bash_profileThen open a new terminal.
Crash reports (Sentry) are off by default: autofill handles personal profile data, and stack frames can incidentally capture anything in scope, so we don't ship them unless you ask. If you'd like to send crash reports to help fix bugs, opt in with AUTOFILL_SENTRY=1:
echo 'export AUTOFILL_SENTRY=1' >> ~/.zshrc # or ~/.bashrc / ~/.bash_profileFound a bug or have a feature idea? Open an issue. There are templates for both. PRs welcome; start with CONTRIBUTING.md for setup and AGENTS.md for architecture. MIT licensed.