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

@dukebot/open-router

v0.1.2

Published

Lightweight local client for interacting with the OpenRouter API (CommonJS format)

Readme

@dukebot/open-router

Lightweight local client for interacting with the OpenRouter API (CommonJS format).

This package provides a modular way to call large language models like GPT-4o, Claude, Mistral or DeepSeek via OpenRouter, using a clean service-based structure and optional agent wrappers.

🚀 Features

  • Simple wrapper around OpenRouter's /chat/completions endpoint.
  • Flexible message structure: raw messages or prompt + system.
  • Auto-parsing of JSON responses (with fallback via jsonrepair).
  • Preconfigured agent system for clean multi-role usage.

📦 Installation

npm install @dukebot/open-router

Requires Node.js >=18 (for native fetch support).


⚡ Quick Example

const { OpenRouter } = require('@dukebot/open-router')

const openRouter = new OpenRouter({ apiKey: process.env.OPEN_ROUTER_API_KEY })

const response = await openRouter.service.completeChat({
  prompt: 'What is the capital of Japan?',
  system: 'You are a helpful assistant.',
  model: 'openai/gpt-4o',
})

console.log(response.content) // → "The capital of Japan is Tokyo."

🧠 Agent Example

const agent = openRouter.createAgent({
  model: 'openai/gpt-4o',
  system: 'You are a professional blog editor.',
  temperature: 0.7,
  responseAsJson: true,
})

const result = await agent.completeChat({ prompt: 'Write a short blog post about AI in 2025' })

console.log(result.json) // Parsed blog post structure (if response is valid JSON)

🧱 Modular Architecture

| Component | Description | |---------------------|---------------------------------------------------------------| | OpenRouterClient | Low-level fetcher for /chat/completions | | OpenRouterService | Adds support for simplified prompts and JSON parsing | | OpenRouterAgent | Fixed-configuration agent using a predefined system + model | | OpenRouterModule | Bundles client + service and exposes agent factory |


🔐 Environment

You can provide the API key directly or via environment variable:

OPEN_ROUTER_API_KEY=your-api-key-here

🧪 Examples

Usage examples are located in the /examples folder.

To run the basic example:

node examples/simple.js

These scripts demonstrate common use cases such as:

  • Basic prompt + system completions
  • Agent-based completions with JSON output
  • Error handling and logging

Feel free to duplicate and adapt them to your own needs.


✅ Tests

This package includes automated tests written in Jest.

To run the test suite:

npm install
npm test

Tests are located in the /tests folder and cover core functionality such as OpenRouterClient, OpenRouterService, and OpenRouterAgent. Mocking is used to isolate logic and ensure consistent behavior.


📋 License

MIT © Dukebot