Write a function
Describe it in a sentence and watch it stream.
> write is_even(n)
def is_even(n):
return n % 2 == 0→Why ZY-S1
The product
On Low or High effort a short numbered plan streams into the Thinking panel before the answer.
def is_even(n):
return n % 2 == 0Capabilities
Everything ZY-S1 does, it does in the open and on hardware you already own.
Ask for one self-contained function in Python, JavaScript, TypeScript, C++, Go or Rust. It answers in a highlighted block you can copy.
def is_even(n):
return n % 2 == 0On Low or High, a short numbered plan streams into the Thinking panel first. Read it, then collapse it.
1. Take n as input 2. Return n % 2 == 0 Check: handles negatives
Pick how much thinking you want per message. Off answers straight away, High adds a check round.
off → 512 tok low → 768 tok high → 1,024 tok
Every token streams as it is generated, so you watch the answer build instead of waiting for it.
def square(x):
return x * x▍The gateway sends code to ZY-S1, arithmetic to a calculator so numbers come back exact, and everything else to a 0.5B helper.
write is_even(n) → ZY-S1 15% of 240 → Calculator
The 4-bit build is about 700 MB and needs about 1.3 GB of RAM. An ordinary processor is enough.
zy-engine · CPU only -t 8 threads
You ask for something. The gateway routes it to ZY-S1, the calculator or the helper.
On Low or High, a short numbered plan streams live into the Thinking panel. High adds a check round.
ZY-S1 reads the whole prompt bidirectionally, then streams the answer left to right.
Effort
The effort pill sits next to the input. Change it per message.
Answers straight away. Best for quick, obvious requests.
A short numbered plan streams into the Thinking panel, then the answer.
The plan plus a check round before it answers.
Runs on your CPU
About 15.9 tokens per second on 8 CPU threads with zy-engine. No GPU, no account, no network once it is downloaded.
$ git clone https://huggingface.co/zyr-AGENT/ZY-S1-GGUF$ cd ZY-S1-GGUF/zy-engine$ cmake -S . -B build && cmake --build build -j --target zy-engine$ ./build/zy-engine -m ../ZY-S1-Q4_K_M.gguf -t 8 -i# CPU only · 8 threads · interactive chat> write a function add(a, b)def add(a, b): return a + bRun it
Build zy-engine, chat in the terminal, start an OpenAI-compatible server, or call it from Python.
# needs CMake 3.18+ and a C++17 compiler, no GPU$ git clone https://huggingface.co/zyr-AGENT/ZY-S1-GGUF$ cd ZY-S1-GGUF/zy-engine$ cmake -S . -B build && cmake --build build -j --target zy-engine$ ./build/zy-engine -m ../ZY-S1-Q4_K_M.gguf -p "Write a function add(a, b)."Private by default
Run the weights on your own machine and nothing leaves it. On this site, conversation text isn't stored; the server keeps only basic request logs to enforce rate limits.
| Parameters | 1.18B |
|---|---|
| Architecture | Prefix language model (PrefixLM), based on Sapient AI HRM-Text-1B |
| Attention | Prompt read bidirectionally, response written causally |
| Context | Up to 4,096 tokens |
| Weights | 4-bit GGUF · Q4_K_M ≈ 700 MB (701 MiB) |
| Memory | About 1.3 GB RAM at a 2,048-token context |
| Runtime | zy-engine, CPU only |
| Speed | ≈ 15.9 tok/s on 8 CPU threads |
| Training | Supervised fine-tuning, 1,000 steps · corrective fine-tuning, 120 steps |
| License | Apache-2.0 (declared in the repository) |
| Status | Preview, for research and evaluation |
Latest from the blog
How a 1.18B prefix language model was fine-tuned for small coding tasks, and why it runs on a CPU.
FAQ