Skip to content

DevOldSchool/llm-bridge

Repository files navigation

RuneLite LLM Bridge

RuneLite plugin that exposes read-only game context over a local WebSocket.

The plugin publishes:

  • game state on tick while logged in
  • camera, local player, NPCs, objects, ground items, hover/menu state, and walkable tile offsets
  • optional nearby player, inventory, and equipment sections controlled by config
  • canvas coordinates, bounds, and hulls for entities where RuneLite exposes rendered geometry
  • screenshots on request, or at an optional configured tick interval

It does not execute gameplay actions.

Development

Run RuneLite with the plugin loaded:

./gradlew run

If this repo does not have a Gradle wrapper yet, use your local Gradle installation:

gradle run

The plugin listens on ws://localhost:7070 by default.

Security / Scope

  • The WebSocket server binds to localhost only.
  • The bridge sends read-only game state and screenshots.
  • Nearby non-local player export is disabled by default.
  • Inventory and equipment export can be disabled in config.
  • Incoming bridge messages are limited to screenshot requests.

Configuration

  • WebSocket Port: local server port, default 7070
  • Broadcast Every Tick: publish full state every game tick, default enabled
  • Include Nearby Players: include nearby non-local players, default disabled
  • Include Inventory: include inventory items, default enabled
  • Include Equipment: include worn equipment, default enabled
  • Auto-Screenshot Interval: capture every N ticks, 0 means on-demand only
  • World Search Radius: tile radius for nearby NPCs, players, objects, ground items, and walkable tiles

WebSocket Messages

On connect:

{"type":"connected","message":"LLM Bridge ready. Game state broadcasts every tick when logged in."}

State messages:

{
  "type": "state",
  "tick": 12345,
  "camera": {},
  "player": {},
  "inventory": [],
  "equipment": [],
  "hover": {},
  "npcs": [],
  "players": [],
  "objects": [],
  "groundItems": [],
  "walkableTiles": []
}

Screenshot request from a client:

{"type":"request_screenshot"}

Screenshot response:

{"type":"screenshot","tick":12345,"format":"png","data":"...base64..."}

Plugin Hub Metadata

The external plugin entry point is declared in runelite-plugin.properties:

plugins=com.llmbridge.LlmBridgePlugin

About

RuneLite LLM Bridge Plugin.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages