LearnKit@learnkit-ai · v0.1.0
Open SDKs · Apache-2.0

The learning layer
for the AI you
build.

Embed the AI Guide in three lines. Run evals on your users' work. Fork our rubrics - the SDKs are open. Build adaptive learning into your product without writing the pedagogy yourself.

Type-safe end to endZero-config Next.jsRuns in any React appNo build step requiredApache-2.0
shell
1# Install the packages from npm
2pnpm add @learnkit-ai/core @learnkit-ai/react
3
4# Or clone the source
5git clone https://github.com/learnkit-ai/learnkit
6cd learnkit && pnpm install && pnpm dev
7
8# Apache-2.0 · no API key · no signup
Apache-2.0 · runs locally · returns LearningPath
Public API

Six exports. That's the whole surface area.

Small, stable, and inferred from Zod. The shape of LearningPathInput is a contract - it will not change without a major version bump.

FNgenerateLearningPath(input)
Pure function. No network, no LLM. Same input always produces the same path.
@learnkit-ai/core
FNgetSupportedRoles()
Returns the list of role labels you can pass as input.role.
@learnkit-ai/core
FNgetSupportedTools()
Returns the list of tool names you can include in input.tools.
@learnkit-ai/core
JSX<LearningPath />
Renders a full 30-day path. Three built-in themes. CSS variables, no Tailwind.
@learnkit-ai/react
JSX<AIGuide />
Drop-in avatar + tip card. Embed anywhere you want contextual help.
@learnkit-ai/react
HOOKuseLearnKit(input)
Headless hook. Returns { path, error }. Build your own UI on top.
@learnkit-ai/react
<LearnKit.AIGuide />

Drop the AI Guide into your product.

A React component, a Web Component, or a vanilla JS bundle. White-label the avatar, the voice, and the lesson library - keep your brand, get the pedagogy.

Ships in 3 lines of JS
Works in any framework or none
Custom system prompts per route
Streaming, function calls, file inputs
your-app.com / dashboard
Need a hand?
×
Looks like you're about to write a system prompt. Want a 2-min refresher?
// 3 lines.
import { AIGuide } from '@learnkit-ai/react';
<AIGuide apiKey={KEY} userId={user.id} />