Skip to main content
Akron exposes developer-facing console commands through Everest’s debug console and DebugRC. These commands route into Akron’s runtime services and exist for QA, live verification, and automation.
Debug commands are not a player-facing UI. Player-facing documentation covers overlay rows and Everest mod options. Commands serve development, testing, and controlled verification contexts only.

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:
The session token must contain at least 32 characters. The first non-comment line in command.txt must repeat it with a token: prefix:
The queue accepts only commands in Akron’s internal automation allowlist. It rejects command files larger than 64 KiB, files with more than 128 lines, runs with more than 64 commands, and command lines longer than 2,048 characters. Each physical line contains one command. Unquoted arguments are literal, whitespace-delimited tokens; backslashes in an unquoted Windows path stay literal. An argument beginning with " 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.
The first example passes one exact room name, including both leading and trailing spaces and the decoded CR/LF. The quoted Windows path must double every backslash: "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.
Command-only controls should not appear in player tutorials unless a normal UI path exists first.