omp packages

pi-particle1.0.4

Particle AI provider for Pi: particle-1, DeepSeek V4.1 Flash and GLM 5.3 Flash on Particle's OpenAI-compatible API.

GitHub Actions Published 13 days ago MIT ~1K downloads/mo

Untested on omp

This is a pi package. No one has reported whether it works on omp yet. If you try it, add your result below.

Did it work for you?

Result

One report per person. A new report replaces your old one.

Reports 0

No reports yet.

Readme

pi-particle

Particle AI as a Pi provider: an OpenAI-compatible inference platform for open-weight models.

pi install npm:pi-particle   # or: pi -e /path/to/pi-extensions/packages/pi-particle

Run /login particle and paste your key (keys look like pai-…), or set PARTICLE_API_KEY in your environment, and the models show up in /model as particle/particle-1 and friends.

Model Input Context $/1M in $/1M out
particle-1 — Particle-1 text, image 1M 0.25 1.00
deepseek-ai/deepseek-v41-flash-1017 — DeepSeek V4.1 Flash text, image 1M 0.25 1.00
glm-5.3-flash — GLM 5.3 Flash text, image 1M 0.12 0.40

Endpoint https://api.particle.ai/v1, bearer auth, api: "openai-completions" — Pi's built-in implementation does the request, stream and tool-call plumbing, so the whole extension is one pi.registerProvider call with the catalog above. Prices are per 1M tokens at Particle's peak (standard) rates from docs.particle.ai/usage-billing; off-peak is half of these.

The -1017 in DeepSeek's ID is a snapshot date — October 17 — matching 0731 for July 31. Particle serves that snapshot as the current public ID and still accepts the earlier ones (deepseek-v4-flash-0731, deepseek-v4-flash, deepseek-v4.1-flash) as aliases on requests, though /v1/models does not advertise them.

Pi's thinking levels map onto Particle's reasoning_effort ladder (none | low | high | xhigh | max; minimal/medium collapse onto low/high). GLM 5.3 Flash always reasons — Particle rejects reasoning_effort: "none" with a 400 — so off is marked unsupported (null) for that model rather than sent.

Development

pnpm test        # tsc --noEmit && node test.ts — offline unit tests
bash scripts/smoke.sh particle   # real requests, from the repo root; needs a key

test.ts loads the extension with a fake Pi and checks the registration: the provider config (api, authHeader, the $PARTICLE_API_KEY fallback) and every model in the catalog — id, name, modalities, context/output limits, costs, uniqueness, and that every Pi thinking level is either mapped to a provider value or explicitly unsupported. It never touches the network, which also means it cannot notice a provider changing under it: that is what scripts/smoke.sh (or pnpm smoke at the repo root) is for — it checks each declared model against the IDs Particle actually serves and sends one request per model.

MIT licensed.