Lynkr

Lynkr

Streamline your workflow with Lynkr, a CLI tool that acts as an HTTP proxy for efficient code interactions using Claude Code CLI.

Stars: 299

Visit
 screenshot

Lynkr is a self-hosted proxy server that unlocks various AI coding tools like Claude Code CLI, Cursor IDE, and Codex Cli. It supports multiple LLM providers such as Databricks, AWS Bedrock, OpenRouter, Ollama, llama.cpp, Azure OpenAI, Azure Anthropic, OpenAI, and LM Studio. Lynkr offers cost reduction, local/private execution, remote or local connectivity, zero code changes, and enterprise-ready features. It is perfect for developers needing provider flexibility, cost control, self-hosted AI with observability, local model execution, and cost reduction strategies.

README:

Lynkr - Run Cursor, Cline, Continue, OpenAi Compatible Tools and Claude Code on any model.

One universal LLM proxy for AI coding tools.

npm version Homebrew Tap License: Apache 2.0 Ask DeepWiki Databricks Supported AWS Bedrock OpenAI Compatible Ollama Compatible llama.cpp Compatible

Use Case

        Cursor / Cline / Continue / Claude Code / Clawdbot / Codex/ KiloCode
                        ↓
                       Lynkr
                        ↓
        Local LLMs | OpenRouter | Azure | Databricks | AWS BedRock | Ollama | LMStudio | Gemini

Overview

Lynkr is a self-hosted proxy server that unlocks Claude Code CLI , Cursor IDE and Codex Cli by enabling:

  • πŸš€ Any LLM Provider - Databricks, AWS Bedrock (100+ models), OpenRouter (100+ models), Ollama (local), llama.cpp, Azure OpenAI, Azure Anthropic, OpenAI, LM Studio
  • πŸ’° 60-80% Cost Reduction - Built-in token optimization with smart tool selection, prompt caching, and memory deduplication
  • πŸ”’ 100% Local/Private - Run completely offline with Ollama or llama.cpp
  • 🌐 Remote or Local - Connect to providers on any IP/hostname (not limited to localhost)
  • 🎯 Zero Code Changes - Drop-in replacement for Anthropic's backend
  • 🏒 Enterprise-Ready - Circuit breakers, load shedding, Prometheus metrics, health checks

Perfect for:

  • Developers who want provider flexibility and cost control
  • Enterprises needing self-hosted AI with observability
  • Privacy-focused teams requiring local model execution
  • Teams seeking 60-80% cost reduction through optimization

Quick Start

Installation

Option 1: NPM Package (Recommended)

# Install globally
npm install -g pino-pretty 
npm install -g lynkr

lynk start

Option 2: Git Clone

# Clone repository
git clone https://github.com/vishalveerareddy123/Lynkr.git
cd Lynkr

# Install dependencies
npm install

# Create .env from example
cp .env.example .env

# Edit .env with your provider credentials
nano .env

# Start server
npm start

Node.js Compatibility:

  • Node 20-24: Full support with all features
  • Node 25+: Full support (native modules auto-rebuild, babel fallback for code parsing)

Option 3: Docker

docker-compose up -d

Supported Providers

Lynkr supports 10+ LLM providers:

Provider Type Models Cost Privacy
AWS Bedrock Cloud 100+ (Claude, Titan, Llama, Mistral, etc.) $$-$$$ Cloud
Databricks Cloud Claude Sonnet 4.5, Opus 4.5 $$$ Cloud
OpenRouter Cloud 100+ (GPT, Claude, Llama, Gemini, etc.) $-$$ Cloud
Ollama Local Unlimited (free, offline) FREE πŸ”’ 100% Local
llama.cpp Local GGUF models FREE πŸ”’ 100% Local
Azure OpenAI Cloud GPT-4o, GPT-5, o1, o3 $$$ Cloud
Azure Anthropic Cloud Claude models $$$ Cloud
OpenAI Cloud GPT-4o, o1, o3 $$$ Cloud
LM Studio Local Local models with GUI FREE πŸ”’ 100% Local
MLX OpenAI Server Local Apple Silicon (M1/M2/M3/M4) FREE πŸ”’ 100% Local

πŸ“– Full Provider Configuration Guide


Claude Code Integration

Configure Claude Code CLI to use Lynkr:

# Set Lynkr as backend
export ANTHROPIC_BASE_URL=http://localhost:8081
export ANTHROPIC_API_KEY=dummy

# Run Claude Code
claude "Your prompt here"

That's it! Claude Code now uses your configured provider.

πŸ“– Detailed Claude Code Setup


Cursor Integration

Configure Cursor IDE to use Lynkr:

  1. Open Cursor Settings

    • Mac: Cmd+, | Windows/Linux: Ctrl+,
    • Navigate to: Features β†’ Models
  2. Configure OpenAI API Settings

    • API Key: sk-lynkr (any non-empty value)
    • Base URL: http://localhost:8081/v1
    • Model: claude-3.5-sonnet (or your provider's model)
  3. Test It

    • Chat: Cmd+L / Ctrl+L
    • Inline edits: Cmd+K / Ctrl+K
    • @Codebase search: Requires embeddings setup

Codex CLI with Lynkr

Configure Codex Cli to use Lynkr
Option 1: Environment Variable (simplest)

export OPENAI_BASE_URL=http://localhost:8081/v1                                                                                                                                                                                                    
export  OPENAI_API_KEY=dummy                                                                                                                                                                                                                        
 codex 

Option 2: Config File (~/.codex/config.toml)

model_provider = "lynkr"

[model_providers.lynkr]
name = "Lynkr Proxy"
base_url = "http://localhost:8081/v1"
env_key = "OPENAI_API_KEY"

Note: For multi-step tool workflows, ensure POLICY_TOOL_LOOP_THRESHOLD is set high enough (default: 10).


ClawdBot Integration

Lynkr supports ClawdBot via its OpenAI-compatible API. ClawdBot users can route requests through Lynkr to access any supported provider.

Configuration in ClawdBot:

Setting Value
Model/auth provider Copilot
Copilot auth method Copilot Proxy (local)
Copilot Proxy base URL http://localhost:8081/v1
Model IDs Any model your Lynkr provider supports

Available models (depending on your Lynkr provider): gpt-5.2, gpt-5.1-codex, claude-opus-4.5, claude-sonnet-4.5, claude-haiku-4.5, gemini-3-pro, gemini-3-flash, and more.

🌐 Remote Support: ClawdBot can connect to Lynkr on any machine - use any IP/hostname in the Proxy base URL (e.g., http://192.168.1.100:8081/v1 or http://gpu-server:8081/v1).


Lynkr also supports Cline, Continue.dev and other OpenAI compatible tools.


Documentation

Getting Started

IDE Integration

Features & Capabilities

Deployment & Operations

Support


External Resources


Key Features Highlights

  • βœ… Multi-Provider Support - 9+ providers including local (Ollama, llama.cpp) and cloud (Bedrock, Databricks, OpenRouter)
  • βœ… 60-80% Cost Reduction - Token optimization with smart tool selection, prompt caching, memory deduplication
  • βœ… 100% Local Option - Run completely offline with Ollama/llama.cpp (zero cloud dependencies)
  • βœ… OpenAI Compatible - Works with Cursor IDE, Continue.dev, and any OpenAI-compatible client
  • βœ… Embeddings Support - 4 options for @Codebase search: Ollama (local), llama.cpp (local), OpenRouter, OpenAI
  • βœ… MCP Integration - Automatic Model Context Protocol server discovery and orchestration
  • βœ… Enterprise Features - Circuit breakers, load shedding, Prometheus metrics, K8s health checks
  • βœ… Streaming Support - Real-time token streaming for all providers
  • βœ… Memory System - Titans-inspired long-term memory with surprise-based filtering
  • βœ… Tool Calling - Full tool support with server and passthrough execution modes
  • βœ… Production Ready - Battle-tested with 400+ tests, observability, and error resilience
  • βœ… Node 20-25 Support - Works with latest Node.js versions including v25
  • βœ… Semantic Caching - Cache responses for similar prompts (requires embeddings)

Semantic Cache

Lynkr includes an optional semantic response cache that returns cached responses for semantically similar prompts, reducing latency and costs.

Enable Semantic Cache:

# Requires an embeddings provider (Ollama recommended)
ollama pull nomic-embed-text

# Add to .env
SEMANTIC_CACHE_ENABLED=true
SEMANTIC_CACHE_THRESHOLD=0.95
OLLAMA_EMBEDDINGS_MODEL=nomic-embed-text
OLLAMA_EMBEDDINGS_ENDPOINT=http://localhost:11434/api/embeddings
Setting Default Description
SEMANTIC_CACHE_ENABLED false Enable/disable semantic caching
SEMANTIC_CACHE_THRESHOLD 0.95 Similarity threshold (0.0-1.0)

Note: Without a proper embeddings provider, the cache uses hash-based fallback which may cause false matches. Use Ollama with nomic-embed-text for best results.


Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚    AI Tools     β”‚  
β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜
         β”‚ Anthropic/OpenAI Format
         ↓
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  Lynkr Proxy    β”‚
β”‚  Port: 8081     β”‚
β”‚                 β”‚
β”‚ β€’ Format Conv.  β”‚
β”‚ β€’ Token Optim.  β”‚
β”‚ β€’ Provider Routeβ”‚
β”‚ β€’ Tool Calling  β”‚
β”‚ β€’ Caching       β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜
         β”‚
         β”œβ”€β”€β†’ Databricks (Claude 4.5)
         β”œβ”€β”€β†’ AWS Bedrock (100+ models)
         β”œβ”€β”€β†’ OpenRouter (100+ models)
         β”œβ”€β”€β†’ Ollama (local, free)
         β”œβ”€β”€β†’ llama.cpp (local, free)
         β”œβ”€β”€β†’ Azure OpenAI (GPT-4o, o1)
         β”œβ”€β”€β†’ OpenAI (GPT-4o, o3)
         └──→ Azure Anthropic (Claude)

πŸ“– Detailed Architecture


Quick Configuration Examples

100% Local (FREE)

export MODEL_PROVIDER=ollama
export OLLAMA_MODEL=qwen2.5-coder:latest
export OLLAMA_EMBEDDINGS_MODEL=nomic-embed-text
npm start

πŸ’‘ Tip: Prevent slow cold starts by keeping Ollama models loaded: launchctl setenv OLLAMA_KEEP_ALIVE "24h" (macOS) or set OLLAMA_KEEP_ALIVE=24h env var. See troubleshooting.

Remote Ollama (GPU Server)

export MODEL_PROVIDER=ollama
export OLLAMA_ENDPOINT=http://192.168.1.100:11434  # Any IP or hostname
export OLLAMA_MODEL=llama3.1:70b
npm start

🌐 Note: All provider endpoints support remote addresses - not limited to localhost. Use any IP, hostname, or domain.

MLX OpenAI Server (Apple Silicon)

# Terminal 1: Start MLX server
mlx-openai-server launch --model-path mlx-community/Qwen2.5-Coder-7B-Instruct-4bit --model-type lm

# Terminal 2: Start Lynkr
export MODEL_PROVIDER=openai
export OPENAI_ENDPOINT=http://localhost:8000/v1/chat/completions
export OPENAI_API_KEY=not-needed
npm start

🍎 Apple Silicon optimized - Native MLX performance on M1/M2/M3/M4 Macs. See MLX setup guide.

AWS Bedrock (100+ models)

export MODEL_PROVIDER=bedrock
export AWS_BEDROCK_API_KEY=your-key
export AWS_BEDROCK_MODEL_ID=anthropic.claude-3-5-sonnet-20241022-v2:0
npm start

OpenRouter (simplest cloud)

export MODEL_PROVIDER=openrouter
export OPENROUTER_API_KEY=sk-or-v1-your-key
npm start

** You can setup multiple models like local models πŸ“– More Examples


Contributing

We welcome contributions! Please see:


License

Apache 2.0 - See LICENSE file for details.


Community & Support


Made with ❀️ by developers, for developers.

For Tasks:

Click tags to check more tools for each tasks

For Jobs:

Alternative AI tools for Lynkr

Similar Open Source Tools

For similar tasks

For similar jobs