npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

pi-hetzner-inference-provider

v0.2.0

Published

Pi extension for the Hetzner Experiments Inference API — OpenAI-compatible open-weight models, catalog aligned with models.dev

Readme

pi-hetzner-inference-provider

A Pi extension that registers the Hetzner Experiments Inference API as a first-class provider: OpenAI-compatible open-weight models (Qwen, DeepSeek, GLM, Kimi) served on Hetzner's own infrastructure. The model catalog mirrors the hetzner provider in models.dev — the same catalog OpenCode ships — so models, context/output limits, modalities and thinking levels behave exactly like they do in OpenCode.

Install

# via npm
pi install npm:pi-hetzner-inference-provider

# via git
pi install git:github.com/ipmanlk/pi-hetzner-inference-provider

# local development
pi install ./pi-hetzner-inference-provider

Setup

  1. Create an API key:

    • Log in at https://experiments.hetzner.com with your Hetzner account.
    • On the left-hand sidebar, under APPS, select Inference.
    • Click the Create API Token button in the top-right corner.
  2. Set the token as an environment variable:

    echo 'export HETZNER_API_KEY="<your-token>"' >> ~/.bashrc
    source ~/.bashrc

    HETZNER_VLLM_API_KEY and HETZNER_INFERENCE_API_KEY are accepted as aliases. You can also run /login hetzner inside pi and paste the token there.

  3. Start pi and pick a model:

    pi
    # /model hetzner/Qwen/Qwen3.6-35B-A3B-FP8

Available models

| Model id | Context | Max output | Modalities | Thinking | | ------------------------- | --------- | ---------- | ----------------- | --------------------- | | DeepSeek-V4-Flash-0731 | 512 000 | 384 000 | text | off/low/high/max | | GLM-5.2-NVFP4 | 512 000 | 131 072 | text | off/high/max | | Kimi-K2.7-Code | 262 144 | 262 144 | text, image | always on | | Qwen/Qwen3.6-35B-A3B-FP8| 262 144 | 262 144 | text, image | always on |

Context and max-output figures come from models.dev limit for the hetzner provider; modalities from its modalities. The catalog is a static snapshot — there is no live refresh, so new models appear when this package is updated.

Thinking levels

Thinking control matches models.dev's reasoning_options for the provider:

  • DeepSeek-V4-Flash-0731reasoning_effort in none/low/high/max, selectable in pi via /thinking (off → none, low → low, high → high, max → max).
  • GLM-5.2-NVFP4reasoning_effort in none/high/max (off → none, high → high, max → max). GLM's reasoning at high/max can be very verbose on this experimental deployment — pick off for fast responses.
  • Kimi-K2.7-Code and Qwen/Qwen3.6-35B-A3B-FP8 — no reasoning_options in models.dev, so no thinking parameter is sent at all: the models reason natively and their thinking is displayed, exactly like in OpenCode.

How it works

  • Provider id hetzner, base URL https://inference.hetzner.com/api/v1.
  • API openai-completions (OpenAI Chat Completions) with vLLM compatibility flags: max_tokens (not max_completion_tokens), no store flag, system role only.
  • Thinking is sent as OpenAI-style reasoning_effort (DeepSeek, GLM), mirroring the models.dev catalog; Kimi/Qwen get no thinking parameter.
  • Catalog is a static snapshot of the models.dev hetzner provider (no live refresh; update the package for new models).
  • Cost is tracked at $0 — the Inference API is free while in experimental status.
  • A User-Agent header (pi-hetzner-inference-provider/<version>) is sent on model requests.

Troubleshooting

  • Stuck on “Working…”: the Inference API is experimental and can be very slow — first requests to a model can take a minute or more while it warms up, and requests can hang when the service is under load. Retry, or switch model. If the request eventually fails, run /login hetzner to re-check the token.
  • GLM-5.2-NVFP4 too slow: GLM generates very verbose reasoning before answering, which on this experimental deployment can take minutes. Set the thinking level to off (/thinking off, or model id suffix :off in /model) — the reasoning_effort: none request disables reasoning completely.

License

MIT