Skip to content

Limits and defaults

  • Configurable: a variable from Configuration, or “No” for a constant in the code.
  • Per runner: the count resets when the session’s runner restarts (idle exit, !restart).
  • Memory and CPU: to change them, see Resource limits.

Slack, sessions and the computer

AreaLimitValueSet inConfigurable
RunnersIdle time before a runner exits2 hourssrc/host/main.tsSP_IDLE_MS
RunnersSpare runners kept for new sessions2src/host/main.tsSP_POOL_SIZE
RunnersGateway’s wait for the host to start a runner30 ssrc/gateway/hosts.tsNo
MemoryOne runner, MemoryHigh / MemoryMax60% / 75% of RAM, at most 12G / 16Gsrc/host/runner-limits.tsSP_SYSTEMD_RUN
MemoryAll runners together, MemoryMax93% of (RAM minus a reserve of 10% of RAM, at least 1024 MiB)deploy/vm/limits.shNo
MemoryAll runners together, MemoryHigh93% of its MemoryMaxdeploy/vm/limits.shNo
MemoryEverything the agent user runs (user-1500.slice), MemoryMaxRAM minus a reserve of 10% of RAM, at least 1024 MiBdeploy/vm/limits.shNo
MemoryEverything the agent user runs, MemoryHigh93% of its MemoryMaxdeploy/vm/limits.shNo
MemoryAPI relay, MemoryMax256Mdeploy/vm/provision.shNo
MemoryHost, MemoryMaxRAM / 8, between 768 MiB and 2048 MiBdeploy/vm/limits.shNo
CPUAll runners together, CPUQuota(CPUs - 2) x 100%, at least 100%deploy/vm/limits.shNo
CPUEverything the agent user runs, CPUQuota(CPUs - 1) x 100%, at least 100%deploy/vm/limits.shNo
CPUOne runnerno limit
ProcessesAll runners together, TasksMax16384deploy/vm/limits.shNo
ProcessesEverything the agent user runs, TasksMax20000deploy/vm/limits.shNo
ProcessesAPI relay, TasksMax256deploy/vm/provision.shNo
GatewayMessages kept for an offline host24 hourssrc/gateway/db.tsNo
GatewayHost reconnect backoff1 s, doubling to 30 s, with jittersrc/host/gateway-link.tsNo
Gateway/setup sign-in cookie lifetime12 hourssrc/setup/index.tsNo
GitHousekeeping period (clone, fetch, fast-forward, prune)5 minsrc/workspaces/index.tsSP_FETCH_INTERVAL
GitHousekeeping fetch timeout2 minsrc/workspaces/index.tsSP_FETCH_TIMEOUT
GitHousekeeping fetches at once4src/workspaces/index.tsNo
GitFetch timeout at session start5 ssrc/workspaces/index.tsSP_FORK_FETCH_TIMEOUT
GitSession start skips its fetch if the clone was fetched within60 ssrc/workspaces/index.tsSP_FORK_FETCH_FRESH
GitClone and setup command timeout30 minsrc/workspaces/index.tsNo
GitIdle session directory removed after, if nothing is uncommitted or unpushed14 dayssrc/workspaces/index.tsSP_FORK_RETENTION_DAYS
GitIdle session’s build and dependency directories removed after24 hourssrc/workspaces/idle.tsSP_ARTIFACTS_IDLE_HOURS
ContextCompaction between turns starts above120,000 tokenssrc/runner/harness/claude/shadow.tsSP_COMPACT_AT
ContextCompaction after an idle period40 min idle, above 60,000 tokenssrc/runner/harness/claude/shadow.tsToken threshold follows SP_COMPACT_AT when that is lower
ContextCompaction attemptsat most 3 per hour, 2 min apartsrc/runner/harness/claude/shadow.tsNo
ContextClaude Code auto-compact window (inside a turn)183,000 tokens; compacts at about the window minus 33,000src/runner/context-window.tsSP_CONTEXT_WINDOW
ContextPrompt cache lifetime1 hour on Anthropic’s APIsrc/runner/cache-ttl.tsSP_PROMPT_CACHE_TTL
Slack outputInterval between flushes of a streamed reply600 mssrc/runner/segment.tsFLUSH_MS (one-machine mode)
Slack outputReply length before a new message is started9,000 characters at a break, 10,000 at mostsrc/runner/segment.tsNo
Slack outputProgress cards in a message before the turn folds into its history4src/runner/timeline.tsFOLD_AT
Slack output!diff outputfirst 11,000 characterssrc/runner/commands.tsNo
Slack inputImages passed to the model inlinePNG, JPEG, GIF or WebP up to 5 MiBsrc/runner/attachments.tsNo
Slack inputLinked Slack threads read from one message3src/links.tsNo
Slack inputContent read from one linked threadfirst message plus the latest 40 replies, 16,000 characters, 4,000 per messagesrc/links.tsNo
Slack inputWait for linked threads before the message is delivered without them10 ssrc/gateway/routing.tsNo
Agent toolsThreads started with spawn_thread8 per runnersrc/runner/spawn.tsNo
Agent toolsPosts to other threads with post_thread20 per runner, 4,000 characters eachsrc/runner/threads.tsNo
Agent toolsSecrets asked for with request_secret10 per runnersrc/runner/session-secrets.tsNo
Agent toolsThreads read with read_thread40 per runnersrc/runner/threads.tsNo
Agent toolsFiles posted with send_file50 per runner, 100 MiB each, not emptysrc/runner/send-file.tsNo
Agent toolsCards posted with post_card50 per runnersrc/runner/post-card.tsNo
Agent toolsGateway time for one thread read or post25 ssrc/gateway/threads.tsNo
SecretsSecret or variable value64 KiBsrc/gateway/vault.tsNo
SecretsValue typed into the Slack form3,000 characters (Slack’s input limit)src/gateway/secrets-ui.tsNo
SecretsValue set with !var3,000 characterssrc/variables.tsNo
SecretsInactive session’s session-scoped secrets deleted after30 dayssrc/gateway/vault.tsNo
TelemetrySpool on disk100 MBsrc/host/telemetry-spool.tsNo
ReleasesSuperseded release removed by provision.sh after2 days, when no process uses itdeploy/vm/provision.shNo
Data volumeFilesystem growth check1 min after boot, then every 10 mindeploy/vm/grow-data.shNo

API

Connection, terminal, file and queue limits: API schema. None is configurable.

LimitValueSet in
Forced cancel after an interrupt the harness does not act on10 ssrc/runner/api/api.ts
Wait for a suspended session’s runner to start60 ssrc/host/api-wake.ts