NeuroLink
The pipe layer for the AI nervous system.
AI intelligence flows as streams — tokens, tool calls, memory, voice, documents. NeuroLink is the vascular layer that carries these streams from where they are generated (LLM providers: the neurons) to where they are needed (connectors: the organs).
import { NeuroLink } from "@juspay/neurolink";
const pipe = new NeuroLink();
// Everything is a stream
const result = await pipe.stream({ input: { text: "Hello" } });
for await (const chunk of result.stream) {
if ("content" in chunk) {
process.stdout.write(chunk.content);
}
}
→ Docs · → Quick Start · → npm
🧠 What is NeuroLink?
NeuroLink is the universal AI integration platform that unifies 30+ AI providers and 100+ models under one consistent API.
Extracted from production systems at Juspay, NeuroLink provides a practical, TypeScript-first way to integrate AI into any application. Whether you're building with OpenAI, Anthropic, Google, AWS Bedrock, Azure, or any of our 30+ supported providers, NeuroLink gives you a single, consistent interface that works everywhere.
Why NeuroLink? Switch providers with a single parameter change, leverage built-in tools plus any MCP-compliant tool server, deploy with confidence using enterprise features like Redis memory and multi-provider failover, and optimize costs automatically with intelligent routing. Use it via our professional CLI or TypeScript SDK—whichever fits your workflow.
Where we're headed: We're building for the future of AI—edge-first execution and continuous streaming architectures that make AI practically free and universally available. Read our vision →
What's New (Q1 2026)
| Feature | Version | Description | Guide |
|---|---|---|---|
| Avatar / Music Modalities + 12 Providers | next | New output: { mode: "avatar" | "music" } dispatch with handlers for D-ID, HeyGen, Replicate-MuseTalk (avatar) and Beatoven, ElevenLabs Music, Lyria, Replicate-MusicGen (music). Plus Fish Audio TTS, Kling/Runway/Replicate video, xAI/Groq/Cohere/Together/Fireworks/Perplexity/Cloudflare LLMs, Voyage/Jina embeddings, Stability/Ideogram/Recraft/Replicate image-gen. |
Provider Integration |
| Multi-Provider Voice (TTS/STT) | v9.62.0 | 6 TTS providers (OpenAI TTS, ElevenLabs, Google TTS, Azure TTS, Fish Audio, Cartesia) + 4 STT providers (Whisper, Deepgram, Azure STT, Google STT) + 2 realtime APIs (OpenAI Realtime, Gemini Live). | TTS Guide | STT Guide | Realtime Guide |
| 4 New Providers | v9.60.0 | DeepSeek (V3/R1), NVIDIA NIM (400+ catalog), LM Studio (local), llama.cpp (GGUF local). | Provider Setup |
| ModelAccessDeniedError | v9.59.0 | Typed ModelAccessDeniedError + sdk.checkCredentials() API for proactive credential validation before first call. |
Error Reference |
| Provider Fallback Policy | v9.58.0 | providerFallback callback + modelChain config for centralized multi-provider fallback logic. |
Advanced Guide |
| Per-Request Credentials | v9.52.0 | Pass credentials per-call or per-instance for all providers. Per-call overrides instance; instance overrides env vars. | Credentials Guide |
| AutoResearch | v9.53.0 | Autonomous AI experiment engine: proposes code changes, runs experiments, evaluates metrics — unattended for hours. | AutoResearch Guide |
| Gemini 3 Multi-turn Tool Fix | v9.49.0 | Fixed multi-step agentic tool calling on Vertex AI Gemini 3. Correct thoughtSignature replay, stepIndex grouping, executionId session isolation, 5-min timeout. |
Vertex AI Guide |
| MCP Enhancements | v9.16.0 | Tool routing (6 strategies), result caching (LRU/FIFO/LFU), request batching, annotations, elicitation protocol, multi-server management. | MCP Enhancements Guide |
| Memory | v9.12.0 | Per-user condensed memory across conversations. LLM-powered condensation with S3, Redis, or SQLite. | Memory Guide |
| Context Window Management | v9.2.0 | 4-stage compaction pipeline with budget gate at 80% usage, per-provider token estimation. | Context Compaction Guide |
| Tool Execution Control | v9.3.0 | prepareStep and toolChoice for per-step tool enforcement in multi-step agentic loops. |
API Reference |
| File Processor System | v9.1.0 | 17+ file type processors with ProcessorRegistry, security sanitization, SVG text injection. | File Processors Guide |
| RAG with generate()/stream() | v9.2.0 | Pass rag: { files } for automatic document chunking, embedding, and AI-powered search. 10 chunking strategies, hybrid search, reranking. |
RAG Guide |
// Multi-Provider Voice (v9.62.0) — TTS + STT
// Voice is configured via the `tts` / `stt` options on generate() / stream(),
// not via dedicated synthesizeSpeech / transcribeAudio methods.
// Text in, audio out (TTS)
const result = await neurolink.generate({
input: { text: "Hello from NeuroLink" },
provider: "vertex",
tts: {
enabled: true,
voice: "en-US-Neural2-C",
format: "mp3",
output: "./output.mp3", // optional: save to disk
provider: "elevenlabs", // optional override: openai-tts | elevenlabs | google-ai | vertex | azure-tts | fish-audio | cartesia
},
});
// result.audio: { buffer: Buffer, format: "mp3", ... }
// Audio in (STT), text out
const transcript = await neurolink.generate({
input: { text: "Transcribe and summarize" },
provider: "openai",
stt: {
enabled: true,
audio: audioBuffer, // Buffer of the audio file
provider: "whisper", // whisper | deepgram | google-stt | azure-stt
language: "en-US",
},
});
// Real-time bidirectional voice (OpenAI Realtime / Gemini Live)
import { RealtimeProcessor } from "@juspay/neurolink";
await RealtimeProcessor.connect(
"openai-realtime",
{ provider: "openai-realtime", model: "gpt-4o-realtime-preview" },
{ onAudio, onTranscript, onError, onFunctionCall },
);
// AutoResearch — autonomous experiment loop (v9.53.0)
import { resolveConfig, ResearchWorker } from "@juspay/neurolink/autoresearch";
const config = resolveConfig({
repoPath: "/path/to/repo",
mutablePaths: ["train.py"],
runCommand: "python3 train.py",
metric: {
name: "val_bpb",
direction: "lower",
pattern: "^val_bpb:\\s+([\\d.]+)",
},
});
const worker = new ResearchWorker(config);
await worker.initialize("experiment-1");
const result = await worker.runExperimentCycle("Try lower learning rate");
// Provider Fallback Policy (v9.58.0) — fires only on ModelAccessDeniedError
import { NeuroLink, ModelAccessDeniedError } from "@juspay/neurolink";
const neurolink = new NeuroLink({
// Async callback. Single error arg. Return null to give up,
// or { provider?, model? } to retry with a substitute.
providerFallback: async (error) => {
if (
error instanceof ModelAccessDeniedError &&
error.allowedModels?.length
) {
return { model: error.allowedModels[0] };
}
return null;
},
// Sugar over providerFallback: if no callback is set, NeuroLink walks this list
// on each access denial. modelChain is `string[]` only (model names; same provider).
modelChain: ["claude-opus-4-7", "claude-sonnet-4-6", "gpt-4o"],
});
- Sharp image compression (v9.50.0) – Automatic image compression for AI providers via the sharp library; reduces upload bandwidth and bypasses provider size limits.
- Redis URL/TLS (v9.49.0) – Redis URL-based connections with TLS support for secure conversation memory in production.
- TaskManager (v9.41.0) – Scheduled and self-running AI tasks; cron-style execution with state checkpointing.
- Multi-user memory retrieval (v9.40.0) – Per-user memory storage and retrieval with customizable prompts.
- Evaluation Scoring (14 scorers) (v9.37.0) – Modular evaluation system with 14 scorers, pipelines, and CLI for offline quality assessment.
- Browser-compatible bundle (v9.34.0) – Client-side SDK bundle for browser use; no Node.js dependency for the core API.
- Per-call memory control (v9.33.0) – Read/write memory control per
generate()andstream()call. - Server Adapters (v8.43.0) – HTTP server with Hono, Express, Fastify, Koa. Foreground/background modes, route management, OpenAPI generation. → Guide
- External TracerProvider (v8.43.0) – Integrate NeuroLink with existing OpenTelemetry setups. → Guide
- Title Generation Events (v8.38.0) –
conversation:titleGeneratedevent +NEUROLINK_TITLE_PROMPTcustom titles. → Guide - Video Generation with Veo (v8.32.0) – Video generation via Google Veo 3.1 on Vertex AI. 720p/1080p, portrait/landscape. → Guide
- Image Generation (v8.31.0) – Native image generation with Gemini and Imagen models. → Guide
- HTTP/Streamable HTTP Transport (v8.29.0) – Remote MCP servers via HTTP with auth headers, retry, rate limiting. → Guide
- PPT Generation – 35 slide types, 5 themes, optional AI-generated images. Works across all major providers. → Guide
- Structured Output with Zod – Type-safe JSON via
schema+output.format: "json". → Guide - CSV & PDF File Support – Attach CSV/PDF with auto-detection. PDF: native visual analysis on Vertex, Anthropic, Bedrock, AI Studio. → CSV | PDF
- LiteLLM, SageMaker & OpenRouter – 100+ models via LiteLLM, custom endpoints on SageMaker, 300+ via OpenRouter. → LiteLLM | SageMaker
- HITL & Guardrails – Human-in-the-loop approval workflows and content filtering. → HITL | Guardrails
- Redis Conversation Export – Export full session history as JSON for analytics and audit. → Guide
Enterprise Security: Human-in-the-Loop (HITL)
NeuroLink includes a HITL (Human-in-the-Loop) system for regulated industries and high-stakes AI operations:
| Capability | Description | Use Case |
|---|---|---|
| Tool Approval Workflows | Require human approval before AI executes sensitive tools | Financial transactions, data modifications |
| Output Validation | Route AI outputs through human review pipelines | Medical diagnosis, legal documents |
| Confidence Thresholds | Automatically trigger human review below confidence level | Critical business decisions |
| Complete Audit Trail | Audit logging to support your compliance program (HIPAA / SOC 2 / GDPR) | Regulated industries |
import { NeuroLink } from "@juspay/neurolink";
const neurolink = new NeuroLink({
hitl: {
enabled: true,
requireApproval: ["writeFile", "executeCode", "sendEmail"],
confidenceThreshold: 0.85,
reviewCallback: async (action, context) => {
// Custom review logic - integrate with your approval system
return await yourApprovalSystem.requestReview(action);
},
},
});
// AI pauses for human approval before executing sensitive tools
const result = await neurolink.generate({
input: { text: "Send quarterly report to stakeholders" },
});
Enterprise HITL Guide | Quick Start
📚 Quick Start Guide
This guide will have you generating AI responses in under 5 minutes using either the SDK or CLI.
Installation
Choose your preferred package manager:
# npm
npm install @juspay/neurolink
# pnpm (recommended)
pnpm add @juspay/neurolink
# yarn
yarn add @juspay/neurolink
# CLI only (no installation needed)
npx @juspay/neurolink --help
Configuration
NeuroLink works with 30+ AI providers. You'll need at least one API key to get started:
Option 1: Interactive Setup (Recommended)
# Run the setup wizard to configure providers
pnpm dlx @juspay/neurolink setup
The wizard will guide you through:
- Selecting your preferred AI providers
- Validating API keys
- Setting up configuration files
Option 2: Manual Configuration
Create a .env file in your project root:
# Choose one or more providers
OPENAI_API_KEY=sk-...
ANTHROPIC_API_KEY=sk-ant-...
GOOGLE_AI_API_KEY=...
Free Tier Options:
- Google AI Studio: Get a free API key at aistudio.google.com
- Mistral AI: Free tier available at console.mistral.ai
- Ollama: 100% free local models (requires Ollama installation)
Your First API Call (SDK)
Basic Text Generation:
import { NeuroLink } from "@juspay/neurolink";
// Initialize (auto-selects best available provider from your .env)
const neurolink = new NeuroLink();
// Generate a response
const result = await neurolink.generate({
input: { text: "Explain quantum computing in simple terms" },
});
console.log(result.content);
Streaming Responses:
// Stream tokens in real-time
const stream = await neurolink.stream({
input: { text: "Write a haiku about code" },
});
for await (const chunk of stream.stream) {
if ("content" in chunk) process.stdout.write(chunk.content);
}
Multimodal Input (Images + Text):
const result = await neurolink.generate({
input: {
text: "What's in this image?",
images: ["./photo.jpg"],
},
});
Using Tools:
// Built-in tools are automatically available
const result = await neurolink.generate({
input: {
text: "What time is it and what files are in the current directory?",
},
// AI can call getCurrentTime and listDirectory tools
});
Your First API Call (CLI)
Basic Generation:
# Simple text generation
npx @juspay/neurolink generate "Explain TypeScript generics"
# Specify provider and model
npx @juspay/neurolink generate "Hello!" --provider openai --model gpt-4o
# Stream responses
npx @juspay/neurolink stream "Write a story about AI" --provider anthropic
Multimodal Input:
# Analyze images
npx @juspay/neurolink generate "Describe this image" --image photo.jpg
# Process PDFs
npx @juspay/neurolink generate "Summarize this document" --pdf report.pdf
# Combine multiple file types
npx @juspay/neurolink generate "Analyze this data" --file data.xlsx --file config.json
Interactive Loop Mode:
# Start an interactive session with persistent context
npx @juspay/neurolink loop
# Inside loop mode:
> set provider anthropic
> set model claude-opus-4
> generate "Hello, Claude!"
> history # View conversation history
> exit
Common Use Cases
RAG (Retrieval-Augmented Generation):
// Automatically chunk, embed, and search documents
const result = await neurolink.generate({
input: { text: "What are the key features mentioned in the documentation?" },
rag: {
files: ["./docs/guide.md", "./docs/api.md"],
chunkSize: 512,
topK: 5,
},
});
Structured Output with Zod:
import { z } from "zod";
const schema = z.object({
name: z.string(),
age: z.number(),
email: z.string().email(),
});
const result = await neurolink.generate({
input: {
text: "Extract user info: John Doe, 30 years old, [email protected]",
},
schema,
output: { format: "json" },
});
// Parse the structured JSON from result.content
const parsed = schema.parse(JSON.parse(result.content));
console.log(parsed); // { name: "John Doe", age: 30, email: "[email protected]" }
External MCP Servers (GitHub, Slack, etc.):
// Connect to GitHub MCP server
await neurolink.addExternalMCPServer("github", {
command: "npx",
args: ["-y", "@modelcontextprotocol/server-github"],
transport: "stdio",
env: { GITHUB_TOKEN: process.env.GITHUB_TOKEN },
});
// AI can now interact with GitHub
const result = await neurolink.generate({
input: { text: 'Create an issue titled "Bug: login fails"' },
});
Next Steps
- Complete Documentation - Comprehensive guides and API reference
- Provider Setup Guide - Configure all 30+ providers
- SDK API Reference - Full TypeScript API documentation
- CLI Command Reference - Complete CLI documentation
- Example Projects - Real-world integration examples
- Advanced Features - Middleware, observability, workflows
Troubleshooting
Issue: "Provider not configured"
- Run
npx @juspay/neurolink setupor add provider API key to.env
Issue: Rate limit errors
- Configure multiple providers for redundancy — NeuroLink auto-selects the best available
- Use
provider: "litellm"with LiteLLM to proxy across many providers
Issue: Large context overflows
- Enable conversation memory with compaction:
new NeuroLink({ conversationMemory: { enabled: true } }) - Use
ragoption to search documents instead of sending full content
Need help? Check our Troubleshooting Guide or open an issue.
🌟 Complete Feature Set
NeuroLink is a comprehensive AI development platform. Every feature below is shipped and documented.
🤖 AI Provider Integration
30+ providers unified under one API - Switch providers with a single parameter change.
| Provider | Models | Free Tier | Tool Support | Status | Documentation |
|---|---|---|---|---|---|
| OpenAI | GPT-4o, GPT-4o-mini, o1 | ❌ | ✅ Full | ✅ Production | Setup Guide |
| Anthropic | Claude 4.6 Opus/Sonnet, Claude 4.5 Opus/Sonnet/Haiku, Claude 4 Opus/Sonnet | ❌ | ✅ Full | ✅ Production | Setup Guide | Subscription Guide |
| Google AI Studio | Gemini 3 Flash/Pro, Gemini 2.5 Flash/Pro | ✅ Free Tier | ✅ Full | ✅ Production | Setup Guide |
| AWS Bedrock | Claude, Titan, Llama, Nova | ❌ | ✅ Full | ✅ Production | Setup Guide |
| Google Vertex | Gemini 3/2.5 (gemini-3-*-preview) | ❌ | ✅ Full | ✅ Production | Setup Guide |
| Azure OpenAI | GPT-4, GPT-4o, o1 | ❌ | ✅ Full | ✅ Production | Setup Guide |
| LiteLLM | 100+ models unified | Varies | ✅ Full | ✅ Production | Setup Guide |
| AWS SageMaker | Custom deployed models | ❌ | ✅ Full | ✅ Production | Setup Guide |
| Mistral AI | Mistral Large, Small | ✅ Free Tier | ✅ Full | ✅ Production | Setup Guide |
| Hugging Face | 100,000+ models | ✅ Free | ⚠️ Partial | ✅ Production | Setup Guide |
| Ollama | Local models (Llama, Mistral) | ✅ Free (Local) | ⚠️ Partial | ✅ Production | Setup Guide |
| OpenAI Compatible | Any OpenAI-compatible endpoint | Varies | ✅ Full | ✅ Production | Setup Guide |
| OpenRouter | 300+ models via OpenRouter | Varies | ✅ Full | ✅ Production | Setup Guide |
| DeepSeek | deepseek-chat (V3), deepseek-reasoner (R1) | ❌ | ✅ Full | ✅ Production | Setup Guide |
| NVIDIA NIM | Llama 3.3 70B, 400+ catalog models | ❌ | ✅ Full | ✅ Production | Setup Guide |
| LM Studio | Any model loaded in LM Studio (local) | ✅ Free (Local) | ✅ Full | ✅ Production | Setup Guide |
| llama.cpp | Any GGUF model served by llama-server (local) | ✅ Free (Local) | ✅ Full | ✅ Production | Setup Guide |
| OpenAI TTS | TTS-1, TTS-1-HD, GPT-4o Audio | ❌ | N/A | ✅ Production | Setup Guide |
| ElevenLabs | Multilingual v2, Turbo v2.5, Flash v2.5 | ✅ Free Tier | N/A | ✅ Production | Setup Guide |
| Deepgram | Nova-3, Nova-2, Enhanced, Base (STT) | ✅ Free Tier | N/A | ✅ Production | Setup Guide |
| Azure Speech | Azure Cognitive Services TTS + STT | ❌ | N/A | ✅ Production | Setup Guide |
📖 Provider Comparison Guide - Detailed feature matrix and selection criteria 🔬 Provider Feature Compatibility - Test-based compatibility reference for all 19 features across 30+ providers
🔧 Built-in Tools & MCP Integration
6 Core Tools (work across all providers, zero configuration):
| Tool | Purpose | Auto-Available | Documentation |
|---|---|---|---|
getCurrentTime |
Real-time clock access | ✅ | Tool Reference |
readFile |
File system reading | ✅ | Tool Reference |
writeFile |
File system writing | ✅ | Tool Reference |
listDirectory |
Directory listing | ✅ | Tool Reference |
calculateMath |
Mathematical operations | ✅ | Tool Reference |
websearchGrounding |
Google Vertex web search | ⚠️ Requires credentials | Tool Reference |
External MCP servers — connect any MCP-compliant server via neurolink mcp add; 11 popular servers (GitHub, PostgreSQL, Google Drive, Slack, and more) ship with ready-made configs:
// stdio transport - local MCP servers via command execution
await neurolink.addExternalMCPServer("github", {
command: "npx",
args: ["-y", "@modelcontextprotocol/server-github"],
transport: "stdio",
env: { GITHUB_TOKEN: process.env.GITHUB_TOKEN },
});
// HTTP transport - remote MCP servers via URL
await neurolink.addExternalMCPServer("github-copilot", {
transport: "http",
url: "https://api.githubcopilot.com/mcp",
headers: { Authorization: "Bearer YOUR_COPILOT_TOKEN" },
timeout: 15000,
retries: 5,
});
// Tools automatically available to AI
const result = await neurolink.generate({
input: { text: 'Create a GitHub issue titled "Bug in auth flow"' },
});
MCP Transport Options:
| Transport | Use Case | Key Features |
|---|---|---|
stdio |
Local servers | Command execution, environment variables |
http |
Remote servers | URL-based, auth headers, retries, rate limiting |
sse |
Event streams | Server-Sent Events, real-time updates |
websocket |
Bi-directional | Full-duplex communication |
📖 MCP Integration Guide - Setup external servers 📖 HTTP Transport Guide - Remote MCP server configuration
🔌 MCP Enhancements
Production-grade MCP capabilities for managing tool calls at scale across multi-server environments:
| Module | Purpose |
|---|---|
| Tool Router | Intelligent routing across servers with 6 strategies |
| Tool Cache | Result caching with LRU, FIFO, and LFU eviction |
| Request Batcher | Automatic batching of tool calls for throughput |
| Tool Annotations | Safety metadata and behavior hints for MCP tools |
| Tool Converter | Bidirectional conversion between NeuroLink and MCP formats |
| Elicitation Protocol | Interactive user input during tool execution (HITL) |
| Multi-Server Manager | Load balancing and failover across server groups |
| MCP Server Base | Abstract base class for building custom MCP servers |
| Enhanced Tool Discovery | Advanced search and filtering across servers |
| Agent & Workflow Exposure | Expose agents and workflows as MCP tools |
| Server Capabilities | Resource and prompt management per MCP spec |
| Registry Client | Discover and connect to MCP servers from registries |
| Tool Integration | End-to-end tool lifecycle with middleware chain |
| Elicitation Manager | Manages elicitation flows with validation and timeouts |
import { ToolRouter, ToolCache, RequestBatcher } from "@juspay/neurolink";
// Route tool calls across multiple MCP servers
const router = new ToolRouter({
strategy:
No comments yet
Be the first to share your take.