forge
server v1.0.88 · client v1.0.116 · socket v8 · claude v2.1.280 ↑ v2.1.290 available
15 agents · 3 tasks · 16 projects
gateway
bound :8787
inference listener
server
127.0.0.1:8790
connect elsewhere
dictation
2 models
cohere loaded · take 08:17
accounts
6 ready
probed 08:16
extensions
22 plugins
1 update waiting
settings
read-only
the effective config
needs you 1
working 2
asleep 2 ›

states reference · the vocabulary the fleet's marks draw, none of it live

Every seat state the fleet's rows can carry - the mark is the strongest of a project's seats, drawn from this same set - and the same shapes the rail's rows use. This is what an implementation has to cover; the live page below shows only the states that are true right now.

the core's last fatal drawn above the header: the page is served by a forge that has stopped, whose words ride the home wire

forge stopped: Failed to establish or maintain the Agent SDK bridge connection.

state marks one shape per meaning, so colour is never the only signal

  • working a turn is in flight, or background work is running now
  • starting the subprocess is coming up - slower and dimmer than working spawning
  • idle alive, nothing in flight - no motion, so motion always means work 17m
  • finished a turn completed and you have not looked at it yet 4m
  • needs you asked you a question 2m
  • needs you a permission prompt is waiting 6m
  • needs you rate limited; retrying at 14:05 4m
  • sign-in needed waiting on /login before it can start 12m
  • failed the bucket died and is kept only so you can see why failed
    OAuth token expired; run /login to retry
  • turn failed a turn ended in failure and you have not opened the seat 9m
  • session ended a session on the seat ended and you have not opened it 6m
    the claude subprocess closed its output stream
  • asleep no session - it starts again when you ask it to 8h
  • never started no session has ever run here never

an agent one row shape, the same for a lead and a worker

  • api-gateway main · 7 files Rewrite the retry backoff so a 429 does not burn the window in progress PR 9412 now
  • taskless worktree-taskless · 3m

a project that cannot start a spawn is refused, and the row says which refusal

  • notes no model declared - add `model` to this project 5d
  • web-api no usable accounts 2d

missing pieces what a row shows when the data behind it is not there

  • dotfiles not a git repository, so there is no branch to show 6h
  • steward its working directory is not there 3d

a worker under its project hierarchy is the indent, and nothing else moves - the branch is the target; #1271 is what brings a worker's own tree to the code

  • hub-modules main now
    • em-dash-sweep worktree-em-dash-sweep Sweep the memory corpus for banned dashes and curly quotes in progress now

the system band one card per service, quiet until it is not

gateway
bound :8787
inference listener
web
127.0.0.1:8790
this page
dictation
2 models
cohere loaded
accounts
6 ready
probed 3m ago
gateway
binding
inference listener
web
off
enabled = false
dictation
3.07 GB
fetching s1-mini · first run
accounts
5 ready · 1 at cap
Zai resets in 41m
gateway
failed :8787
address in use
dictation
hash mismatch
s1-mini-f16.gguf
accounts
4 ready · 2 bailed
auth failed or expired
web
127.0.0.1:8790
1 tab attached

upstream sits above the band, and only when there is something to say: the core's held service status, which the snapshot carries to a client that attached after it was raised

claude status Elevated error rates on the Messages API. Sessions may fail and retry.
claude status A major outage on the Messages API. Sessions will fail.

a forge on another protocol the shell's own line, above whatever page is drawn: the connection is live and nothing is refused, so it names the command that updates the stale half rather than stopping

this forge server is v1.1.6+6d6a71b55 (protocol 7); this client is v1.1.8+2fed5f872 (protocol 8). In the forge checkout run just install and restart forge.

the update check its own lines beside the client build - in flight it says so, and a failure carries the shell's words: silence would read as a build that is current, so the reason is what separates the two

client v1.0.116 checking for updates...
client v1.0.116 update check failed - the release could not be reached

nothing configured a fresh install, before any project exists

No projects yet

Projects come from forge.toml. Add an [[orgs.projects]] entry pointing at a repository, and it appears here.

what is configurable one place in forge.toml, picking by name from what forge ships

mark panes · klin · lanes · f_slab · split · spine · grid · clamp · strike · nest · chamfer · tally · stencil_f
motion not configurable: the working mark turns in 900ms, the starting one in 1500ms, and that difference is how this page tells them apart
theme dark
the palette below. a second palette is its own pass, since every state colour needs a treatment that stays legible on the new background
unknown name a boot failure with the key and the value named, never a quiet fallback - a setting that is ignored reads as the key not working

the palette the tokens a theme resolves to; dark is the one shipped so far

--bg#04050a
--s1#0d111a
--s2#141926
--s3#1b2130
--sel#20140a
--line#222a3c
--ctl#516590
--dim#788294
--muted#8f98a8
--text#c9d1d9
--accent#f47600
--ok#82c76b
--warn#c9a13b
--bad#e0683e
--blue#61a0e0
--teal#4ec9c9
--violet#b79ae0
--hot#ffb058

Surfaces draw their colours from these eighteen tokens, so a theme is one place to change and no component needs a branch for it. The one exception is the call-body diff, whose two grounds the sheet declares for itself. [client] theme in forge.toml picks one by name; the greeting carries the name, and the client resolves that set onto the page's root as inline custom properties.