RUN IT WELL
Plan browser memory and idle timeouts
Budget roughly 1–2 GB per active Chrome, plus the server, and measure your actual workload. The number of saved profiles is different from the number of browsers consuming memory right now.
Measure the pages your agent will use
A static page and a large web app can have very different memory and CPU needs. More tabs, live viewers, and heavy page scripts also change the workload. A per-browser estimate is a starting point for planning, not a fixed resource allocation.
Run one representative task and check your host's memory and CPU charts. Repeat it with the live viewer open if that is how you work. Add another active browser only after you have seen the peak and left headroom for Chrome and the server.
Start with a small fleet
Run a couple of browsers first, and set TALLYLAMP_MAX_BROWSERS while measuring a constrained host.
Exercise the busy part
Load the actual web app, use its heaviest screen, and watch a normal agent task. Record peak memory as well as the idle reading.
Test stopping a browser
Stop Chrome and confirm that memory falls while the persistent profile remains. This shows whether your idle policy will free useful capacity.
Memory is not the only ceiling. Railway gives a service 1,000 processes and threads, shared by every browser on it, and they usually run out before memory does. A quiet Chrome uses about 200 and a busy one 600 or more, so how many fit depends on your pages. Tallylamp 0.9.0 and newer show each browser's share in the dashboard and stop idle browsers to make room for a start. Pin a browser that must stay up. From 0.10.0, a worker adds a second service's 1,000 when one is not enough.
Two idle timers, depending on attachments
Scroll across to see all settings
| Variable | Default | Purpose |
|---|---|---|
| TALLYLAMP_MAX_BROWSERS | No cap (unset or 0) | Caps active browsers across the deployment when set. |
| TALLYLAMP_IDLE_TTL_SEC | 900 seconds / 15 minutes | Stops idle browsers with no attached client or viewer. |
| TALLYLAMP_ATTACHED_IDLE_TTL_SEC | 14400 seconds / 4 hours | Applies while MCP, a watcher, or a human controller is attached. |
| TALLYLAMP_MCP_SESSION_IDLE_SEC | 600 seconds / 10 minutes | Closes stale MCP sessions after a client disappears. |
| TALLYLAMP_SHED_IDLE_SEC | 300 seconds / 5 minutes | On a host with a process limit, a browser unused this long may be stopped to make room for another. |
An open Watch tab counts as an attachment. It therefore uses the attached-idle limit instead of the ordinary 15-minute limit. Close viewers you no longer need, and check for stale client sessions when a browser seems to stay active.
An idle stop keeps persistent profiles on disk. Setting the unattached idle timer to zero disables that reaping policy; it can leave browsers consuming memory until another action stops them.
What your host bills for
Tallylamp has no software subscription. Hosting can include memory, CPU time, persistent storage, and outbound traffic. Live viewing sends image frames over the network, so a long watch session can add network usage as well as keeping a browser attached.
Check your host's current rates and your measured usage before setting a monthly budget. A browser cap limits concurrency; it does not by itself impose a spending limit. Use the host's own usage controls where available.
When there are no free browser slots
Look for an existing browser that fits the task before creating another. Stop idle Chrome processes that you no longer need, keeping their persistent profiles. Check the deployment's fleet cap and the requesting agent's cap, if either is set.
On a host with a process limit, a start that does not fit waits up to 30 seconds and shows as queued. Then it fails with fleet_full, and the error names the largest running browsers. Tallylamp has already stopped any idle ones by then, so the rest are in use. Stop one you can spare.
If the error says the administrator can reset the browser's thread counts, it was sized from an earlier start that used more. Press Reset under Processes and threads on its page, then start it again. An agent cannot reset a browser, so it asks you.
If the server runs out of memory even within those limits, lower concurrency and inspect the workload. Raising the fleet cap cannot create RAM.
Docs behind this guide
Based on Tallylamp's documented behaviour. See the source for API details and release-specific settings.