Garry's Mod external console software.
- Download the latest release.
- Launch the gterm executable whenever Garry's Mod is running.
- Restart Garry's Mod to complete the installation.
- Enjoy!
- Download the latest release of
xconsole. - Move the
.dll(even on macos/linux!) undersrcds/garrysmod/lua/bin(if thebinfolder doesnt exist, create it). - In
srcds/garrysmod/lua/includes/init.luaadd at the top of the filerequire("xconsole"). - Restart the server.
- Launch the gterm executable.
- Enjoy!
IMPORTANT NOTE: If you run your server inside a docker container or any other sandbox you will need to install gterm within that sandbox or give the container the rights to write to /tmp on UNIX systems.
- Download the latest release of
xconsole. - Move the
.dll(even on macos/linux!) underGarrysMod/garrysmod/lua/bin(if thebinfolder doesnt exist, create it). - In
GarrysMod/garrysmod/lua/menu/menu.luaadd at the bottom of the filerequire("xconsole"). - Restart Garry's Mod.
- Voila!
GTerm includes a WebSocket server for console streaming and command execution.
Setup:
- Enable API in
Config.json:"API": true - Connect WebSocket clients to
ws://localhost:27512/ws/
Configuration Options:
{
"API": true,
"APIPort": 27512,
"APISecret": "your_secret_here"
}Example Payloads:
Sending commands (text message):
status
Receiving console output (JSON):
{
"Time": 1704123456,
"Data": [
{
"Color": { "R": 255, "G": 255, "B": 255, "A": 255 },
"Text": "hostname: My Server\n"
}
]
}GTerm includes an MCP (Model Context Protocol) server for AI agents such as Cursor, Warp, etc..
Setup:
- Enable MCP in
Config.json:"MCP": true - (Optional) Set
"MCPSecret"for authentication - Configure your MCP client to connect to
http://localhost:27513(add?secret=...if using authentication)
Available Tools:
run_gmod_command- Execute console commandslist_gmod_directory- Browse Garry's Mod file structureread_gmod_file- Read text files from installationexecute_lua_code- Execute CLIENT-SIDE Lua code (if you have the permissions to do it)capture_console_output- Monitor console output for a specified duration
Configuration Options:
{
"MCP": true,
"MCPPort": 27513,
"MCPCollectionWindowMs": 1000,
"MCPSecret": "your_secret_here"
}MCP Client Example (with secret):
{
"mcpServers": {
"gterm": {
"url": "http://localhost:27513?secret=your_secret_here"
}
}
}