Open the app

Language

For players

Reference Beta · Founding Creators

Keys and limits

Works on the server; opens to everyone together with the kit. The numbers are copied from the server's config by hand until this page is generated.

Become a Founding Creator
Open llms.txt

Every limit a place's code or a personal key runs into, and what you see when you hit it.

Personal keys

Issued by the place's owner in the app: Code of this place → Claude Code / Codex → Issue a key.

PropertyValue
Formathwk_ + 43 characters (32 random bytes, base64url)
ShownOnce, at issue. The server keeps only its hash and last 4 characters
Places per key1 to 20 of the owner's places (the app issues one key per place)
Lifetime1, 7 or 30 days in the app; 7 by default
Rightsdraft (default): upload drafts. draft+activate: also enable versions, only if the owner ticks "The agent may enable versions"
Live keys per owner20
New keys per owner10 an hour
RevokeIn the same sheet, Revoke. A revoked key gets 401 keys.revoked

What a key opens

Requestdraftdraft+activate
Upload a version (place-kit push)Yes, as a draftYes, as a draft
Read the code (place-kit pull)YesYes
Read and write the READMEYesYes
Enable a versionNoYes
Anything else (the place's agent, paid actions, issuing keys)NoNo

A key sent to anything else gets 401 keys.denied.

Request limits

LimitValueError
Requests per key60 a minute429 keys.rate
Pushes per place10 a minute429 keys.rate

Code size

PartLimitWho changes it
Server part, built64 KB (65 536 bytes, UTF-8)Nobody, for now
Client part, built64 KB by defaultAn admin, on the owner's request, up to 512 KB

place-kit build --client-limit <bytes> builds against your place's raised limit. push reads the place's real limits from the server first and refuses a part that's over.

Per event (server part)

LimitValue
CPU50 ms
Memory16 MB
this.emit16 calls, payload 4 KB each
world.animate16 calls
world.look16 calls
Physics (drop, push, throw, launch)4 calls
world.sound4 calls
world.burst2 calls
Live prop calls64
this.ask1 call, prompt 4 KB, answer up to 300 tokens
console.log1 KB to the owner's log

Per place

LimitValue
this.state64 KB JSON
e.player.state4 KB per player
Timers32; intervals under 1 s are raised to 1 s
Room writes (setPiece, addPiece, kept motions)1 a second; later ones wait their turn
Pieces in a room200
Personal pieces16 per player
Running motions32; up to 4 layers per piece, 32 layers per room
Running looks8
Highlights4 at once
Live props64
Reported prop hitsabout 1 a second on average
Player answers to sheets20 a minute
onNearby events60 a minute
Pushes (notify)3 per player and 100 per place a day; 1 per player per 5 minutes
this.askA daily cost cap per place (error: 'quota')
Players in one roomWrite for up to 24

Manifest (server class statics)

StaticLimit
texts200 keys; key [a-zA-Z0-9_.], 40 characters, not starting with space.; text 300 characters
commands16 commands; 8 examples each, 80 characters each
assets64 files; key [a-zA-Z0-9_], 40 characters
shared16 names
boards4
thresholds8 ascending marks per name

Client part

LimitValue
this.net.action60 a minute
Timers50 ms minimum
Labels16 at once, 36 characters shown
Buttons4 at once, gone after 5 s or on press
Bars2
Plates (ui.say)One at a time, 3 s apart

Errors

ErrorMeaningWhat to do
401 keys.expiredThe key's lifetime endedAsk the owner for a new key
401 keys.revokedThe owner revoked itAsk the owner for a new key
401 keys.deniedWrong key, a place not on the key, or a request a key can't makeCheck place.json and the key
429 keys.rateToo many requests or pushesWait a minute
400 script.too_bigA part is over the place's limitMake it smaller, or ask the owner to request a higher client limit
script.no_partsNothing to sendRun place-kit build
script.no_versionNo such version, or none active yetNormal on a place with no code; push first
script.version_raceAnother push took this version numberPush again

Docs