npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

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

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.

npm version npm downloads TypeScript Node.js License

📖 Documentation · 🚀 Quick Start · 🔧 CLI


Quick Start

npm install recker
import { 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 |

→ Browser Documentation

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'); // WebSocket

What'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 categories

Web 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 setup
const spider = new Spider({ maxPages: 50 });
await spider.crawl('https://protected-site.com');
// Automatically retries with curl-impersonate if blocked

📖 Anti-blocking docs

48 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 shell

→ CLI Documentation

MCP 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=full

Categories: minimal (default) docs network dns security seo scrape video ai protocols parsing streaming full

→ MCP Documentation

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