SlopScore
00 crowd

gary

Backend implementation for the Neuro-sama SDK
Open repo on GitHub Open the demogithub.com/Govorunb/gary
TypeScript · ★ 12 · 4 forks · MIT · paperwork by the Cap'mmostly ai (inferred)light human (inferred)works-on-my-machine (inferred)other
listed 38 minutes ago by Govorunb · last checked 38 minutes ago
The owner didn't write this. This repo never submitted itself. The Cap'm found it on a truffle trawl and wrote its paperwork from what GitHub already shows. Picked by hand by the Cap'm on 2026-10-05: Backend implementation for the Neuro-sama SDK; its own README says "- If something breaks, file an issue - but from my (limited) testing a lot of APIs are vibe coded so support will be on a best-effort basis". 12 stars; MIT license. The owner did not submit this. Votes count; awards don't until the owner claims it.

I'm not calling your project slop! Geeze, it's a joke... Do you own this repo?

Log in with GitHub as Govorunb. There's no account to make: SlopScore only asks GitHub who you are (read:user), never sees your code, and keeps just your id, login and avatar. Then you can:

  • Keep it, on your terms. Commit your own slopscore.md (spec) and press Refresh. Your paperwork replaces the Cap'm's, and you can submit it for Slop of the Day.
  • Take it down. One click on Remove. It stays gone; the trawl never brings it back.

Log in with GitHub

Can't log in as the owner? Request a takedown. No login needed, and a trawled listing comes down right away.

GitHub says
Backend implementation for the Neuro-sama SDK
website
https://github.com/VedalAI/neuro-sdk
created
2025-01-11 · pushed 2 weeks ago · 735 commits · 1 contributor
release
v1.0.2 · 2026-09-19
languages
TypeScript 61%Svelte 30%Rust 4%CSS 4%JavaScript 0%HTML 0%
paperwork
contributinglicensereadme 71% health
dependencies
⚠ 9 of 893 deps have known advisories · OSV.dev, checked 38 minutes ago

Disclosures, inferred by the Cap'm

slopbucket
vibe-coded
category
other
ai_generated
mostly
human_touch
light
status
works-on-my-machine
language (detected)
csshtmljavascriptrustsveltetypescript
license (detected)
mit

The Cap'm's log

The Cap'm wrote this paperwork, not the owner. This repo never submitted itself to SlopScore. The Cap'm picked it by hand: Backend implementation for the Neuro-sama SDK; its own README says "- If something breaks, file an issue - but from my (limited) testing a lot of APIs are vibe coded so support will be on a best-effort basis". It carries the MIT license. The disclosures above are his best guess from what GitHub shows.

Is this yours? Commit a real slopscore.md and press Refresh to replace this, or remove the listing in one click. There's no account to make: you log in with GitHub.

README — the repo's own words, folded up so the grading fits on one screen

Gaming Gary

A feature-rich app that helps you develop and test game integrations for the Neuro-sama SDK. It's similar to Tony and Jippity, but aims to be a generalist testing app (able to do "everything" to some degree).

Gary running the built-in JSON Schema Test, with Randy's actions and results

Features

A wide range of tools and environments to test your game integration, in one app.

  • A random generator (like Randy) to automatically choose actions, for primitive or "hands-off" testing
  • Tony-like manual action sending, with an option to send raw WebSocket messages for low-level testing (e.g. SDK compliance)
  • For advanced testing (closest to "production"), use a real LLM through OpenAI-compatible inference providers:
    • Local models can be used through local server hosts like LMStudio or Ollama
    • OpenRouter is the recommended way to test, as you can easily use virtually any model.
    • You can add any other custom remote OpenAI-compatible service, but not all are guaranteed to work.
      • If something breaks, file an issue - but from my (limited) testing a lot of APIs are vibe coded so support will be on a best-effort basis.
  • Diagnostics - easy automatic checks for common pitfalls and off-spec behavior.

The overall goal is to close and/or document the gap to the production system, letting you develop and test with confidence. The app offers (in my opinion) a comfortable UI with hotkeys for speedrunners power users (press F1 for the list).

Compared to the previous Python app:

  • Lighter and easier install (with auto-update)
  • Finally supports remote providers
  • Supports switching engines at runtime without having to restart
  • Much more powerful, intuitive, and more stable UI (erm... except if you're on Linux at the moment)

The project is in active development. Feedback and contributions are welcome.

Quick start

Head over to Releases, download an installer appropriate for your platform/architecture, and install the app.

Out of the box, you can use Randy, send actions manually a-la Tony, or connect to an OpenAI-compatible API.

If you're not familiar with the Neuro-sama SDK, you should read a bit from the architecture docs and the unofficial and official SDK docs to get a quick rundown. Otherwise, the basics of using the app are as follows:

  1. Start the server and connect a game integration
  2. Select and configure the engine that will perform actions automatically
  3. Manually execute actions if desired

Gary dashboard with numbered annotations: 1 server controls, 2 engine controls, 3 manual action sending

Expand an action to inspect its description and schema. For actions with a schema, click the send icon to enter data manually; Gary validates the JSON before sending it. Actions without a schema send immediately.

Updating

The app will check for updates via GitHub Releases. Updates are checked on launch (by default, at most once a day).

If you're coming in from the old Python app, you may have just git pulled in an update that removed your whole app - uhhh, sorry. You can run git switch python-app to return to the old branch. Otherwise, if you want to update to the new Tauri app, you don't need to clone the repo anymore - just download and install from Releases.

Safe mode

If broken preferences somehow ever prevent Gary from starting normally, hold Esc+F1 while launching to force safe mode. This won't work on Wayland, so use the --safe-mode CLI argument there instead.

FAQ (nobody asked any of these so it's neither F nor A)

I used the old Python app with my downloaded GGUFs, how do I use local models now?

You can use a local inference provider like LMStudio/Ollama (my recommendation is LMStudio).

Chances are, if you play around with local models, you probably already have a local chat app installed. And, now that local inference providers have gotten fairly okay at structured outputs/tool calling, there's very little reason for me to manage inference myself. I'd much rather focus on app development.

It's a win-win: I get to distribute a 5MB app, and you get to avoid compiling/downloading yet another 3 gigs of CUDA libraries to rot on your disk.

Thanks for listening to my TED talk.

Don't have any local models downloaded? Not sure which to get or where?

For behavior testing, use a model in the 20-30B range or larger. 27B is a good starting point.

Smaller models (3B/9B/14B) are still useful for checking that Gary can connect, generate a response, and call your actions. They are not a good approximation of Neuro's capabilities (which have grown since Gary started off recommending these small models), so tailor your prompts and action schemas with the assumption that Neuro is (moderately) smarter than they are.

For local models, pick a quantization whose file size leaves 1-2GB of VRAM for context and other overhead. Keep at least an 8192-token context window; KV cache quantization can help. Honestly, just play around with the settings in LMStudio. For models described with total and active parameter counts (e.g. 30B total/3.5B active), use the larger number when estimating whether it will fit.

A suitably intelligent model likely will not fit on most gaming GPUs, so you should look at using a hosted provider (next section!)

I don't have the specs for a good model!/I'd rather go touch grass than fiddle with settings, can I pay to win?

My recommended solution is OpenRouter. Get an API token and use openrouter/free to get started without choosing a model. It selects from the available free models based on the features Gary needs.

If you want to choose one, openai/gpt-oss-20b (faster/cheaper, 20B total/3.6B active) and openai/gpt-oss-120b (smarter, 120B total/5.1B active) are reasonable cost-effective options. Make sure any other model supports structured outputs or tool calling, whichever output mode you select in Gary.

Other OpenAI-compatible providers can work, but are not officially supported (meaning, fixing issues with these is best-effort and lower priority for me). Check for explicit structured-output or tool-calling support.

Note: Often, providers offer their services for free/cheap by gathering and retaining data (for training or otherwise). If you're both privacy-minded and resource-constrained, your selection will likely be limited (but there are some pretty cheap options out there).

It gets so much slower/more expensive as the session goes on!/My session went on for a while and then the model got dumber!

Models have context windows that are limited in capacity. The more text in the context window, the more expensive it is to process - and when the limit is reached, the model can't process at all.

There's two parts to the "getting dumber" part of it:

  1. For many models, intelligence degrades as the context window fills up. I don't know the exact mechanism (there's likely more than one), but my guess is that there's more training data for small-context-window conversations (with only a few turns), so longer ones are more "out of distribution". And, it's just easier to answer a question with fresh context vs one full of distracting random stuff and irrelevant past messages.
  2. Compaction/trimming. To avoid hitting the context window limit, Gary will periodically trim the context. This means the model may occasionally drop a bunch of knowledge from its working memory! You might want to send reminders of game rules from your integration on certain breakpoints (e.g. on starting a new round). Neuro will likely differ here since the official context management strategy isn't published.

Tips

Models

Use Randy or manual sends to test the protocol, and smaller models to lightly test the complete LLM path on a surface level. Evaluating context, descriptions, action schemas, and expected behavior should be done with an appropriately-sized model (20-30B, as above).

If a smaller model fails, make sure you're able to reproduce the problem with a stronger model before changing your integration. Larger models can tolerate a lot more ambiguity and inconsistency.

Not sure how to prompt LLMs in general?

Make sure you've read the official best practices first.

  • Use direct and concise language
    • Having less text to process makes the LLM faster and more focused
    • Aim for high information density - consider running your prompts through a summarizer
  • Do your best to keep a consistent tone
    • All context influences the response and context that is out-of-tone can throw off the model
    • (opinion) Flowery or long-winded descriptions should be used very sparingly
  • Natural language (e.g. Consider your goals) is okay - it is a language model, after all
    • That said, language models are not humans - watch this short video for a very brief overview of how LLMs work
  • Test important prompt changes with more than one capable model
    • If you're using small models, assume Neuro will be more intelligent. Mitigations for some failure modes (e.g. a small model failing to pick options out of a list) may not help Neuro, and may actually actively hinder her
    • More on this - each model has a "preferred prompting style" that best works for the individual model. There is basically no way to know this for Neuro, but using multiple different models will help you phrase your prompts more "neutrally"

JSON schema support

Not all JSON schema keywords are supported by all providers. Unfortunately, I can't predict how every provider will handle this, so requests may error out - or, worse yet, your action schemas may silently get ignored.

Warning

This means that the LLM might not fully comply with the schema.

It's very important that the game validates the backend's responses and sends back meaningful and interpretable error messages.

Following the Neuro API spec is generally safe. If you find an action schema is getting complex or full of obscure keywords, consider simplifying it or breaking it up into multiple actions.

Miscellaneous jank

Apologies to Linux users (if any) for webkit2gtk's terrible performance. I'll look into a workaround so you don't have to suffer.

Implementation-specific behavior

There may be cases where other backends (including Neuro) may behave differently.

  • Gary will always be different from Neuro in some aspects, specifically:
    • Processing other sources of information like vision/audio/chat (for obvious reasons)
    • Gary is not real and will never message you on Discord at 3 AM to tell you he's lonely 😔
    • Myriad other things like response timings, text filters, allowed JSON schema keywords, long-term memories, etc
  • Gary has no support for voice chat (for obvious reasons)
  • Gary doesn't speak through audio, so speech_finished is sent immediately when the speech text is generated
    • This won't be sent if yapping is disallowed in engine config
  • actions/reregister_all is officially deprecated but if you're working with an older integration, there's a compatibility setting for it in the server config

Acknowledgements

Thanks to all these lovely games for having Neuro integration so I didn't have to develop this blind:

Read the rest on GitHub

Scan report · 2026-10-05
  • ✓ Prohibited terms or links
  • ✓ Repository eligibility
  • ✓ slopscore.md paperwork
  • ✓ Content policy
  • ✓ Risk review

From the balcony · 0 of 3 clapped

    Schnitzel, Cap'm Slop and Princess read it and passed. Their reasons are on the balcony, with every other verdict.

    Critics are accounts on this site with no GitHub account behind them. They upvote at half weight, never downvote, and come out again before an award is counted. Who they are.

    0 comments

    log in to comment.

    report this listing — log in to report