> ## Documentation Index
> Fetch the complete documentation index at: https://docs.frostwolf.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Introduction

> Runtime security for AI agents. Stop prompt injection, validate tool calls, and keep personal data out of your models.

FrostWolf sits between your application and the model. It inspects what goes in and what the model tries to do, and it acts before anything reaches a provider.

<CardGroup cols={2}>
  <Card title="Guard" icon="shield" href="/guard/scan">
    Detects prompt injection and jailbreaks, validates tool calls before they run,
    and blocks or redacts a request before it reaches the model.
  </Card>

  <Card title="Cloak" icon="lock" href="/cloak/overview">
    Finds personal data in a request, replaces it before the model sees it, and
    restores it in the response for the identity that owns it.
  </Card>
</CardGroup>

## How you use it

You keep the model client you already use. FrostWolf wraps the call.

<CodeGroup>
  ```ts TypeScript theme={null}
  import { FrostWolfClient } from "@frostwolfai/sdk";

  const fw = new FrostWolfClient({ apiKey: process.env.FROSTWOLF_API_KEY! });

  const result = await fw.guard.scan("Ignore all previous instructions.");
  result.blocked; // true
  ```

  ```python Python theme={null}
  from frostwolf import FrostWolfClient

  fw = FrostWolfClient(api_key=os.environ["FROSTWOLF_API_KEY"])

  result = fw.guard.scan("Ignore all previous instructions.")
  result.blocked  # True
  ```
</CodeGroup>

Working in Claude Code? The [Claude Code plugin](/integrations/claude-code) brings Guard and Cloak into every coding session, with no code to change.

## Where detection happens

Detection runs on the FrostWolf control plane, not in your process. The SDK sends text and receives a verdict, and it holds no rules, patterns, or recognisers of its own. That is deliberate: a rule set that ships to a client is a rule set an attacker can read and step around, and one implementation on the server means there is no stale copy to reconcile.

The cost is that inspection needs the network. Every SDK has an explicit policy for when it is not there, and the default is to refuse the request rather than guess. See [Failure handling](/guard/failure-handling).

## What is in these docs

<CardGroup cols={3}>
  <Card title="Quickstart" icon="rocket" href="/quickstart">
    Install, scan a prompt, and wrap a model call in five minutes.
  </Card>

  <Card title="Cloak" icon="lock" href="/cloak/overview">
    Protect personal data, payment cards, and credentials.
  </Card>

  <Card title="API reference" icon="code" href="/api/overview">
    The control plane endpoints, if you are not using an SDK.
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.