Skip to main content
This page collects the common config edits for the Gastown pack — the changes you reach for while editing files. The conceptual migration story, including how Gas Town roles and mechanisms map onto Gas City primitives, lives in Coming from Gas Town; for the primitives themselves, see The six primitives. Gastown agents by scope: city-scoped agents (mayor, deacon, boot, dog) load from [imports.gastown]; rig-scoped agents (witness, refinery, polecat) load from a rig import; crew are individually named directory agents plus a named session that you add yourself.

Common Gastown Overrides

If you are using the Gastown pack, these are the most common local changes.

Register a rig

Import the Gastown pack in the root pack, then bind rigs in city.toml and with gc rig add:

Increase or shrink scalable polecat sessions

This is the cleanest answer to “I want more or fewer polecats for this rig.”

Change the provider for one rig’s polecats

You can combine that with session scale overrides, env, prompt changes, or hook changes on the same override block.

Change a city-scoped Gastown agent

City-scoped agents such as mayor, deacon, and boot are easiest to tweak with patches:
Use patches when the target is already a concrete city-scoped agent. Use [[rigs.patches]] when the target is a pack agent stamped per rig. idle_timeout and max_session_age have no effect on mayor, deacon, boot, or witness: the Gastown pack runs them as always-on named sessions (mode = "always"), and the orchestrator keeps those running.

Stop boot from restarting

The Gastown pack’s boot agent is the deacon’s watchdog. It runs as an always-on named session that wakes fresh, checks the deacon, and exits, so the orchestrator keeps starting it again. An idle_timeout on it changes nothing. To stop it, suspend it:
Add the patch to city.toml yourself. boot is defined by the Gastown pack, so on a city the supervisor runs (no [api] port in city.toml), gc agent suspend gastown.boot does not write the patch: it exits with agent "gastown.boot" is defined by a pack — use [[patches]] to override. Suspending boot turns off its deacon check. To turn it back on, delete the patch.

Add a named crew agent

Crew is usually city-specific, so it often belongs in the root city pack rather than in the shared Gastown pack:
That keeps the shared pack generic while still letting your city have named long-lived workers.

Change a prompt, overlay, or timeout without forking the pack

This is what rig overrides are for:
For prompt or overlay replacement, patch the imported agent from your root city pack rather than editing the shared pack in place. If that change turns out to be broadly useful across cities, that is when it should move into the pack.

Default a formula var for one rig

Rig-scoped formula_vars fill formula [vars] values when a formula runs in that rig and the caller passed no explicit --var. They beat formula-level defaults and lose to --var flags; gc formula show renders them as (rig default="...").
To layer the same change from a patch, use [[patches.rigs]] — the formula_vars merge is additive, so unrelated keys are preserved:

Change an agent’s default sling formula

default_sling_formula names the formula sling applies automatically for an agent. Override it per rig:

Disable or retime a pack order

The Gastown pack ships the digest-generate order (cooldown trigger, every 24h). Skip it everywhere it is discovered:
Or retime it with an override. An override with no rig matches only the city-level instance; rig = "*" matches every instance; a rig name matches that rig’s instance:
Use skip or an override for a given order, not both: skip removes the order before overrides apply, so an override that names it matches nothing and fails.

A Complete Gastown Example

The overrides above are fragments — single edits you splice into an existing config. This section assembles them into a full, runnable topology: the three files that express the whole Gastown pack on Gas City. Read them in order. The city file is the normal starting point — the deployment you boot. The root pack wires the Gastown import and the default rig binding behind it, plus the builtin core and bd imports gc init pins (gc doctor --fix repairs them). The nested pack holds the reusable defaults — the roles, named sessions, and dog pool every Gastown city inherits. All three use the current pack layout (schema = 2, agents/<name>/).

city.toml — the deployment

pack.toml — the root pack

The gastown pack — the reusable defaults

The pack itself lives in the gascity-packs registry (github.com/gastownhall/gascity-packs, gastown/); its pack.toml looks like this:
Last modified on October 30, 2026