| name | cs2-vconsole-tester |
| description | Use when Codex needs to test or inspect a local Counter-Strike 2 (CS2) instance through the bundled VConsole TCP bridge script, including sending commands such as echo/status/cvar probes, reading parsed PRNT responses, showing raw payload hex, or comparing ASCII and hex responses. Trigger when the user asks to let AI test CS2, send VConsole commands, use the CS2 VConsole bridge as an MCP-like tool, debug CS2 console output, or validate VConsole packet behavior. |
CS2 VConsole Tester
Overview
Use the bundled bridge script as the local command bridge to CS2 VConsole. Treat it like an MCP-style endpoint backed by a CLI: run the script, send one VConsole command, read the response, and report the result.
Bundled script:
scripts\cs2_vconsole_bridge.py
Workflow
- Locate this Skill folder and use its bundled script at
scripts\cs2_vconsole_bridge.py.
- Run commands from the Skill folder, or pass the script path explicitly:
python -B scripts\cs2_vconsole_bridge.py "echo 12345"
- Prefer the default output first. It sends TCP to
127.0.0.1:29000, performs the VFCS handshake, flushes old console output, sends a CMND packet, parses PRNT frames, and prints concise text:
python -B scripts\cs2_vconsole_bridge.py "echo 12345"
- Report the
response (...) line directly. If the response is empty or unexpected, rerun with diagnostics.
- Keep commands scoped to the user's local CS2 instance unless the user explicitly provides another host or port.
Common Actions
Fire once by pressing and then releasing attack. Always send -attack after +attack so the player is not left firing:
python -B scripts\cs2_vconsole_bridge.py "+attack"
python -B scripts\cs2_vconsole_bridge.py "-attack"
The bundled script accepts single-dash VConsole commands directly. If a shell or older script version treats the command as a CLI option, use -- before the command:
python -B scripts\cs2_vconsole_bridge.py -- "-attack"
Diagnostics
Show the generated CMND payload when packet correctness matters:
python -B scripts\cs2_vconsole_bridge.py "echo 12345678aaaaa" --show-payload
Read the raw returned packet as hex:
python -B scripts\cs2_vconsole_bridge.py "echo 12345" --recv-hex
Read returned bytes as escaped ASCII:
python -B scripts\cs2_vconsole_bridge.py "echo 12345" --recv-ascii
Inspect console output discarded after the VFCS handshake:
python -B scripts\cs2_vconsole_bridge.py "echo 12345" --show-flush
Use a different local port only when the user asks or local evidence shows a different VConsole port:
python -B scripts\cs2_vconsole_bridge.py "echo 12345" --port 29000
Command Safety
Use harmless probes by default, such as echo ..., read-only status queries, or narrowly requested console checks.
Ask for explicit confirmation before sending commands that can disrupt the game/session, modify config, load maps, disconnect, quit, change server state, execute config files, kick/ban players, or change sensitive cvars. Examples include quit, exit, disconnect, map, changelevel, exec, writecfg, host_writeconfig, sv_cheats, kick, banid, and similar commands.
Do not send commands to remote hosts unless the user explicitly provides the target and intent.
Interpreting Results
- Default output is parsed PRNT text, for example
response (55 bytes): 12345678aaaaa.
--show-payload prints the CMND packet sent to CS2, for example payload (31 bytes): 434d4e44....
--recv-hex prints the raw PRNT bytes returned by CS2.
--recv-ascii is useful when binary framing plus readable text both matter.
- Old console messages may appear in
--show-flush; do not treat them as the command result unless the user is debugging backlog behavior.