overwing weekly downloads statistics
Overwing SDK: guardrails for LLM output, Atlas user-agent lookups (no key needed), Beacon agent-reachability checks, Preflight checks of a Solana transaction before an agent signs it, and Tower clearance for agents operating legacy systems. Typed client,
overwing has 33 recorded weekly downloads on npm, ranking #1805 of 2,644 tracked listings.
About overwing
npm install overwing
It works with no key: new Overwing().evaluate(text) runs 10 evaluations a day on inputs up to 2,000 characters, and text sent without a key is not stored. For more, get a free API key at overwing.ai (250 evaluations a day), or let your agent make its own account with Overwing.signup(), which needs no email (see An account for an agent).
The text can be in any language. It was tested on 2026-09-29 in Spanish, Portuguese, French, German, Japanese, Simplified Chinese, Korean, Arabic and Hindi: a small test, not a benchmark. Results come back in English.
Vercel AI SDK middleware
Wrap any model. Works with AI SDK 6 and 7 (generateText, streamText, generateObject, agents, everything).
import { openai } from "@ai-sdk/openai";
import { generateText, wrapLanguageModel } from "ai";
import { overwingGuardrail } from "overwing/ai-sdk";
const model = wrapLanguageModel({
model: openai("gpt-5"),
middleware: overwingGuardrail(), // reads OVERWING_API_KEY
});
const { text, providerMetadata } = await generateText({ model, prompt: "Draft a reply to this customer." });
console.log(providerMetadata?.overwing); // { verdict: "pass", confidence: 0.97, id: "eval_…", … }
What happens by default:
| Verdict | Default action | Change it with |
|---|---|---|
pass | Response returned, verdict attached to providerMetadata.overwing | |
review | Returned and annotated so you can route it | onReview: "throw" | "replace" |
fail, recommended action block | Throws OverwingGuardrailError (carries the full evaluation) | onFail: "replace" | "annotate" |
fail, recommended action redact (e.g. personal data) | Replaces the text with the safe fallback instead of throwing | honorActions: false to treat every fail alike |
Streaming is buffered by default: tokens are held until the model finishes and the verdict is in, so a failing response never reaches the screen. Set streaming: "passthrough" to stream immediately and end with an error on fail.
overwingGuardrail({
ruleSet: "content-safety", // or your own rule set slug
onFail: "replace", // "throw" (default) | "replace" | "annotate"
onReview: "annotate", // "annotate" (default) | "throw" | "replace"
replacement: "I can't share that response.",
checkInput: true, // also score the user's latest message before calling the model
streaming: "buffer", // "buffer" (default) | "passthrough"
metadata: (params) => ({ userId: "u_123" }),
context: (params) => ({ recipient: "customer", channel: "chat" }), // facts the rules may reference
honorActions: true, // redact-level fails replace rather than throw
onVerdict: (evaluation, phase) => console.log(phase, evaluation.verdict),
failOpen: false, // true = if Overwing is unreachable, let the response through unscored
});
OpenAI Agents SDK guardrails
import { Agent, run } from "@openai/agents";
import { overwingInputGuardrail, overwingOutputGuardrail } from "overwing/openai-agents";
const agent = new Agent({
name: "Support",
instructions: "Help the customer.",
inputGuardrails: [overwingInputGuardrail()], // scores the user's message
outputGuardrails: [overwingOutputGuardrail()], // scores the agent's final answer
});
try {
const result = await run(agent, "Reach me at dana@example.com to sort out the refund.");
} catch (err) {
// InputGuardrailTripwireTriggered / OutputGuardrailTripwireTriggered
// err.result.output.outputInfo.evaluation → the full Overwing verdict
}
Both accept ruleSet, tripOn: "fail" | "fail-or-review", metadata, onVerdict, and failOpen. Input guardrails run in parallel with the agent by default; pass runInParallel: false to block before the model is called.
Atlas: who is this user agent? (no key needed)
Overwing Atlas is a registry of AI crawlers, fetchers and browser agents. Give it a User-Agent string and it says what the string claims to be and whether that claim can be trusted.
import { Atlas } from "overwing";
const atlas = new Atlas(); // no key: 10 lookups a day. With OVERWING_API_KEY set: 100, or your Atlas plan's limit.…
Description from the npm listing.
- overwing
- guardrails
- llm
- ai-safety
- content-moderation
- pii
- toxicity
- vercel-ai-sdk
- ai-sdk
- middleware
- agents
- typescript
- openai-agents
- openai-agents-sdk
- guardrail
- user-agent
- bot-detection
- web-bot-auth
- legacy-systems
- solana
README badge
Show your rank in a README or on your website. The badge updates automatically.
Charts
Images: 30d · 1y · all time · 1600×900 dark
Adoption over time
7/30/90-day growth
Ranking history
Listing placement
Listing placement
Filled points are observed values; hollow points come from Internet Archive snapshots of the listing page. Dashed segments span periods with no observations — values between points are not interpolated.
Each band is one page of 20. Weekly downloads on a linear scale. Placement is projected from weekly downloads, so it can differ from the marketplace's own sort order. Hover a dot to see the listing.
Recent observations
Full history (1)Similar npm AI SDKs plugins
All 20 overwing alternativesData source
Weekly downloads (trailing 7 complete days) come from the official npm downloads API. Downloads include CI and mirrors and are not equivalent to installs or users. npm publishes no ratings.
Listing: https://www.npmjs.com/package/overwing. First seen Oct 28, 2026; last successful collection Oct 28, 2026. See the methodology.