Decis
Self-hostable inference server for open decision models implementing the TypeSafe /v1/systemone API, one Docker image per engine.
Overview
Decis is an inference server for lightweight open decision models that implements TypeSafe's System One API. Because the official typesafe-sdk already speaks the /v1/systemone contract, migrating is a matter of changing base_url. One wire contract fronts several interchangeable engines, with one container image per engine and the engine id as the image tag: laya-multilingual, kev-0.8b, jeff-qwen3.5-0.8b and jeff-gemma4-e2b.
Images carry their weights, so nothing downloads at startup. A playground ships three games, snake, dino and tetris, each deciding through real /v1/systemone calls. It is pre-1.0 (v0.4.0) with a stable v1 wire contract, health and readiness endpoints, and CI. It is useful for teams that want Jev-style decisions on their own infrastructure, for privacy or cost reasons. The engine reports its own version at /healthz and readiness at /readyz.
What the decision model decides
| Type | Question | Answers |
|---|---|---|
| Choice | Any typed choice, noul or score question sent via the TypeSafe SDK(inferred) | — |
How it works
- docker compose up an engine image
- Point typesafe-sdk base_url at the Decis host
- Send state and typed questions
- Engine returns Jev-format answers
Strengths
- Drop-in for the official SDK
- Weights baked into images, no runtime download
- Multiple engines including multilingual Laya
Caveats
- Pre-1.0
- Open engines differ in accuracy from hosted Jev
Getting started
git clone https://github.com/chaitin/Decis, cp .env.example .env, docker compose -f docker-compose.yml up -d --wait.At a glance
- Type
- Service
- Status
- beta
- Language
- Python
- Runtime
- Docker HTTP server
- Has code
- yes
- Has tests
- yes
Use cases and integrations
How curated lists describe it
Self-hosted, Jev-compatible decision-model API — one /v1/systemone endpoint, open weights (Laya, kev), one Docker image per engine.
hellogumbo/awesome-jev
Frequently asked questions
Do I need to change my code?
Only the SDK base_url; the official typesafe-sdk works unchanged.
Which engines are available?
laya-multilingual, kev-0.8b, jeff-qwen3.5-0.8b and jeff-gemma4-e2b.
Does it download models at startup?
No, weights are inside the images.
Related projects
Docker service exposing local Laya, Von, a CLM head or hosted Jev through one TypeSafe-compatible HTTP and MCP endpoint.
MCP serverbetaPythonConverts open Jev reproductions (Laya, Kev, NanoJev, PlayJev) to INT8 ONNX for offline CPU decisions at about 15.6 ms per question.
ServicebetaPythonNative Go runtime serving Gemma 4 12B as a Jev-like decision model with hand-tuned PTX kernels and no CGo or CUDA toolkit.
ProjectbetaGoGo harness for System One models: hosted Jev, open Kev in-process via llama.cpp, and Cloudflare Clef, with typed helpers and a CLI.
ServicebetaGoGo gateway exposing the Jev /v1/systemone contract over ordinary LLM backends by reading single-token label logprobs.
ServicebetaGoRuns Intern-Decision-0.8B on Apple Silicon behind a local /v1/systemone endpoint that accepts screenshots for agent decisions.
ServicebetaPython