# API Overview

export const iconLocation =
  "https://github.com/VedalAI/neuro-game-sdk/blob/main/Assets/icon.png";

<Image src={NeuroSDKIcon} alt="Official Neuro Game SDK icon" />

<div style="font-size: 15px; font-style: italic; text-align: center;">
  Official Neuro Game SDK icon. Source:{" "}
  <a href={iconLocation}>VedalAI/neuro-game-sdk</a>. These docs are not
  official.
</div>

The Neuro Game API, despite its name, isn't an actual API; rather, it is a protocol on how to communicate game states, actions and more to the Neuro twins.
Specs were open-sourced to allow for fan-made games to be playable by her (a prominent example is some games made during the [Neuro-sama Game Jam 2](https://itch.io/jam/neuro) post-jam.)

If you're familiar with LLM tool calling, the Neuro API is similar to that, so the concepts of tool calling will more or less apply here.
**Note:** For simplicity, in the rest of the docs, both Neuro-sama and Evil Neuro will be referred to by their common name, Neuro.
This does not mean that Evil Neuro can't also play in place of Neuro-sama, since she uses the same specs and protocols.

Neuro herself doesn't directly interact with the game, instead, a WebSocket server acts as middleware/a relay between Neuro and the game, allowing commands to be sent back and forth via the server. Despite this, however, there are some limitations:

- Neuro cannot understand messages in binary format. This limitation is not present in Randy and may not be present in other Neuro simulators.
**Note:** Binary WebSocket messages not being readable by Neuro is due to a limitation with the WebSocket server software that Vedal uses.

- It is unknown whether or not Neuro can accept multi-connects without issues (the current assumption is that she can)
- The API is optimized for turn-based games. It is not recommended to try this API with real-time games.
- You need to be able to describe the entire game state in text to Neuro. You shouldn't rely on Neuro's vision module being on while playing your game.
**Tip:** Here are examples of games that could work with the API:

- Inscryption
- Liar's Bar
- Buckshot Roulette
- Keep Talking and Nobody Explodes
- Uno
- Monopoly
- Turn-based games in general

And here are examples of games that won't work with the API:

- Among Us (Vedal plans on using [a custom mod](https://github.com/VedalAI/neuro-amongus) for Neuro)
- Skyrim
- League of Legends
- Celeste
- Minecraft (again, custom mod)
- Euro Truck Simulator
- Counter Strike: Global Offensive
- Any game with a moderate amount of real-time elements

- Quoting Alex himself, "Vedal said you can use this for more complex games but he told me "you wouldn't get it" so I'm not even going to try to imagine how this would even work, and I am just going to assume that he is wrong."

## Credits

- alexvoid (`VedalAI/neuro-game-sdk`), quoted text can be found [here](https://github.com/VedalAI/neuro-game-sdk/blob/main/README.md#Information) (expand the Examples dropdown).