Exposure levels
Common UI mirrors
Command-only or automation-first
Room inventory and warping
Both commands require a loaded level.akron_qa_list_rooms [offset] [limit] defaults to offset 0 and limit 100.
The offset must be a nonnegative integer; the limit must be an integer from
1 through 100. Invalid arguments print the command’s usage without listing
rooms. The offset is a zero-based index into the map’s room entries. Null and
dummy entries are skipped, so a page can emit fewer names than its limit.
Each room is reported as qa-map-room: <JSON string>. Decode that JSON string
to recover the exact name, including whitespace and escaped characters. Every
page ends with qa-map-rooms-next: <offset>: pass that offset to the next call,
or stop at -1. An offset at or beyond the end returns no names and -1.
Do not infer completion from an empty page alone.
akron_qa_warp_room <room-name> looks up the supplied name without trimming
it. Use the decoded inventory name exactly, encoded as a JSON string argument
when using the file-backed queue described below. Empty input reports
qa-warp-room: missing room; an unknown name reports
qa-warp-room: not-found room=<name>. A valid name schedules the warp for the
end of the frame and reports qa-warp-room: room-json=<JSON string>. JSON-decode
the acknowledgement before comparing it with the requested name; it preserves
quotes, backslashes, leading/trailing whitespace, and CR/LF in the actual room
name. That line acknowledges the request; it does not prove the room has
finished loading.
Extended gameplay commands
Camera and visual commands
Hitbox and HUD commands
Input and utility commands
Setup, theme, and settings commands
Diagnostic reports
akron_diagnostics defaults to status. It uses the same form and confirmation prompt
as Send diagnostics:
Edit the optional issue fields in the form before sending. See
Send diagnostics to a maintainer
for included data and privacy limits.
Community pack commands
list prints the currently filtered zero-based entries. import downloads the selected .akr and imports it through the same scoped path as the in-game button.
File-backed automation queue
When DebugRC’s/console endpoint is unreliable, Akron can process a file-backed queue on the game thread.
The queue is disabled by default. Start Celeste/Everest with both variables set:
command.txt must repeat it with a token: prefix:
" must be one complete JSON string
token, followed by whitespace or the end of the line. There is no shell-style
quote concatenation or single-quote syntax.
Use a JSON encoder for arbitrary argument values rather than surrounding them
with quotes yourself. JSON strings preserve empty strings (""), leading and
trailing spaces, tabs, and CR/LF after decoding. Encode embedded quotes as
\", backslashes as \\, and line breaks as \r and \n; never put a literal
line break inside an argument in the command file. In Python, use
json.dumps(value, ensure_ascii=False) so Unicode names do not needlessly
expand against the command-line limit.
The repository’s verification and perf shell harnesses require local python3
for this encoding.
"C:\new\test.akr" would decode \n and \t as control
characters instead of path separators. Bare Windows paths need no escaping,
but cannot contain whitespace.
Malformed JSON, including invalid escapes, unescaped control characters, or
an unterminated string, rejects the entire command file before any commands
are queued. Text concatenated to a closed quoted token, such as "room"suffix,
is also rejected; separate arguments with whitespace.
Akron executes one command per frame so structural actions such as load or room transitions do not stack unsafely inside a single update.
Verification scenarios
Commands support repeatable live verification scenarios:- Show the overlay before screenshots.
- Drive settings without relying on fragile input.
- Exercise StartPos, freeze, hitbox, inspector, and proof surfaces.
- Refresh and import community packs.
- Capture proof sidecars for comparison.