Pour vos utilisateurs
Ils parlent à votre application. L'application le fait.
Produit
OwlLayer AI ajoute un agent dans votre application web. Vos utilisateurs demandent ce qu'ils veulent, à l'écrit ou à la voix. L'agent appelle les actions que votre interface déclare, et votre code fait le travail.
Rien à installer, à mettre à jour ni à activer
Logos et noms appartiennent à leurs propriétaires et indiquent seulement la compatibilité.
Deux côtés, un produit
Ils parlent à votre application. L'application le fait.
Vous déclarez des actions. Votre code fait toujours le travail.
Ce que votre équipe écrit
Placez-la sur le composant qui porte l'action, ou sur un simple élément HTML avec quelques attributs. Aucun framework n'est requis, et rien d'autre ne change dans votre application. Docs
Avant : votre code aujourd'hui
import { useState } from 'react'; export function ProductPage({ product }) { const [quantity, setQuantity] = useState(1); const [added, setAdded] = useState(false); async function addToCart(productId, qty) { await cart.add(productId, qty); setAdded(true); } return ( <article> <h1>{product.name}</h1> <input type="number" min={1} value={quantity} onChange={(e) => setQuantity(Number(e.target.value))} /> <button onClick={() => addToCart(product.id, quantity)}> {added ? 'Added' : 'Add to cart'} </button> </article> );}Après : avec OwlLayer AI
import { useState } from 'react';import { useAgentTool } from '@owllayer/react';import { z } from 'zod'; export function ProductPage({ product }) { const [quantity, setQuantity] = useState(1); const [added, setAdded] = useState(false); async function addToCart(productId, qty) { await cart.add(productId, qty); setAdded(true); } // The same action, now callable by the agent. useAgentTool( { name: 'add_to_cart', description: `Add a product to the cart. On screen: ${product.name} (id ${product.id})`, schema: z.object({ productId: z.string(), quantity: z.number().int().min(1), }), risk: 'low', }, async ({ productId, quantity }) => { await addToCart(productId, quantity); setQuantity(quantity); return { productId, quantity }; }, ); return ( <article> {/* …same markup as before… */} </article> );}Rien d’autre ne change : même état, même handler, même balisage. Les lignes surlignées sont tout ce que vous ajoutez. Docs
Neural-DOM Binding
Neural-DOM Binding, c'est le lien entre le modèle qui comprend votre utilisateur et la page vivante qu'il utilise. Le modèle ne clique jamais : il choisit, par son nom, une action que votre page a déclarée.
Animation. Un utilisateur demande d'ajouter deux articles au panier. Le modèle lit les actions déclarées sur l'écran et choisit add_to_cart avec la quantité 2. L'appel rejoint la page, votre code l'exécute, le panier affiche 2, et le résultat revient au modèle, qui répond. En dessous, un curseur qui cherche le sélecteur d'un bouton est barré.
À côté de MCP
Si vous connaissez MCP, OwlLayer AI le complète. L'un déclare ce que vos services savent faire ; l'autre déclare ce que votre interface permet, maintenant.
Les deux fonctionnent ensemble : le même agent peut utiliser les deux.
Des ponts MCP sont prévus sur la feuille de route.
Vos clients web se connectent à un seul serveur OwlLayer AI. Il détient les clés des modèles, dialogue avec le modèle et renvoie chaque appel vers la page qui l'a déclaré.
Vos interfaces
Serveur OwlLayer AI
ws://localhost:3000/owllayer
Les clés restent ici
Votre modèle
Les paquets sont publiés sous le scope @owllayer, sous licence MIT. Versions vérifiées le 7 octobre 2026
Installez le serveur et un client, déclarez une action, et demandez-la.
owlLaunch() · en attente
OwlLayer AI termine sa première version publique. Rendez-vous à la date ci-dessous.
Résultat de l'outilowlLaunch()
{
"ok": false,
"status": "scheduled",
"opens_at": "2026-10-05T09:00:00.000Z"
}