Enter the 6-digit code from your authenticator app.
CodeUse another method
Monthly invoice export
https://app.example.com/verifyhttps://app.example.com/billing/invoices
Agent has control
OPEN SOURCE. HUMAN IN THE LOOP.
Full Chrome on your own server, with your logins and extensions saved. Its setup is designed to avoid unnecessary automation signals. When your agent hits a sign-in, take over and hand the same browser back.
Free and open source. Runs on Railway or any Docker host.
01HOW IT WORKS
Chrome DevTools MCP provides the browser tools. Tallylamp gives them one Chrome that stays signed in, on a server you run.
Sign in once. The profile saves itself, so cookies survive restarts and redeploys. Each site still decides when a login expires.
How profiles persistStep in for sign-ins and 2FA. Watching is read-only. While you hold control, the agent can’t change anything until you hand the browser back.
The sign-in handoffHand a sign-in to a colleague. A single-use link gives them one browser for 15 minutes to a day, long enough to clear a 2FA prompt on their phone. They can use every login saved in it, so share one that holds nothing else.
Share a browserOne token per agent. Each has its own scopes and browser cap. Profile copies and tunnels stay off until you allow them.
Agent permissionsNo headless build. Tallylamp starts standard Chrome with a display and no extra automation flags. Sites can still detect or block automation.
What the browser realism tests showShare a tab from your own browser. Tallylamp Link works in Chrome, Edge and Brave. Agents you tick get that tab and no other.
Link your own browser02YOUR EXTENSIONS
Switch to Full browser to see Chrome’s own window. Pin an extension there and a persistent browser keeps it through every restart. Shown here: Dray, in public beta.
03FROM DEPLOY TO FIRST HANDOFF
The Railway template sets up the service, HTTPS and a disk for profiles.
Once the template is running, copy ADMIN_SECRET from its service variables and keep it as your dashboard password.
Sign in at your new domain, create an agent and paste its token into your client’s config. OAuth clients can skip the token.
claude mcp add --transport http \
--header "Authorization: Bearer YOUR_AGENT_TOKEN" \
tallylamp https://YOUR_HOST/mcpHighlighted values are yours to replace. Client compatibility
Ask your agent to open a site that needs a sign-in.
tallylamp_create_browser { "name": "billing" }Browser billing is running. Its profile is saved.navigate_page { "url": "https://app.example.com" }Sign-in page. The agent asks you to take control.click { "uid": "1_7" }browser is controlled by a human; retry laternavigate_page { "url": "https://app.example.com/billing" }Billing, signed in. The session stays in this profile.04YOURS TO RUN
Free under the MIT license. Your only bill is your host’s.
MIT
Free to run and change. Read every line before you trust it with a login.
Read the license1–2 GB
Per active Chrome, plus the server. On Railway the 1,000-process limit usually runs out first. Pin the browser that must stay up, or add a worker for another 1,000.
Plan memoryPinned
You choose when to upgrade. The template pins an image digest, so our pushes never reach your install.
How updates workPrefer your own host? Run the image anywhere Docker runs. Keep the volume and you keep the profiles.
Self-host with Dockerexport ADMIN_SECRET="$(openssl rand -hex 32)"
# Save ADMIN_SECRET in your password manager.
docker run --rm --platform linux/amd64 \
-p 127.0.0.1:8080:8080 \
-e ADMIN_SECRET \
-e TALLYLAMP_PUBLIC_URL=http://127.0.0.1:8080 \
-v tallylamp-data:/data \
ghcr.io/nxfi777/tallylamp:0.11.6No. Profiles are saved by default, with no separate save step. Reuse the same browser and its cookies survive stops and redeploys, as long as the data volume stays attached. Sites can still expire a session.
A snapshot other browsers can start from. Saving one briefly pauses the browser. The copy carries every saved login but not proxy settings, and some sites will ask for a fresh sign-in. Agents need permission to use templates.
Yes, HTTP or HTTPS, with optional credentials. Stop the browser before you change it. A failed proxy never falls back to a direct connection. SOCKS and PAC aren’t supported, and DNS resolves on the server. Proxy passwords sit unencrypted in SQLite, so protect the data volume and its backups.
Not by default. Chrome runs on your server, so localhost means the server. For a local OAuth callback, open a loopback tunnel from your machine to one host and port. It needs the browser:tunnel scope and expires after an hour. While it’s open, any page in that browser can reach that address, so close it when you’re done.
An agent with control can use every account signed into its browser, and an installed extension can read those pages too. Browsers in one deployment share a container, so they’re less isolated than separate virtual machines. On Railway, Chrome’s renderer sandbox may be off. Read the security model first.
No. Tallylamp doesn’t solve CAPTCHAs or hide automation, and sites can still block it. When a site wants a human, take control and do that step yourself.