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.

Tallylamp guides4 min readUpdated

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.

  1. Start with a small fleet

    Run a couple of browsers first, and set TALLYLAMP_MAX_BROWSERS while measuring a constrained host.

  2. 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.

  3. 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

Current application defaults
VariableDefaultPurpose
TALLYLAMP_MAX_BROWSERSNo cap (unset or 0)Caps active browsers across the deployment when set.
TALLYLAMP_IDLE_TTL_SEC900 seconds / 15 minutesStops idle browsers with no attached client or viewer.
TALLYLAMP_ATTACHED_IDLE_TTL_SEC14400 seconds / 4 hoursApplies while MCP, a watcher, or a human controller is attached.
TALLYLAMP_MCP_SESSION_IDLE_SEC600 seconds / 10 minutesCloses stale MCP sessions after a client disappears.
TALLYLAMP_SHED_IDLE_SEC300 seconds / 5 minutesOn 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.

YOUR NEXT STEP

Put it to work.

Free, MIT-licensed software. You pay for your hosting.

Deploy on Railway