Qflash: OpenAI-compatible gateway for Qwen3.8 models
About
Qflash is a standalone, single-binary gateway that exposes Qwen3.8 model spaces on Hugging Face through a standard OpenAI-compatible API. It automatically detects and supports multiple upstream protocols:
- Gradio
/respondendpoints (such ashttps://microhero-qwen3-8-27b-uncensored-chat.hf.space, running live on ZeroGPU) - Direct OpenAI
/v1/chat/completionsendpoints (such ashttps://apathy-exe-qwen3-8-flash-next.hf.space, runningllama-server) - Gradio
/chat_responseendpoints (such ashttps://halvo78-qwen3-8-flash-next-playground.hf.space)
It translates standard /v1/chat/completions and /v1/models requests and Server-Sent Events (SSE) stream protocols into upstream formats, allowing any standard OpenAI-compatible client, agent, or IDE to interface with Qwen3.8 models without modification.
Features
- openai-compatible chat completions (streaming and non-streaming)
- automatic upstream endpoint detection (
respond,openai,chat_response) - deep reasoning extraction with thinking trace passthrough (
<think>tags and blockquotes mapped toreasoning_content) - stateful streaming tool call interception (
StreamToolCallFilter) with zero XML or JSON leakage intodelta.content - real-time token streaming with incremental SSE delivery
- support for instruct mode via standard
reasoning_effort: "none" - zero-dependency SOCKS5 proxy client (RFC 1928 / RFC 1929) with domain resolution (
socks5h://), IPv4, IPv6, and auth - bring your own key (BYOK) pass-through support via
Authorization: Beareror CLI flags - zero-gpu quota authentication via free Hugging Face personal tokens (
HF_TOKEN) - fibonacci backoff retry on transient upstream errors
- zero external dependencies (Go standard library only)
Supported upstream spaces
| Space | Model | Hardware | Protocol | Notes |
|---|---|---|---|---|
MicroHERO/qwen3.8-27b-uncensored-chat (default) |
Qwen3.8-27B Uncensored | ZeroGPU (A10G) | Gradio /respond |
Fast live inference (~2-5s), vision projector, uncensored build |
apathy-exe/Qwen3.8-Flash-Next |
Qwen3.8-Flash-Next (~177B) | CPU (OpenMP/AVX512) | Native OpenAI /v1 |
Full 177B model, single execution slot |
apathy-exe/Qwen3.8-27B |
Qwen3.8-27B (MTP) | CPU (OpenMP/AVX512) | Native OpenAI /v1 |
27B model with speculative decoding, single execution slot |
Halvo78/qwen3-8-flash-next-playground |
Qwen3.8-Flash-Next | CPU basic | Gradio /chat_response |
Sandbox client; requires BYOK API key/base URL |
Hugging Face ZeroGPU quota note
Spaces running on ZeroGPU provide free compute. Anonymous requests share a small pool per IP address. To avoid quota limits, set a free Hugging Face token:
export HF_TOKEN="hf_..."
Or pass it via the -hf-token flag, or via the Authorization: Bearer hf_... header in your client requests. Personal access tokens can be created for free at https://huggingface.co/settings/tokens.
Installation
You need Go 1.22 or newer (tested on Go 1.26). Install the latest release straight from the Git repository with go install:
go install code.luxferre.top/luxferre/qflash@latest
This fetches the module from https://code.luxferre.top/luxferre/qflash.git and places the qflash binary in $(go env GOPATH)/bin. Make sure that directory is on your PATH.
(Note: If installing right after a new commit has been pushed, bypass any proxy cache with GOPROXY=direct go install code.luxferre.top/luxferre/qflash@latest).
If you prefer to build from a local checkout instead:
git clone https://code.luxferre.top/luxferre/qflash.git
cd qflash
go install .
Alternatively, build directly from source using make:
make qflash
This produces the bin/qflash binary for your platform.
Models served
The gateway advertises the following models under /v1/models:
| Model ID | Target model | Description |
|---|---|---|
Qwen/Qwen3.8-27B-Uncensored |
Qwen/Qwen3.8-27B-Uncensored |
Default primary live model (ZeroGPU) |
Qwen/Qwen3.8-Flash-Next |
Qwen/Qwen3.8-Flash-Next |
Flash-Next model identifier |
qwen3.8-27b-uncensored |
Qwen/Qwen3.8-27B-Uncensored |
Standard lowercase alias |
qwen3.8-flash-next |
Qwen/Qwen3.8-Flash-Next |
Flash-Next lowercase alias |
qwen-flash-next |
Qwen/Qwen3.8-Flash-Next |
Shorthand alias |
qwen-flash |
Qwen/Qwen3.8-Flash-Next |
Quick convenience alias |
qwen |
Default model | Generic shorthand alias |
Any unlisted custom model name requested by the client is passed through directly.
Usage
Run the gateway:
qflash
By default, this listens on http://127.0.0.1:8080 and connects to https://microhero-qwen3-8-27b-uncensored-chat.hf.space.
Available flags:
-port— TCP port to listen on (default8080)-endpoint— root URL of upstream space (defaulthttps://microhero-qwen3-8-27b-uncensored-chat.hf.space,QFLASH_ENDPOINTenv)-mode— upstream protocol mode:auto,respond,chat_response,openai(defaultauto,QFLASH_MODEenv)-model— exposed model name (defaultQwen/Qwen3.8-27B-Uncensored,QFLASH_MODELenv)-thinking/-enable-thinking— enable chain-of-thought reasoning by default (defaulttrue)-hf-token/-token— Hugging Face API token for ZeroGPU quota or private spaces (HF_TOKENenv)-api-key— upstream inference engine API key for BYOK mode (OPENAI_API_KEY/QWEN_API_KEYenv)-base-url— upstream inference engine base URL for BYOK mode (OPENAI_BASE_URL/QWEN_BASE_URLenv)-socks/-proxy/-socks5— SOCKS5 proxy URL, e.g.socks5://127.0.0.1:1080(ALL_PROXYenv)-user-agent/-ua— custom User-Agent sent to upstream
Endpoints served:
GET /modelsandGET /v1/modelsPOST /chat/completionsandPOST /v1/chat/completions
Example request with curl:
curl http://localhost:8080/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{"model":"qwen","messages":[{"role":"user","content":"Explain quantum superposition in one sentence."}],"stream":false}'
Streaming example:
curl -N http://localhost:8080/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{"model":"qwen","messages":[{"role":"user","content":"Count from 1 to 5."}],"stream":true}'
Instruct mode example (disables thinking):
curl http://localhost:8080/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{"model":"qwen","messages":[{"role":"user","content":"Hello!"}],"reasoning_effort":"none"}'
Using an alternative upstream space:
# Point to apathy-exe CPU llama-server
qflash -endpoint https://apathy-exe-qwen3-8-flash-next.hf.space -mode openai
# Point to Halvo78 playground with your own API credentials
qflash -endpoint https://halvo78-qwen3-8-flash-next-playground.hf.space -api-key "sk-..." -base-url "https://api.openai.com/v1"
Python OpenAI SDK integration:
from openai import OpenAI
client = OpenAI(
base_url="http://localhost:8080/v1",
api_key="sk-dummy"
)
stream = client.chat.completions.create(
model="qwen",
messages=[
{"role": "user", "content": "Prove that the sum of the first n odd numbers is n^2."}
],
stream=True
)
for chunk in stream:
delta = chunk.choices[0].delta
if hasattr(delta, "reasoning_content") and delta.reasoning_content:
print(f"[THINK] {delta.reasoning_content}", end="", flush=True)
if delta.content:
print(delta.content, end="", flush=True)
print()
Credits
Created by Luxferre in 2026, released into the public domain with no warranties.