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

@corsair-dev/gemini

v0.1.0

Published

Gemini plugin for Corsair

Readme

@corsair-dev/gemini

Corsair plugin for Google Gemini and Veo (Generative Language API v1beta).

Auth setup

API-key only.

  1. Create a key at Google AI Studio
  2. Set GEMINI_API_KEY in your environment, or pass the key via Corsair credentials

Requests use the x-goog-api-key header against
https://generativelanguage.googleapis.com/v1beta.

Missing credentials throw AuthMissingError (never an empty string).

Endpoint overview

| Operation | Operation ID | Path / method | |-----------|--------------|---------------| | countTokens | GEMINI_COUNT_TOKENS | POST /models/{model}:countTokens | | embedContent | GEMINI_EMBED_CONTENT | POST /models/{model}:embedContent | | generateContent | GEMINI_GENERATE_CONTENT | POST /models/{model}:generateContent | | generateImage | GEMINI_GENERATE_IMAGE | POST /models/{model}:generateContent (IMAGE modality) | | generateVideos | GEMINI_GENERATE_VIDEOS | POST /models/{model}:predictLongRunning | | getVideosOperation | GEMINI_GET_VIDEOS_OPERATION | GET /{operationName} | | listModels | GEMINI_LIST_MODELS | GET /models | | waitForVideo | GEMINI_WAIT_FOR_VIDEO | Poll operation until done / error / timeout |

Quirks & caveats

  • Model-scoped paths require /models/. e.g. /models/gemini-2.5-flash:generateContent (not bare /{model}:…).
  • Image generation forces responseModalities: ['IMAGE'] after merging caller generationConfig, so callers cannot accidentally drop the IMAGE modality.
  • generateContent convenience field text is the first candidate text with markdown fences stripped.
  • Veo is long-running. generateVideos returns an operation name; use getVideosOperation or waitForVideo to poll. Video models may require special access / billing.
  • Image / Veo free-tier quotas are strict; text ops (listModels, countTokens, generateContent) are the most reliable smoke path. Image/Veo may return HTTP 429 under free tier.

Tests

pnpm --filter @corsair-dev/gemini test
  • Offline unit tests always run (no API key).
  • Live API tests run only when GEMINI_API_KEY is set.
  • Image/Veo live tests soft-skip on 429/404 so free-tier quota does not fail CI.

Live demo (R4 Loom recording)

# PowerShell
$env:GEMINI_API_KEY = "..."
pnpm --filter @corsair-dev/gemini demo

# bash
export GEMINI_API_KEY=...
pnpm --filter @corsair-dev/gemini demo

Or: node packages/gemini/scripts/demo.mjs

Working proof recording (R4): https://www.loom.com/share/63d553fc757f4d44aa9fda4b2a19fb74