
Security News
Rolldown Pulls Rust React Compiler Integration After Binary Size Increase
Rolldown paused Rust React Compiler integration after a 5MB binary size increase raised concerns about shipping React-specific code to all Vite users.
evalguardai-anthropic
Advanced tools
Drop-in Anthropic SDK wrapper with EvalGuard guardrails, logging & cost tracking
Drop-in Anthropic SDK wrapper that adds real-time guardrails, trace logging, and cost tracking via EvalGuard.
npm install @evalguard/anthropic @anthropic-ai/sdk
import Anthropic from "@anthropic-ai/sdk";
import { wrapAnthropic } from "@evalguard/anthropic";
const anthropic = wrapAnthropic(new Anthropic(), {
apiKey: "eg_...",
projectId: "proj_...",
});
// Use exactly like the normal Anthropic SDK — guardrails are automatic
const message = await anthropic.messages.create({
model: "claude-sonnet-4-20250514",
max_tokens: 1024,
messages: [{ role: "user", content: "Hello, how are you?" }],
});
console.log(message.content[0].text);
Streaming works transparently with both create({ stream: true }) and the stream() helper method.
const stream = await anthropic.messages.create({
model: "claude-sonnet-4-20250514",
max_tokens: 1024,
messages: [{ role: "user", content: "Write a poem about AI safety" }],
stream: true,
});
for await (const event of stream) {
if (event.type === "content_block_delta" && event.delta.type === "text_delta") {
process.stdout.write(event.delta.text);
}
}
const stream = await anthropic.messages.stream({
model: "claude-sonnet-4-20250514",
max_tokens: 1024,
messages: [{ role: "user", content: "Explain quantum computing" }],
});
for await (const event of stream) {
if (event.type === "content_block_delta" && event.delta.type === "text_delta") {
process.stdout.write(event.delta.text);
}
}
const anthropic = wrapAnthropic(new Anthropic(), {
// Required: your EvalGuard API key
apiKey: "eg_...",
// Optional: EvalGuard API base URL (default: https://evalguard.ai/api/v1)
baseUrl: "https://your-evalguard-instance.com/api/v1",
// Optional: block requests that fail guardrails (default: true)
blockOnViolation: true,
// Optional: log all requests to EvalGuard (default: true)
enableLogging: true,
// Optional: project ID for organizing traces
projectId: "proj_...",
// Optional: custom metadata attached to every trace
metadata: { environment: "production", service: "chatbot" },
// Optional: callback when a guardrail violation is detected
onViolation: (result) => {
console.warn("Guardrail violation:", result.violations);
},
});
| Phase | Action |
|---|---|
| Pre-request | Sends the prompt (including system prompt) to EvalGuard's firewall for prompt injection detection, PII scanning, and toxicity checks |
| LLM call | Passes through to the real Anthropic API unchanged |
| Post-response | Logs model, tokens, latency, cost, and guardrail results as a trace to EvalGuard |
If EvalGuard is unreachable (network error, timeout, 5xx), the wrapper passes requests through to Anthropic directly. Your application never breaks because of EvalGuard downtime.
When blockOnViolation is true (default) and a guardrail check fails:
import { EvalGuardViolationError } from "@evalguard/anthropic";
try {
const message = await anthropic.messages.create({
model: "claude-sonnet-4-20250514",
max_tokens: 1024,
messages: [{ role: "user", content: "malicious prompt..." }],
});
} catch (error) {
if (error instanceof EvalGuardViolationError) {
console.log("Blocked:", error.violations);
// [{ type: "prompt_injection", severity: "critical", message: "..." }]
}
}
Set blockOnViolation: false to log violations without blocking:
const anthropic = wrapAnthropic(new Anthropic(), {
apiKey: "eg_...",
blockOnViolation: false,
onViolation: (result) => {
analytics.track("guardrail_violation", result);
},
});
MIT
FAQs
Drop-in Anthropic SDK wrapper with EvalGuard guardrails, logging & cost tracking
We found that evalguardai-anthropic demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Rolldown paused Rust React Compiler integration after a 5MB binary size increase raised concerns about shipping React-specific code to all Vite users.

Security News
/Research
Mini Shai-Hulud expands into the Go ecosystem after hitting LeoPlatform npm packages and targeting GitHub Actions workflows.

Security News
The Fable shutdown shows how quickly model access can become a business continuity risk for AI-dependent engineering teams.