Build with AI
Tell your AI agent to use jsKjs
Ask your coding agent to use jsKjs and you get smaller diffs, fewer invented APIs and pages that work by opening a file. Drop in one rules file, say one sentence.
The advantages
Why ask your agent to use jsKjs?
One mental model, not four
An agent asked to add "live search with a fade-in" to a jQuery + htmx + Alpine + GSAP page must juggle four APIs, load orders and overlapping ideas of state. With jsKjs there is one $, one attribute prefix and one rules file.
A closed, written-down API
The rules file lists every available method and every common method that is not available. Agents hallucinate less when the boundary is explicit — and when they want something missing, the rules tell them to say so instead of faking it.
Changes you can review at a glance
<form kj-post="/subscribe.php" kj-target="#msg"> says what it does. Declarative diffs are short, local to the HTML they affect, and easy to approve — the opposite of a 40-line handler buried in a script file.
Training data that already transfers
Models have read an enormous amount of jQuery. jsKjs keeps those names and signatures, so the agent's instincts are mostly right from the first prompt; the rules file covers the differences.
No build step to break
Agents fail most often in toolchains: bundler configs, version conflicts, missing dev servers. A jsKjs page is a file you open in a browser. The agent can verify its own work, and it deploys to any PHP shared host — like the one this site runs on.
Small enough to read in full
The whole readable library is about 40 KB of source — a few thousand tokens. When an agent is unsure how something behaves, it can read the actual implementation instead of guessing.
Server-rendered HTML plays to agent strengths
Hyper endpoints return HTML fragments. Agents write small PHP, Python or Node handlers well, and escaping output there is one obvious line.
Fast pages by default
About 8.1 KB instead of ~90 KB for the four libraries it replaces, with zero dependencies. Performance is part of what you ship, even when an AI wrote it.
'unsafe-eval' under a strict CSP. And it is a young library — the rules file lists what is not included so your agent can tell you instead of improvising.How to ask
Three steps
Drop in the rules
Copy one file for your tool — or
AGENTS.md, which most agents read. Get the kit.Say one sentence
Start your request with “Use jsKjs”. The rules do the rest: one script tag, attributes first, real APIs only.
Review the HTML
kj-post="/save.php" kj-target="#msg"reads like a sentence. Approve, open the file, done.
The one sentence
Build this page with jsKjs (https://jskjs.org). Load only https://jskjs.org/cdn/1.0.0/jskjs.min.js — no jQuery, htmx, Alpine.js or GSAP. Prefer kj-* attributes for server requests and kj-data for UI state; use $() only when attributes can't express it. Read https://jskjs.org/llms-full.txt first if you can.Pick your tool
Rules files for every major coding agent
Each is generated from the same source, so they never drift apart.
Claude Code & Claude.ai
CLAUDE.md AGENTS.md .claude/skills/jskjs/SKILL.md
OpenAI Codex
AGENTS.md
GitHub Copilot
.github/copilot-instructions.md .github/instructions/jskjs.instructions.md AGENTS.md
Cursor
.cursor/rules/jskjs.mdc AGENTS.md
VS Code agents with OpenRouter
.clinerules/jskjs.md .roo/rules/jskjs.md .continue/rules/jskjs.md AGENTS.md
Windsurf / Devin Desktop
.windsurf/rules/jskjs.md AGENTS.md
Gemini CLI
GEMINI.md AGENTS.md
llms.txt & llms-full.txt
Point any model at /llms-full.txt.