arcjet

Add Arcjet security protection to HTTP routes, agent tool calls, and background jobs.

1|Updated Apr 8, 2026
One-click install
npx skills add https://github.com/arcjet/arcjet-plugin --skill arcjet-arcjet
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: arcjet
Source: https://github.com/arcjet/arcjet-plugin/tree/main/plugins/arcjet/skills/arcjet
Command: npx skills add https://github.com/arcjet/arcjet-plugin --skill arcjet-arcjet

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Applications face bot abuse, prompt injection, rate-limit violations, and sensitive data leaks, but wiring runtime security into HTTP routes and AI agent code paths is error-prone. This Skill guides an AI coding agent through adding Arcjet protection correctly across JavaScript/TypeScript, Python, and Go projects. ## Core Features & Use Cases - Request-based protection: Add rate limiting, bot detection, Shield, email validation, and IP filtering to HTTP route handlers using framework SDKs like @arcjet/next, @arcjet/node, Python arcjet, or arcjet-go. - Guard protection for non-HTTP code: Secure agent tool calls, MCP servers, queue workers, and background jobs with per-operation rate limits, prompt injection detection, sensitive info blocking, and content moderation. - Framework adapters: Load per-adapter references for Vercel AI SDK, Mastra, LangChain, LangGraph, OpenAI Agents, Genkit, Claude Agent SDK, Google ADK, and dedicated Python integration skills. - Use Case: A user asks to "rate limit my AI agent's tool calls" — the Skill bootstraps an ARCJET_KEY via the CLI, installs @arcjet/guard, wraps the tool with the correct adapter, and verifies decisions in the Console. ## Quick Start Ask your AI agent to protect my API endpoint with Arcjet rate limiting and bot detection.

Frequently Asked Questions about arcjet

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I add rate limiting to my API endpoint with Arcjet?▼

Create one Arcjet client at module scope with Shield as a base rule, then call protect() inside each route handler with a rate limit rule like tokenBucket. Use characteristics like userId to key limits per authenticated user rather than by IP.

How do I protect AI agent tool calls from abuse?▼

Use Arcjet Guard instead of request-based protection, since tool calls have no HTTP request. Call guard() with a hardcoded label and per-tool rate limit rules, or use the official adapter for frameworks like Vercel AI SDK, Mastra, or LangChain.

Should I use request-based protection or Guard for MCP servers?▼

Use Guard for MCP servers because MCP tools are invoked over stdio or SSE, not HTTP requests. Request-based protection with protect() only applies when an actual HTTP request object exists, such as in Express or Next.js route handlers.

Which languages and frameworks does Arcjet support?▼

Arcjet supports JavaScript/TypeScript, Python, and Go server-side code. JS frameworks use packages like @arcjet/next and @arcjet/guard, Python uses the arcjet package, and Go uses github.com/arcjet/arcjet-go. Other languages are not supported.

Why is my Arcjet rule not blocking requests after setup?▼

JS and Go HTTP rules default to DRY_RUN mode, so you must pass mode: "LIVE" or ModeLive to enforce. Also verify a real request triggered a decision by checking the CLI with arcjet requests list or the Console, since a missing decision is not a denial.

Can Arcjet detect PII beyond emails and credit card numbers?▼

The default WASM backend detects only email, phone, IP, and credit card numbers. For names, addresses, and government identifiers, add the on-device Rampart NER backend via @arcjet/sensitive-info-rampart or the Python equivalent, and pass it as the rule's backend.