📈 GH Trending Explorer 🎲 Surprise me

← all repos

Vibra-Ingenn / Janus

git clone https://github.com/Vibra-Ingenn/Janus.git

Janus is a API router for AI models written in Go and has a Vulkan Model runner

+0
stars, 24h · #37,040
+~0
stars, 7 days · #42,512
+135
stars, 30 days · #5,476
135
★ total
5
forks · 0 open issues

Star history (as recorded here)

2026-10-20 · 135 ★ 2026-10-23 · 135 ★
LanguageGo
LicenseMIT
Created2026-09-24 (29d ago)
Last push15d ago
Watchers1
OwnerUser

Links

README excerpt
# Janus — Local LLM Server & OpenAI-Compatible API
Janus is a **single Go binary** that runs `.gguf` models on your machine (GPU or CPU) and exposes an **OpenAI-compatible API**. No Python, no Docker, no Ollama required.
**Use it your way:** call it from the **command line** (`curl`, PowerShell, scripts), wire it into **Cursor / Cline / any OpenAI client** — same local models, whatever workflow fits you.
---
## What you get
- **Local inference** — llama.cpp via Vulkan (AMD / Intel / NVIDIA) or CPU fallback
- **OpenAI-compatible API** — `/v1/chat/completions`, `/v1/models`
- **Hot-swap models** — change `.gguf` without restarting
- **Thinking model support** — ` ` reasoning split into `reasoning_content`
- **Chat template auto-detection** — uses the template from GGUF metadata
- **Zero dependencies** — one `.exe` on Windows, no Python, no Docker
---
## Requirements
| Platform | What you need |
|----------|----------------|
| **Windows** (primary) | Windows 10/11, Go 1.25+, Vulkan-capable GPU recommended |
| **Linux** | Go 1.25+, `curl`, `tar`, Vulkan (Mesa/NVIDIA driver; check with `vulkaninfo`) or CPU |
| **macOS** | Go 1.25+, CPU backend (Vulkan varies by hardware) |
**Disk:** plan for the model size (often 2–8 GB per model) plus ~50 MB for Janus + llama.dll.
---
## Quick start (Windows)
### 1. Clone and build
 [code] 
`build.ps1` downloads pre-built **llama.cpp Vulkan DLLs** and compiles `dist\janus.exe`.
### 2. Download a model
Put a `.gguf` file in the `models\` folder. Use the included downloader:
 [code] 
Or download any GGUF from Hugging Face.
### 3. Configure
 [code] 
Edit `.env`:
 [code] 
| Variable | Default | Meaning |
|----------|---------|---------|
| `INFERENCE_BACKEND` | `vulkan` | `vulkan`, `cpu`, or `openrouter` |
| `JANUS_MODEL_PATH` | *(required)* | Path to your `.gguf` file |
| `JANUS_GPU_LAYERS` | `-1` | `-1` = all layers on GPU, `0` = CPU only |
| `JANUS_VRAM_CEILING_MB` | `9216` | VRAM budget hint (MiB) |
| `JANUS_MAX_TOKENS` | `4096` | Max tokens per reply |
| `JANUS_LISTEN_ADDR` | `127.0.0.1:8990` | Bind address |
### 4. Run
 [code] 
Opens **http://127.0.0.1:8990** in your browser.
### 5. Verify
 [code] 
---
## Quick start (Linux)
 [code] 
- `build.sh` pins llama.cpp **b11146** (the struct layouts in `internal/bridge/llama_dl.go` match that tag); `./build.sh --version bNNNN` tries another one, `--skip-download` reuses `lib/linux/`.
- The `.so` files are copied next to the binary (`dist/`); they find each other via `RUNPATH=$ORIGIN`, no `LD_LIBRARY_PATH` needed.
- **Go 1.25+** is required (purego v0.11 is needed to pass llama.cpp's structs by value on Linux). With `GOTOOLCHAIN=auto` (default) an older `go` downloads the right toolchain itself.
- `JANUS_GPU_LAYERS=-1` (default) offloads every layer; check the log for `offloaded N/N layers to GPU`.
Supported: linux/amd64; arm64/macOS not tested/not supported.
macOS: build with `go build -o dist/janus ./cmd/janus` and provide `libllama.dylib` next to the binary (untested).
--