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

# Install Package

> One endpoint to get everything you need to make your site AI-agent-ready

A single API call returns all 11 installation artifacts needed to make your site fully discoverable by humans, browsers, LLMs, and AI agents.

<Note>
  The install package can be deployed via **Google Tag Manager** without touching your site's codebase — no developer required. Add one GTM tag for the widget script and your site is live. This is a key commercial argument for agencies and their clients.
</Note>

## Quick Start

### 1. Fetch your install package

```bash theme={null}
curl "https://api.animam.ai/tenants/your-slug/install-package?domain=example.com" \
  -H "Authorization: Bearer ak_your_token"
```

### 2. Apply each item

Each item in the response tells you exactly what to do:

* `action: "create"` → create the file at the target path
* `action: "append"` → append the content to an existing file
* `target` → file path or HTML location (`<head>`, `<body>`, etc.)

### 3. Verify

```bash theme={null}
# Check agent.json
curl https://example.com/.well-known/agent.json

# Check llms.txt
curl https://example.com/llms.txt

# Check robots.txt additions
curl https://example.com/robots.txt
```

## Endpoint

```
GET /tenants/{slug}/install-package?domain={domain}
```

**Required scope**: `settings:read`

| Parameter | Type   | Description                                      |
| --------- | ------ | ------------------------------------------------ |
| `slug`    | string | Your tenant slug                                 |
| `domain`  | string | Your site domain (used to generate correct URLs) |

## Response Structure

```json theme={null}
{
  "items": [...],
  "agentInstructions": "Step-by-step guide for AI agents performing the install",
  "meta": {
    "total": 11,
    "required": 4,
    "optional": 7
  }
}
```

Each item has:

| Field      | Description                                   |
| ---------- | --------------------------------------------- |
| `id`       | Item identifier (e.g. `widget`, `agent_card`) |
| `priority` | Install priority (1 = highest)                |
| `action`   | `create` or `append`                          |
| `target`   | File path or HTML location                    |
| `content`  | The actual content to install                 |
| `notes`    | Framework-specific instructions               |

## Installation Items (Priority Order)

### 1. widget

**Priority**: 1 · **Action**: `append` · **Target**: `<body>`

The chat widget script tag. Place just before `</body>`.

```html theme={null}
<script
  src="https://cdn.animam.ai/widget.js"
  data-tenant="your-slug"
  async
></script>
```

**Framework notes**:

* **Next.js App Router**: Add in `app/layout.tsx` using `next/script` with `strategy="afterInteractive"`
* **Next.js Pages Router**: Add in `pages/_document.tsx` inside `<body>`
* **Nuxt**: Add in `nuxt.config.ts` under `app.head.script`
* **WordPress**: Use a plugin like "Insert Headers and Footers" or add to `footer.php`
* **Static HTML**: Paste before `</body>` in your HTML file

***

### 2. meta\_tags

**Priority**: 2 · **Action**: `append` · **Target**: `<head>`

AI agent meta tags that signal your site has an active AI assistant.

```html theme={null}
<meta name="ai-agent" content="animam" />
<meta name="llm-context" content="https://example.com/llms.txt" />
<link rel="llm-feed" type="application/json" href="https://example.com/.well-known/llmfeed.json" />
```

**Framework notes**:

* **Next.js App Router**: Export a `metadata` object from `app/layout.tsx`
* **Next.js Pages Router**: Use `<Head>` from `next/head` in `_app.tsx`
* **Nuxt**: Add in `nuxt.config.ts` under `app.head.meta`
* **WordPress**: Add via `wp_head` hook in `functions.php`

***

### 3. webmcp

**Priority**: 3 · **Action**: `append` · **Target**: `<head>`

WebMCP script for Chrome 146+ AI agents. Enables direct browser-side MCP tool discovery.

```html theme={null}
<script
  src="https://cdn.animam.ai/webmcp.js"
  data-mcp-url="https://mcp.animam.ai/tenants/your-slug"
  async
></script>
```

<Note>
  WebMCP is only active in browsers that support the AI APIs (Chrome 146+). It degrades gracefully in other browsers.
</Note>

***

### 4. agent\_card

**Priority**: 4 · **Action**: `create` · **Target**: `.well-known/agent.json`

Google A2A protocol agent card. Makes your agent discoverable to other AI agents.

```json theme={null}
{
  "name": "Your Agent Name",
  "description": "...",
  "url": "https://api.animam.ai/tenants/your-slug/chat",
  "version": "1.0.0",
  "capabilities": ["chat", "tools"],
  "authentication": {
    "type": "bearer"
  }
}
```

**Framework notes**:

* **Next.js**: Create `app/.well-known/agent.json/route.ts` returning JSON, or add to `public/.well-known/agent.json`
* **Nuxt / Static**: Place at `public/.well-known/agent.json`
* **WordPress**: Add a rewrite rule pointing `/.well-known/agent.json` to a static file

***

### 5. llmfeed

**Priority**: 5 · **Action**: `create` · **Target**: `.well-known/llmfeed.json`

Machine-readable capabilities manifest. Describes what your agent can do to other LLMs and AI orchestrators.

**Framework notes**: Same as `agent_card` — place at `public/.well-known/llmfeed.json` or serve via a route handler.

***

### 6. mcp\_discovery

**Priority**: 6 · **Action**: `create` · **Target**: `.well-known/mcp.json`

MCP server discovery file. Points MCP clients to your tenant's MCP endpoint.

```json theme={null}
{
  "mcpServers": {
    "animam": {
      "url": "https://mcp.animam.ai/tenants/your-slug",
      "transport": "sse"
    }
  }
}
```

***

### 7. llms\_txt

**Priority**: 7 · **Action**: `create` · **Target**: `/llms.txt`

Human and LLM readable manifest of your site's AI capabilities. Follows the emerging `llms.txt` standard.

**Framework notes**:

* **Next.js / Nuxt**: Place in `public/llms.txt`
* **WordPress**: Place in the site root or use a plugin to serve it

***

### 8. robots\_txt

**Priority**: 8 · **Action**: `append` · **Target**: `/robots.txt`

Lines to append to your existing `robots.txt` to guide AI crawlers.

```
# AI Agent Discovery
Allow: /.well-known/agent.json
Allow: /.well-known/llmfeed.json
Allow: /.well-known/mcp.json
Allow: /llms.txt
```

<Note>
  This item uses `action: "append"` — do not replace your existing `robots.txt`, only add these lines at the end.
</Note>

***

### 9. jsonld

**Priority**: 9 · **Action**: `append` · **Target**: `<head>`

JSON-LD structured data (schema.org `SoftwareApplication`) for search engines and AI crawlers.

```html theme={null}
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "SoftwareApplication",
  "name": "Your Agent Name",
  "applicationCategory": "BusinessApplication",
  "url": "https://example.com",
  "offers": {
    "@type": "Offer",
    "price": "0"
  }
}
</script>
```

***

### 10. qr\_code

**Priority**: 10 · **Action**: `create` · **Target**: Physical display (poster, business card)

QR code URLs pointing to your widget. Use these for offline materials.

```json theme={null}
{
  "standard": "https://api.animam.ai/tenants/your-slug/qr?size=300",
  "large": "https://api.animam.ai/tenants/your-slug/qr?size=600"
}
```

***

### 11. form\_widget

**Priority**: 11 · **Action**: `append` · **Target**: `<body>`

Standalone form widget (\~5KB IIFE). **Only included** if your tenant has at least one `SUBMIT_FORM` or `GENERATE_QUOTE` tool configured.

```html theme={null}
<script
  src="https://cdn.animam.ai/form.js"
  data-tenant="your-slug"
  data-tool="contact-form"
  async
></script>
```

## agentInstructions

The response includes an `agentInstructions` field — a step-by-step natural language guide designed for AI agents performing the installation autonomously (e.g. via an MCP tool or agentic coding assistant). It describes each file to create, each snippet to inject, and how to verify success.

## Full Example

```bash theme={null}
curl "https://api.animam.ai/tenants/acme-corp/install-package?domain=acme.com" \
  -H "Authorization: Bearer ak_your_token" \
  | jq '.items[] | {id, priority, action, target}'
```

```json theme={null}
[
  { "id": "widget",        "priority": 1,  "action": "append", "target": "<body>" },
  { "id": "meta_tags",     "priority": 2,  "action": "append", "target": "<head>" },
  { "id": "webmcp",        "priority": 3,  "action": "append", "target": "<head>" },
  { "id": "agent_card",    "priority": 4,  "action": "create", "target": ".well-known/agent.json" },
  { "id": "llmfeed",       "priority": 5,  "action": "create", "target": ".well-known/llmfeed.json" },
  { "id": "mcp_discovery", "priority": 6,  "action": "create", "target": ".well-known/mcp.json" },
  { "id": "llms_txt",      "priority": 7,  "action": "create", "target": "/llms.txt" },
  { "id": "robots_txt",    "priority": 8,  "action": "append", "target": "/robots.txt" },
  { "id": "jsonld",        "priority": 9,  "action": "append", "target": "<head>" },
  { "id": "qr_code",       "priority": 10, "action": "create", "target": "physical" },
  { "id": "form_widget",   "priority": 11, "action": "append", "target": "<body>" }
]
```
