Ainative Nextjs Sdk
/install ainative-nextjs-sdk
@ainative/next-sdk
Server-side AINative client for Next.js with App Router support, streaming chat, and auth middleware.
Install
npm install @ainative/next-sdk
Server Client — Chat Completions
// app/api/chat/route.ts
import { createServerClient } from '@ainative/next-sdk/server';
export async function POST(request: Request) {
const { messages } = await request.json();
const client = createServerClient({
apiKey: process.env.AINATIVE_API_KEY!,
});
// Non-streaming
const result = await client.chat.completions.create({
model: 'claude-3-5-sonnet-20241022',
messages,
max_tokens: 1024,
});
return Response.json(result);
}
Streaming Response
// app/api/chat/route.ts
import { createServerClient } from '@ainative/next-sdk/server';
export async function POST(request: Request) {
const { messages } = await request.json();
const client = createServerClient({ apiKey: process.env.AINATIVE_API_KEY! });
const stream = await client.chat.completions.create({
model: 'claude-3-5-sonnet-20241022',
messages,
stream: true,
});
return new Response(stream.body, {
headers: {
'Content-Type': 'text/event-stream',
'Cache-Control': 'no-cache',
},
});
}
Auth Middleware
// middleware.ts (repo root or src/)
import { createMiddleware } from '@ainative/next-sdk/middleware';
export const middleware = createMiddleware({
apiKey: process.env.AINATIVE_API_KEY!,
protectedPaths: ['/dashboard', '/api/protected'],
loginPath: '/login',
publicPaths: ['/', '/about', '/api/chat'],
});
export const config = {
matcher: ['/((?!_next/static|_next/image|favicon.ico).*)'],
};
Client-Side (App Router)
// app/components/Chat.tsx
'use client';
import { useState } from 'react';
export function Chat() {
const [messages, setMessages] = useState\x3C{ role: string; content: string }[]>([]);
const [input, setInput] = useState('');
const send = async () => {
const newMessages = [...messages, { role: 'user', content: input }];
setMessages(newMessages);
setInput('');
const res = await fetch('/api/chat', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ messages: newMessages }),
});
const data = await res.json();
setMessages([...newMessages, data.choices[0].message]);
};
return (
\x3Cdiv>
{messages.map((m, i) => \x3Cp key={i}>\x3Cb>{m.role}:\x3C/b> {m.content}\x3C/p>)}
\x3Cinput value={input} onChange={e => setInput(e.target.value)} />
\x3Cbutton onClick={send}>Send\x3C/button>
\x3C/div>
);
}
Pages Router (API route)
// pages/api/chat.ts
import type { NextApiRequest, NextApiResponse } from 'next';
import { createServerClient } from '@ainative/next-sdk/server';
export default async function handler(req: NextApiRequest, res: NextApiResponse) {
const client = createServerClient({ apiKey: process.env.AINATIVE_API_KEY! });
const result = await client.chat.completions.create({
model: 'claude-3-5-sonnet-20241022',
messages: req.body.messages,
});
res.json(result);
}
Environment Variables
# .env.local
AINATIVE_API_KEY=ak_your_key
Never expose AINATIVE_API_KEY to the client — only use it in server-side code (route handlers, Server Actions, getServerSideProps).
Exports
import { createServerClient } from '@ainative/next-sdk/server';
import { createMiddleware } from '@ainative/next-sdk/middleware';
References
packages/sdks/nextjs/src/server/createServerClient.ts— Server clientpackages/sdks/nextjs/src/middleware/— Auth middlewarepackages/sdks/nextjs/examples/app-router/— Example apppackages/sdks/nextjs/src/index.ts— Package exports
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install ainative-nextjs-sdk - After installation, invoke the skill by name or use
/ainative-nextjs-sdk - Provide required inputs per the skill's parameter spec and get structured output
What is Ainative Nextjs Sdk?
Use @ainative/next-sdk to add AI chat to Next.js apps (App Router + Pages Router). Use when (1) Installing @ainative/next-sdk, (2) Setting up a streaming cha... It is an AI Agent Skill for Claude Code / OpenClaw, with 99 downloads so far.
How do I install Ainative Nextjs Sdk?
Run "/install ainative-nextjs-sdk" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is Ainative Nextjs Sdk free?
Yes, Ainative Nextjs Sdk is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does Ainative Nextjs Sdk support?
Ainative Nextjs Sdk is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created Ainative Nextjs Sdk?
It is built and maintained by Toby Morning (@urbantech); the current version is v1.0.0.