+
+ npm install @tpmjs/search-registry
+
+
+
+
+ tpmjs.com — The tool registry for AI agents
+
+
+
+ );
+}
diff --git a/apps/tutorial/src/components/overview-slides/OverviewWelcomeSlide.tsx b/apps/tutorial/src/components/overview-slides/OverviewWelcomeSlide.tsx
new file mode 100644
index 0000000..66d149e
--- /dev/null
+++ b/apps/tutorial/src/components/overview-slides/OverviewWelcomeSlide.tsx
@@ -0,0 +1,90 @@
+'use client';
+
+import { motion } from 'framer-motion';
+
+export function OverviewWelcomeSlide(): React.ReactElement {
+ return (
+
+ {/* Gradient background */}
+
+
+ {/* Main content */}
+
+
+
+ General Overview
+
+
+
+
+
+ TPMJS
+
+
+
+
+ The Tool Package Manager for AI
+
+
+
+ An open registry of AI SDK tools that agents can discover and execute at runtime
+
+
+
+ {/* Press to continue */}
+
+
+
+
+ Press any key
+
+
+ );
+}
diff --git a/apps/tutorial/src/components/overview-slides/UseCasesSlide.tsx b/apps/tutorial/src/components/overview-slides/UseCasesSlide.tsx
new file mode 100644
index 0000000..2a8014f
--- /dev/null
+++ b/apps/tutorial/src/components/overview-slides/UseCasesSlide.tsx
@@ -0,0 +1,75 @@
+'use client';
+
+import { motion } from 'framer-motion';
+
+const useCases = [
+ {
+ persona: 'AI Agent Developers',
+ useCase: 'Give agents dynamic capabilities without bundling tools',
+ example: '"Find me a weather tool" → Agent discovers and uses it',
+ gradient: 'from-cyan-500 to-blue-500',
+ },
+ {
+ persona: 'Tool Authors',
+ useCase: 'Get your AI SDK tools discovered by agents worldwide',
+ example: 'npm publish with tpmjs-tool keyword → Indexed in minutes',
+ gradient: 'from-purple-500 to-pink-500',
+ },
+ {
+ persona: 'Platform Builders',
+ useCase: 'Build agent platforms with extensible tool ecosystems',
+ example: 'Users bring their own tools, you provide the runtime',
+ gradient: 'from-emerald-500 to-teal-500',
+ },
+];
+
+export function UseCasesSlide(): React.ReactElement {
+ return (
+
+
+
+
+
Who Uses TPMJS?
+
Three audiences, shared ecosystem
+
+
+ {useCases.map((item, index) => (
+
+
+
+ {item.persona}
+
+
+
+
{item.useCase}
+
{item.example}
+
+
+ ))}
+
+
+
+ All built on standard npm packages and the AI SDK specification
+
+
+
+ );
+}
diff --git a/apps/tutorial/src/components/overview-slides/WhatIsTpmjsSlide.tsx b/apps/tutorial/src/components/overview-slides/WhatIsTpmjsSlide.tsx
new file mode 100644
index 0000000..653ac5f
--- /dev/null
+++ b/apps/tutorial/src/components/overview-slides/WhatIsTpmjsSlide.tsx
@@ -0,0 +1,66 @@
+'use client';
+
+import { motion } from 'framer-motion';
+
+const concepts = [
+ {
+ title: 'A Registry',
+ description: 'A curated database of AI SDK-compatible tools published to npm',
+ icon: '📦',
+ },
+ {
+ title: 'A Discovery API',
+ description: 'Agents search for tools by query, category, or context at runtime',
+ icon: '🔍',
+ },
+ {
+ title: 'A Sandbox Executor',
+ description: 'Run any tool from the registry securely without installing it',
+ icon: '⚡',
+ },
+];
+
+export function WhatIsTpmjsSlide(): React.ReactElement {
+ return (
+
+
+
+
+
What is TPMJS?
+
+ Think of it as npm for AI agent tools — but with runtime discovery and execution
+
+
+
+ {concepts.map((concept, index) => (
+
+
{concept.icon}
+
{concept.title}
+
{concept.description}
+
+ ))}
+
+
+
+ Built on the Vercel AI SDK tool specification
+
+
+