Limits and plans live
There is no billing and no paid plan in Gitstalk today. These are the limits of the managed beta, and a self-hoster sets every one of them.
GitHub Actions
Details are on GitHub Actions; what each job runs on is in Runners.
| Limit | Value | Where it comes from |
|---|---|---|
| Minutes per repository per month | 100 |
ACTIONS_MONTHLY_MINUTES in the gateway config. Each job is rounded
up to a whole minute. Once they are used, Run workflow and re-runs are
refused, and jobs started by a push or a schedule end as
startup_failure.
|
| Job timeout | 60 minutes |
ACTIONS_JOB_TIMEOUT_MINUTES. A job without
timeout-minutes gets 60; a larger one is capped, and the report
says so.
|
| Concurrent jobs per repository | 4 | ACTIONS_CONCURRENT_JOBS |
| Job containers across the service | 16 |
max_instances in the executor Worker config. A job that finds none
free waits up to 5 minutes.
|
| Matrix legs per job | 16 | Fixed in the gateway code |
runs-on |
ubuntu-latest, ubuntu-24.04, ubuntu-22.04
|
Fixed in the gateway code. All three run the Ubuntu 24.04 image. |
| Schedule interval | At least 5 minutes | Fixed in the gateway code |
| Job container | Cloudflare standard-4: 4 vCPU, 12 GiB, 20 GB |
Executor Worker config. No workflow can pick another size; see Runners. |
| Log retention | 30 days | Set by an R2 lifecycle rule on the log bucket. Unverified in code: stated in the design doc. |
| Workflows listed per repository | 50 | Fixed in the gateway code |
Dependency cache
Details are on Dependency cache.
| Limit | Value | Where it comes from |
|---|---|---|
| One snapshot, compressed | 4 GiB |
Default of DEPS_SNAPSHOT_MAX_BYTES; a repository or org sets
GITSTALK_DEPS_SNAPSHOT_MAX
|
| Snapshots per repository | 10 GB |
DEPS_REPO_MAX_BYTES in the executor config; least recently restored
are evicted
|
| Unused snapshot | Deleted after 7 days | DEPS_IDLE_DAYS in the executor config |
Memory for node_modules |
6 GiB | DEPS_TMPFS_MAX_BYTES in the executor config |
Pre-land checks
Details are on Checks.
| Limit | Value | Where it comes from |
|---|---|---|
| Image | node only (Node 25.8.1) |
The runner image |
| Suite time limit | 300 s by default, 1 to 1,800 |
timeout-minutes (up to 30) or timeout-seconds in
checks.yml
|
| Command |
Starts with node and includes --test; at most 64
arguments of 500 characters
|
run in checks.yml |
| Environment variables | 32 names, values up to 4,000 characters | env in checks.yml |
| Protected path patterns | 100, each up to 200 characters | protected-paths |
| File size | 16,000 characters | The parser |
| Pre-land checks at once per repository | 32 (1 to 64) | Repository engine setting preland_sandboxes |
| Validations at once | 2 (1 to 16) | ci_slots |
| Runner containers in the shared pool | 48 |
RUNNER_MAX_INSTANCES and max_instances in the gateway
config
|
Automations
Details are on Automations.
| Limit | Value | Where it comes from |
|---|---|---|
| Run timeout | 30 minutes by default, at most 60 | timeout-minutes, capped at the job timeout |
| Model turns | 40 by default, 1 to 500 | max-turns |
| Spend per run | $0.50 by default, at most $5 | max-cost-usd |
| Spend per repository | $10 per month | AUTOMATIONS_MONTHLY_USD in the gateway config |
| Container minutes | Shared with Actions: 100 per month | The same meter as Actions |
| Memory | 50 MiB | Fixed in the gateway code; a larger memory is not saved |
| Prompt or script | 32,000 characters | The file parser |
| Secrets named | 20 | The file parser |
| Filter globs |
50 per filter, 200 characters each; up to 200 changed files read for
paths:
|
The file parser and the gateway |
Pushes and waiting
Details are on Git compatibility.
| Limit | Value | Where it comes from |
|---|---|---|
git push -o wait |
600 s by default, up to 1,800 s | Gateway push options |
| A push to a wait ref | 540 s by default | Gateway push options; kept under a 10-minute tool call |
MCP and agents
Details are on MCP tools and scopes. The tool surface is beta, so counts can change.
| Limit | Value | Where it comes from |
|---|---|---|
| Tools per caller |
Run view token 7, run contributor 12, session with read 19, with
write 27, with write and secrets 29
|
MCP server README, asserted by its tests |
bean_commit |
64 paths and 192 KiB per commit | Shared contract in the code |
repo_read |
20 paths per call; about 25k tokens of a file; about 8k tokens of a grep page | MCP server |
bean_wait, actions_wait_for_run |
Up to 1,800 s; the Actions wait defaults to 600 s | MCP server |
actions_job_log |
Newest 80 lines by default; at most 2,000 lines or 48,000 bytes | MCP server |
| OAuth access token | 15 minutes | MCP server README |
| Agent session | Refresh keeps it for 30 idle days | MCP server README |
Accounts, uploads and invitations
| Limit | Value | Where it comes from |
|---|---|---|
| Pictures (avatar, org icon, social image) | PNG, JPEG, WebP or GIF; 2 MB; 4,096 px on a side; SVG refused | Shared media code |
| Invitations | Wait 14 days | Collaborator and org code |
| Handle change | Once a day | Profile code |
| Personal access token and deploy token expiry | 7, 30, 90 days or 1 year, picked when you make it | Token forms |
Plans
Gitstalk has no pricing page, no checkout and no usage billing. The Actions minutes and the model spend above are caps, not charges. If that changes, this page will say so before it happens.