Home
YuktAI, documented and running live
YuktAI is an open-source toolkit for accessible, AI-assisted web apps: an accessibility widget, a data grid you can talk to, page Q&A, agents, icons and optional Rust engines. Use it in Next.js / React or in plain HTML with one script tag. Everything on this site runs in your browser, with no API keys and no server.
Live status
What is running on this page
- YuktAI 5.3.12
- Latest on npm: checking…
Loading YuktAI…
The ♿ and 🛠 buttons at the bottom left are YuktAI itself, and Ask in the top bar answers questions about these docs. Try them on any page.
1. Install
Choose your stack once; every code block on this site follows your choice. Python (Django, Flask, FastAPI) and PHP (Laravel, WordPress) have their own pages.
npm install @yuktishaalaa/yuktai@5.3.9<script src="https://cdn.jsdelivr.net/npm/@yuktishaalaa/yuktai@5.3.9/vanilla/index.min.js"></script>pip install yuktaicomposer require yuktishaalaa/yuktai2. First use in two minutes
"use client"
// YuktAI's components use browser APIs, so they live in a client component.
import { YuktAIWrapper } from "@yuktishaalaa/yuktai"
import type { ReactNode } from "react"
export default function YuktaiClient({ children }: { children: ReactNode }) {
return (
<YuktAIWrapper position="left" launcher showAccessibility showRag engine="rust">
{children}
</YuktAIWrapper>
)
}import type { ReactNode } from "react"
import YuktaiClient from "./YuktaiClient"
export default function RootLayout({ children }: { children: ReactNode }) {
return (
<html lang="en">
<body>
<YuktaiClient>{children}</YuktaiClient>
</body>
</html>
)
}<!doctype html>
<html lang="en">
<head><meta charset="utf-8"><title>My page</title></head>
<body>
<main>
<h1>Staff</h1>
<div id="staff"></div>
</main>
<!-- 1. optional settings for the floating buttons -->
<script>
window.YUKTAI_CONFIG = { position: "left", showPageTools: true }
</script>
<!-- 2. YuktAI: adds window.yuktai and the ♿ / 🛠 buttons -->
<script src="https://cdn.jsdelivr.net/npm/@yuktishaalaa/yuktai@5.3.9/vanilla/index.min.js"></script>
<!-- 3. use it -->
<script>
yuktai.renderGrid("#staff", {
data: [
{ id: 1, name: "Ravi Rao", city: "Hyderabad", salary: 120000 },
{ id: 2, name: "Asha Iyer", city: "Pune", salary: 85000 }
],
columns: [
{ key: "name", label: "Name" },
{ key: "city", label: "City" },
{ key: "salary", label: "Salary", type: "number" }
],
engine: "auto",
showSearchTime: true
})
</script>
</body>
</html>3. Pick what you need
Accessibility widget
Floating ♿ button: high contrast, dark mode, text size, dyslexia font, colour-blind filters, reduced motion, large targets, speak on focus. Saved per visitor.
Open accessibility widgetData grid
Search, sort, pages, selection, CSV, five themes, Telugu UI, keyboard grid navigation, and the search time with the engine that ran it.
Open data gridGrid agents
Ask the data in plain words (“salary over 1 lakh in Hyderabad”), multi-step tasks, custom rules in Telugu, WebMCP tools for browser AI agents.
Open grid agentsAsk page (RAG)
New: the Ask page panel. Answers from the page itself with the source highlighted, Rust search, on-device AI, Telugu, nothing sent anywhere. Try Ask in the top bar.
Open ask page (rag)Page tools
Six tools in one panel: Copilot, QA report with 15 WCAG checks, form review, design review, Ask page and voice commands.
Open page toolsNext.js setup
Pick the buttons you want (launcher, ♿, 💬, 🤖, ⚡, 🛠) and copy a ready YuktAIWrapper layout for the App Router.
Open next.js setupPython (pip)
Open Python setuppip install yuktaiadds the ♿ widget and 🛠 page tools to Django, Flask and FastAPI pages in one line.PHP (Composer)
Open PHP setupcomposer require yuktishaalaa/yuktaiadds the ♿ widget and 🛠 page tools to plain PHP, Laravel and WordPress pages.Icon studio
Every YuktAI icon at any size you type, in any colour, outline or filled. Copy React or HTML code, download PNG or SVG.
Open icon studioFunction playground
Run the core functions (grid queries, BI, tasks, anomalies, voice, contrast) on your own input and copy the call.
Open function playgroundRust engines
Rust compiled to WebAssembly for grid search/sort and page RAG, the default since 5.3.11. Time it against TypeScript on your own row count.
Open rust engines
How YuktAI works
One codebase, two ways in
The npm package gives React components (YuktaiGrid, AgenticPanel, YuktAIWrapper, 163 icon components). The vanilla build is the same core code bundled into one script that adds window.yuktai. A question gets the same answer in both.
Private by design
Accessibility fixes, grid questions, page search, audits and the Rust engines all run in the visitor's browser. Nothing is sent to a server, and there is no telemetry.
Indic languages
Telugu grid UI and messages (locale: "te-IN"), Telugu-aware search tokens, Telugu custom rules for the assistant, and Telugu voice input where the browser supports it.
Rust by default
Since 5.3.11, grid search/sort and page RAG run in Rust (WebAssembly) by default; engine: "ts" keeps TypeScript only. The WebAssembly is embedded in the script, so there is nothing extra to host, and TypeScript takes over with the same results if WebAssembly is not available.
What's new
| Release | What changed |
|---|---|
| 5.3.12 | Grid AI Assistant colours now meet WCAG AA (header, AI badge, open and send buttons, listening mic: 5:1 or more). The QA report no longer fails disabled controls, which WCAG 1.4.3 exempts. |
| 5.3.11 | 🛠 Page tools in React and Next.js (showPageTools). Rust is the default engine. QA skips YuktAI's own buttons and applies the WCAG 2.5.8 spacing rule. Built with TypeScript 7. No more "output language" warnings from Chrome's built-in AI. |
Nothing to change in your code for either release: npm install @yuktishaalaa/yuktai@latest, or 5.3.12 in the script URL. Full history on GitHub (opens in a new tab).
Keeping up with new releases
- Try a new release on any page first: add
?v=5.3.11(any version) to the address. It lasts for this browser tab;?v=defaultgoes back. - For the whole site, change
versioninassets/js/config.jsand theCACHEname insw.js, then push. Netlify redeploys in under a minute. - For your apps:
npm install @yuktishaalaa/yuktai@latest,pip install -U yuktai,composer update yuktishaalaa/yuktai, or change the version in the script URL.
Honest limits
- Questions are understood with rules, not a language model, so unusual phrasing may need rewording. Telugu and Hindi data questions need custom rules.
- Ask page is keyword retrieval (BM25), not embeddings: it finds passages that share words with the question. An English question will not match Telugu-only text.
- QA, form and design checks are heuristics. Test with a keyboard and a screen reader before release.
- Voice depends on the browser's speech recognition. Typed commands always work.
- WebMCP needs
document.modelContext; the real status is always reported.