recker
v1.0.73
Published
Multi-Protocol SDK for the AI Era - HTTP, WebSocket, DNS, FTP, SFTP, Telnet, HLS unified with AI providers and MCP tools
Maintainers
Readme
⚡ Recker
Multi-Protocol SDK for the AI Era
Nine protocols unified: HTTP, WebSocket, DNS, WHOIS, RDAP, FTP, SFTP, Telnet, HLS. AI-native: OpenAI, Anthropic, Google, Ollama + MCP server with 65 tools. 48 service presets built-in. Zero config.
One SDK to connect your app to everything.
📖 Documentation · 🚀 Quick Start · 🔧 CLI
Quick Start
npm install reckerimport { get, post, whois, dns } from 'recker';
// HTTP - just works
const users = await get('https://api.example.com/users').json();
await post('https://api.example.com/users', { json: { name: 'John' } });
// DNS & WHOIS
const ips = await dns('google.com');
const info = await whois('github.com');Browser
Recker provides two browser builds: Full and Mini.
| Build | Size | Includes | |:------|:-----|:---------| | Full | ~1.1 MB | HTTP, WebSocket, SSE, AI, SEO, Scrape, portable plugins | | Mini | ~480 KB | HTTP, WebSocket, SSE, core plugins only |
// Full build - includes everything
import { recker, get, post } from 'recker/browser';
// Mini build - 57% smaller, no AI/SEO/scrape
// Presets and auth helpers are Node-only
import { recker, get, post } from 'recker/browser-mini';CDN Usage
<!-- Full build (UMD) -->
<script src="https://unpkg.com/recker/dist/browser/index.umd.min.js"></script>
<!-- Mini build (UMD) - recommended for most projects -->
<script src="https://unpkg.com/recker/dist/browser/index.mini.umd.min.js"></script>
<script>
const { recker, get, post } = Recker;
const data = await get('https://api.example.com/data').json();
</script><!-- ES Module -->
<script type="module">
// Full
import { get } from 'https://unpkg.com/recker/dist/browser/index.min.js';
// Mini
import { get } from 'https://unpkg.com/recker/dist/browser/index.mini.min.js';
</script>Which Build to Choose?
| Use Case | Recommended Build |
|:---------|:------------------|
| Simple HTTP requests | recker/browser-mini |
| Need AI streaming (OpenAI, etc.) | recker/browser |
| Need SEO analysis | recker/browser |
| Need web scraping | recker/browser |
| Need API presets (GitHub, Stripe) | Use Node build (recker) |
| Bundle size is critical | recker/browser-mini |
Unified Namespace
import { recker } from 'recker';
await recker.get('/users').json(); // HTTP
await recker.whois('github.com'); // WHOIS
await recker.dns('google.com'); // DNS
await recker.ai.chat('Hello!'); // AI
recker.ws('wss://example.com/socket'); // WebSocketWhat's Inside
| Category | Features |
|:---------|:---------|
| Protocols | HTTP/2, WebSocket, DNS, WHOIS, RDAP, FTP, SFTP, Telnet, HLS |
| AI | OpenAI, Anthropic, Google, Ollama, Groq, Mistral + streaming |
| Resilience | Retry, circuit breaker, rate limiting, request deduplication |
| Auth | Basic, Bearer, OAuth2, AWS SigV4, Digest, API Key + 15 providers |
| SEO | 400+ rules, 19 categories, site-wide spider crawler |
| Testing | 10 mock servers (HTTP, Proxy, WebSocket, DNS, FTP, HLS, SSE...) |
| CLI | rek - curl replacement with superpowers |
| MCP | 65 tools for AI assistants (Claude, Cursor, Windsurf) |
Highlights
AI Streaming
for await (const chunk of recker.ai.stream({
model: 'gpt-4',
messages: [{ role: 'user', content: 'Hello!' }]
})) {
process.stdout.write(chunk.choices[0]?.delta?.content || '');
}Retry & Circuit Breaker
import { createClient, circuitBreaker } from 'recker';
const api = createClient({
baseUrl: 'https://api.example.com',
retry: { maxAttempts: 3, backoff: 'exponential' },
plugins: [circuitBreaker({ threshold: 5, resetTimeout: 30000 })]
});Request Timing
const res = await get('https://api.example.com/data');
console.log(res.timings);
// { dns: 12, tcp: 8, tls: 45, firstByte: 23, total: 156 }SEO Analysis
import { analyzeSeo } from 'recker/seo';
const report = await analyzeSeo(html, { baseUrl: 'https://example.com' });
console.log(`Score: ${report.score}/100 (Grade: ${report.grade})`);
// 400+ checks across 19 categoriesWeb Scraping
import { Spider } from 'recker/scrape';
// Simple scraping
const doc = await client.scrape('https://news.ycombinator.com');
const headlines = doc.selectAll('.titleline > a').map(el => el.text());
// Full site crawling
const spider = new Spider({ maxPages: 100 });
const results = await spider.crawl('https://example.com');Scraping Protected Sites
Some sites use bot protection (Cloudflare, Akamai). Recker handles this automatically:
# One-time setup (downloads curl-impersonate)
npx recker setupconst spider = new Spider({ maxPages: 50 });
await spider.crawl('https://protected-site.com');
// Automatically retries with curl-impersonate if blocked48 API Presets
Pre-configured clients for popular services:
import { presets } from 'recker';
const github = presets.github({ token: '...' });
const stripe = presets.stripe({ apiKey: '...' });
const openai = presets.openai({ apiKey: '...' });anthropic aws azure azure-openai chaturbate cloudflare cohere deepseek digitalocean discord elevenlabs fireworks gcp gemini github gitlab groq hubspot huggingface linear mailgun meta mistral notion openai oracle perplexity pinecone pornhub replicate sendgrid sentry sinch slack square stripe supabase tiktok together twilio vercel vultr xai xvideos youtube android ios
CLI (rek)
A curl replacement with better DX:
# Install
npm install -g recker
# HTTP requests
rek httpbin.org/json
rek POST api.com/users name="John" age:=30
# Pipe to bash (like curl)
rek -q https://get.docker.com | bash
# SEO analysis
rek seo https://example.com
# DNS toolkit
rek dns google.com
rek dns propagate example.com
rek dns spf github.com
# Mock servers for testing
rek serve http # HTTP on :3000
rek serve ws # WebSocket on :8080
rek serve hls # HLS streaming on :8082
rek serve dns # DNS on :5353
# Interactive shell
rek shellMCP Server
65 tools for AI assistants like Claude Code, Cursor, and Windsurf:
# One-liner for Claude Code (uses minimal category by default)
claude mcp add recker npx recker@latest mcp
# Add more categories as needed
claude mcp add recker npx recker@latest mcp --category=minimal,video,seo
# Enable all 65 tools
claude mcp add recker npx recker@latest mcp --category=fullCategories: minimal (default) docs network dns security seo scrape video ai protocols parsing streaming full
Documentation
| Topic | Link | |:------|:-----| | Quick Start | → Getting Started | | HTTP Client | → HTTP Guide | | Plugins | → 30+ Plugins | | Authentication | → 15 Auth Methods | | AI Integration | → AI Providers | | CLI | → Terminal Client | | MCP Server | → AI Tools | | SEO Analysis | → 400+ Rules | | Mock Servers | → Testing | | API Reference | → Full API |
Numbers
| Metric | Value | |:-------|:------| | Protocols | 9 (HTTP, WS, DNS, WHOIS, RDAP, FTP, SFTP, Telnet, HLS) | | Plugins | 30+ | | Auth Methods | 15 | | API Presets | 48 | | MCP Tools | 65 | | SEO Rules | 400+ | | Mock Servers | 10 | | Tests | 4200+ |
License
MIT © Forattini
