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-aster-provider

v1.0.5

Published

Aster (asterlab.ai) provider extension for pi - Access Kimi K3, GLM 5.2, GPT-OSS, and batch models through the Aster API

Readme

✳️ pi-aster-provider

Kimi K3, GLM-5.2, GPT-OSS — via Aster

Coding-optimized open weights with lossless 1M context, for pi.

pi extension npm license


Features

  • OpenAI-compatible API — Uses Aster's /v1/chat/completions endpoint
  • Coding-optimized models — Kimi K3 (1M context), GLM 5.2, GPT-OSS 120B, and more
  • Reasoning models — All chat models think by default; control depth with /reasoning
  • Tool use — Function calling works on every chat model (synbad-verified)
  • Prompt caching — Discounted cached input on GLM and Kimi K3
  • Batch variantzai-org/glm-5.2-batch, the discounted GLM 5.2 batch lane
  • Live model sync — Models refresh from the Aster API in the background

Available Models

| Model | ID | Context | Max Output | Vision | Reasoning | Cache | Input $/M | Output $/M | |-------|----|---------|------------|--------|-----------|-------|-----------|------------| | GLM 5.2 | glm-5.2 | 1.0M | 131K | ❌ | ✅ | ✅ | $1.00 | $4.00 | | GLM 5.2 Batch | zai-org/glm-5.2-batch | 1.0M | 131K | ❌ | ✅ | ❌ | $0.75 | $2.50 | | GPT OSS 120B | gpt-oss-120b | 131K | 33K | ❌ | ✅ | ❌ | $0.15 | $0.60 | | GPT OSS 120B Fast | gpt-oss-120b-fast | 131K | 33K | ❌ | ✅ | ❌ | $0.15 | $0.60 | | Kimi K3 | kimi-k3 | 1.0M | 131K | ❌ | ✅ | ✅ | $2.50 | $12.50 |

Costs are per million tokens.

Non-chat endpoints (e.g. aster/wildflower, per-call search pricing) are intentionally excluded.

Installation

Option 1: Using pi install (Recommended)

Install from npm:

pi install npm:pi-aster-provider

Or install directly from GitHub:

pi install https://github.com/monotykamary/pi-aster-provider

Option 2: With npm

Install from npm:

npm install pi-aster-provider

Option 3: Manual Clone

  1. Clone this repository:

    git clone [email protected]:monotykamary/pi-aster-provider.git
    cd pi-aster-provider
  2. Set your Aster API key:

    # Recommended: add to auth.json
    # See Authentication section below
    
    # Or set as environment variable
    export ASTER_API_KEY=your-api-key-here
  3. Run pi with the extension:

    pi -e /path/to/pi-aster-provider

Then authenticate and run pi:

# Recommended: add to auth.json
# See Authentication section below

# Or set as environment variable
export ASTER_API_KEY=your-api-key-here

pi

Get your API key from asterlab.ai.

Authentication

The Aster API key can be configured in multiple ways (resolved in this order):

  1. auth.json (recommended) — Add to ~/.pi/agent/auth.json:
    { "aster": { "type": "api_key", "key": "your-api-key" } }
    The key field supports literal values, env var names, and shell commands (prefix with !). See pi's auth file docs for details.
  2. Runtime override — Use the --api-key CLI flag
  3. Environment variable — Set ASTER_API_KEY

Get your API key from asterlab.ai.

Environment Variables

| Variable | Required | Description | |----------|----------|-------------| | ASTER_API_KEY | No | Your Aster API key (fallback if not in auth.json) |

Configuration

Add to your pi configuration for automatic loading:

{
  "extensions": [
    "/path/to/pi-aster-provider"
  ]
}

Usage

Once loaded, select a model with:

/model aster kimi-k3

Or use /models to browse all available Aster models.

Reasoning Effort

All Aster chat models are reasoning models (thinking is on by default). Control thinking depth:

/reasoning high

Levels are model-dependent (offmax); pi clamps to the nearest level each model supports and the extension passes the mapped value through as the reasoning_effort request field. Support matrix (probed against Aster):

  • gpt-oss-120b / -fast: low medium high — canonically fixed at three levels; thinking cannot be disabled (none is accepted but the model still reasons), and minimal/xhigh/max are rejected with HTTP 400.
  • glm-5.2 / glm-5.2-batch: off maps to none (disables thinking), low, medium, high, max. minimal and xhigh are rejected (Z.AI canonical semantics map low/medium onto high behavior).
  • kimi-k3: low, high, max (Moonshot canonical — K3 defaults to max thinking and thinking stays on).

API Compatibility Notes

  • Reasoning streams as the reasoning_content field (DeepSeek-style), which pi parses natively.
  • Both max_tokens and max_completion_tokens are honored; the extension sends max_completion_tokens.
  • GPT-OSS models strictly validate prompt + max_completion_tokens ≤ context (131K), so their curated max output is held to 32K; GLM 5.2 and Kimi K3 accept up to 128K completion tokens.
  • Image input is not supported by Aster's chat models (text-only).
  • gpt-oss-120b (and -fast): Aster's DFLASH speculative decoding rejects grammar-constrained requests — any tool schema sent with strict: true fails with HTTP 400. This extension sets supportsStrictMode: false so pi omits the strict field for these models. Also note the model does not reliably emit parallel tool calls in a single response (it serializes them); sequential tool calling works fine.
  • Kimi K3 keeps thinking on at all times (Moonshot canonical); low/high/max map through, max is the model's natural default.

Inference Quality

Verified with synbad (--count 1, plain and --stream):

| Model | Non-stream | Stream | |-------|-----------|--------| | GLM 5.2 | ✅ 15/15 | ✅ 15/15 | | GLM 5.2 Batch | ✅ 15/15 | — | | Kimi K3 | ✅ 15/15 | ✅ 15/15 | | GPT OSS 120B | ⚠️ 12/15 | ⚠️ 11/15 |

All reasoning evals (parsing + multi-turn reasoning preservation) pass on every model. The gpt-oss misses are Aster-side serving quirks — grammar-constrained (strict) tool schemas 400 (mitigated here via supportsStrictMode: false) and serialized parallel calls — not reasoning or history bugs.

Updating Models

To refresh the model list from the Aster API:

npm run update-models

This fetches from /v1/models, updates models.json, and regenerates this README. Idempotent — safe to run repeatedly.

API Documentation

  • Aster: https://asterlab.ai
  • OpenAI-compatible endpoint: https://api.asterlab.ai/v1
  • Models endpoint: https://api.asterlab.ai/v1/models

License

MIT