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

# Quickstart

> Get your first secure agent running in 5 minutes.

By the end of this guide, your agent will authenticate with Anti AI and receive a short-lived access token.

## 1. Create your account

Go to [app.antiailabs.com](https://app.antiailabs.com) and sign up. Anti AI creates a workspace for your organization and gives you the **Owner** role.

## 2. Install the SDK

<Tabs>
  <Tab title="Python">
    ```bash theme={null}
    pip install oculus-sdk
    ```
  </Tab>

  <Tab title="TypeScript">
    ```bash theme={null}
    npm install @oculus/sdk
    ```
  </Tab>
</Tabs>

## 3. Register an agent

In the dashboard, click **Agents → New Agent**. Enter a name and click **Create Agent**.

<Warning>
  Copy the **Client Secret** — it's shown exactly once and can't be retrieved again.
</Warning>

```bash theme={null}
# .env
AGENT_CLIENT_ID=your-client-id-here
AGENT_CLIENT_SECRET=your-client-secret-here
```

## 4. Create a policy

Go to **Policies → New Policy**, name it `allow-db-read`, and paste:

```rego theme={null}
package oculus.authz

default allow = false

allow {
    input.action == "db:read"
    input.subject.status == "active"
}
```

Save it, then go to your agent → **Settings → Policies** and assign it.

## 5. Get a token

<Tabs>
  <Tab title="Python">
    ```python theme={null}
    import os
    from oculus_sdk import OculusClient

    client = OculusClient(
        client_id=os.environ["AGENT_CLIENT_ID"],
        client_secret=os.environ["AGENT_CLIENT_SECRET"],
        base_url="https://api.antiailabs.com",
    )

    token = client.get_token(scope="db:read")
    print("Token:", token[:40], "...")
    ```
  </Tab>

  <Tab title="TypeScript">
    ```typescript theme={null}
    import { OculusClient } from '@oculus/sdk';

    const client = new OculusClient({
      clientId: process.env.AGENT_CLIENT_ID!,
      clientSecret: process.env.AGENT_CLIENT_SECRET!,
      baseUrl: 'https://api.antiailabs.com',
    });

    const token = await client.getToken('db:read');
    console.log('Token:', token.slice(0, 40), '...');
    ```
  </Tab>
</Tabs>

If you see a token printed — you're done.

<Tip>
  The SDK caches the token and renews it automatically. You never manage token lifetimes yourself.
</Tip>

<CardGroup cols={2}>
  <Card title="Run your agent" icon="arrow-right" href="/getting-started/run-your-agent">
    Complete agent example with error handling.
  </Card>

  <Card title="Write policies" icon="shield" href="/getting-started/create-policy">
    Control what your agents can access.
  </Card>
</CardGroup>
