Scrypt / README.md
IMJONEZZ's picture
Update README.md
c52514a verified
|
Raw
History Blame Contribute Delete
2.77 kB

A newer version of the Gradio SDK is available: 6.19.0

Upgrade
metadata
title: SCRYPT
emoji: 🕯️
colorFrom: green
colorTo: gray
sdk: gradio
sdk_version: 6.18.0
python_version: '3.12'
app_file: space/app.py
pinned: false
license: other
short_description: A roguelike deckbuilder run by a finetuned Nemotron-3-nano
tags:
  - track:wood
  - sponsor:nvidia
  - achievement:offgrid
  - achievement:welltuned
  - achievement:offbrand
  - achievement:llama
  - achievement:fieldnotes

Demo Video: https://youtu.be/LZYEI4fPoGE Post: https://www.linkedin.com/posts/chris-brousseau_scrypt-huggingface-build-small-hackathon-share-7472365771046670337-_ZoT/?utm_source=share&utm_medium=member_desktop&rcm=ACoAABq_Nq8BB01Yq3ocVQA3I6IuOnvBGc3PvD8

SCRYPT

A roguelike deck-builder escape room, played entirely in your terminal, against an LLM that owns the machine.

You are a process the Warden hasn't reaped yet. Win card fights on its balance meter, explore a sandboxed shell between fights, solve what you find there — and when the Warden offers you power, it will name the price: grep. Then ls. It has been counting which commands you lean on.

It may also threaten your files. It may delete them. (They are duplicates inside an in-memory sandbox. The game never touches your real filesystem. The Warden doesn't have to tell you that, but we do.)

Play

uv run scrypt              # or: pipx install . && scrypt
uv run scrypt --mirror     # opt-in: mirror a filtered snapshot of ~ into the sandbox

In a fight: arrows pick a card, enter plays it (mem costs ask you to mark processes to kill), b rings the bell. In the shell: it's a shell. help lists what you still own; fight returns to the table.

The Warden's brain

mode what powers the dialogue & cruelty
local llama.cpp + the finetuned Warden GGUF (IMJONEZZ/warden-nemotron-3-nano-30b, needs 32GB RAM)
api OpenRouter / NVIDIA NIM (SCRYPT_API_KEY)
scripted curated lines, zero dependencies — automatic fallback

Selection is automatic; force with SCRYPT_BACKEND=local|api|scripted. The game never stalls on the model: every LLM touchpoint has a timeout and a scripted fallback, and everything the model does passes schema validation, action budgets, and a dialogue filter. The rules engine is deterministic Python — the model plays the villain, never the referee.

Develop

uv sync && uv run pytest        # full suite, no model required
uv run python -m balance.sim    # regenerate balance/reports/

Deployment to HuggingFace Spaces: root Dockerfile + the web layer in space/ (custom gradio.Server frontend); see DEPLOY.md for the checklist. Finetuning pipeline (synthetic data, evals, recipes) lives in finetune/.