Documentation
Three ways to deploy the agent. Pick one. Replace the placeholder key with the API key you'll find on each domain's page inside your console.
Paste this in your site's <head>. Smallest possible footprint.
<!-- Celot Voice Agent -->
<script
src="https://getcelot.com/agent.js"
data-key="clt_live_YOUR_KEY_HERE"
async
></script>In GTM: Tags → New → Custom HTML. Trigger: All Pages. Paste the snippet below.
<!-- GTM > New Tag > Custom HTML
Trigger: All Pages -->
<script>
(function(d,k){
var s = d.createElement('script');
s.src = 'https://getcelot.com/agent.js';
s.async = true;
s.setAttribute('data-key', k);
d.head.appendChild(s);
})(document, 'clt_live_YOUR_KEY_HERE');
</script>Inject the agent at the edge — no changes to your origin code.
// cloudflare-worker.js — Edge-inject the Celot agent
// Deploy: Cloudflare Dashboard > Workers > Create > paste this.
// Route: yourdomain.com/*
const CELOT_KEY = 'clt_live_YOUR_KEY_HERE';
const INJECT = `<script src="https://getcelot.com/agent.js" data-key="${CELOT_KEY}" async></script>`;
export default {
async fetch(request) {
const res = await fetch(request);
const ct = res.headers.get('content-type') || '';
if (!ct.includes('text/html')) return res;
return new HTMLRewriter()
.on('head', {
element(el) { el.append(INJECT, { html: true }); }
})
.transform(res);
}
};yourdomain.com/*.Drop into your root layout.
// useCelot.ts — for React / Next / TanStack apps
import { useEffect } from 'react';
export function useCelot() {
useEffect(() => {
if (document.querySelector('script[data-celot]')) return;
const s = document.createElement('script');
s.src = 'https://getcelot.com/agent.js';
s.async = true;
s.dataset.key = 'clt_live_YOUR_KEY_HERE';
s.dataset.celot = 'true';
document.head.appendChild(s);
}, []);
}Create an account, register a domain, get a real API key.