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

@shivarajbakale/claudeport

v1.0.8

Published

Switch Claude Code between AI model providers in one command. Supports DeepSeek, MiniMax, Groq, Moonshot, OpenRouter, and more.

Readme

claudeport

One command to switch Claude Code between AI providers.

No hunting through settings.json. No guessing env var names. No restarts.

claudeport deepseek   # switch instantly
claudeport            # or pick from a pretty menu

The Problem

Claude Code is brilliant. But switching models means:

  • Hunting through settings.json for the right env keys
  • Googling "what's the DeepSeek endpoint again?"
  • Wondering if it was ANTHROPIC_API_KEY or ANTHROPIC_AUTH_TOKEN
  • Restarting Claude Code for changes to take effect

claudeport eliminates all of that.


Install

npm install -g @shivarajbakale/claudeport

Requires Node.js 18+.


Quick Start

claudeport add deepseek  # interactive setup, auto-fills endpoint + model
claudeport deepseek       # switch to it

Claude Code picks up the new config immediately. No restart needed.


Interactive Mode

Run claudeport without arguments for a visual picker:

┌─ claudeport ──────────────────────────┐
│                                     │
│  ▶  deepseek (deepseek-chat)        │
│     groq (llama-3.3-70b-versatile)   │
│     minimax (MiniMax-M2.7)           │
│     moonshot (moonshot-v1-128k)      │
│     openrouter (100+ models)         │
│                                     │
│     + add new profile                │
│                                     │
└─────────────────────────────────────┘

Tab-completable for speed, vim keybindings for navigation.


Why claudeport

Different tasks need different models:

| Use case | Best fit | |----------|----------| | General coding | DeepSeek — best price/performance | | Fast feedback | Groq — sub-second first token | | Long docs/diffs | Moonshot — 128k context | | Budget at scale | MiniMax M2.7 — MoE architecture | | Any model on demand | OpenRouter — 100+ models |

No switching cost. No commitment. Pick the right tool for the job.


Commands

| Command | Description | |---------|-------------| | claudeport <name> | Switch to profile (tab-completable) | | claudeport | Interactive profile picker | | claudeport add <name> | Add a new provider profile | | claudeport list | List all profiles | | claudeport current | Show active profile | | claudeport edit <name> | Edit a profile | | claudeport remove <name> | Delete a profile | | claudeport reset | Restore original settings |


Supported Providers

| Provider | Endpoint | Models | |----------|----------|--------| | DeepSeek | api.deepseek.com | deepseek-chat, deepseek-reasoner | | MiniMax | api.minimax.io | MiniMax-M2.7 | | Moonshot | api.moonshot.cn | moonshot-v1-8k, -32k, -128k | | OpenRouter | openrouter.ai | 100+ models | | Groq | api.groq.com | Llama 3.3, Llama 3.1, Mixtral, Gemma 2 |

All verified Anthropic Messages API-compatible. Don't see yours? Adding a new provider is a ~10 line change.


Safe and Non-Destructive

claudeport backs up your original ~/.claude/settings.json before touching anything. It only modifies the env keys it needs — your prompts, keybindings, and other settings stay intact.

~/.claude-switcher/
├── profiles/       # your saved profiles
└── base.json       # original settings (backup)

How It Works

Claude Code reads from the env block in ~/.claude/settings.json:

{
  "env": {
    "ANTHROPIC_BASE_URL": "https://api.deepseek.com/anthropic",
    "ANTHROPIC_AUTH_TOKEN": "sk-...",
    "ANTHROPIC_MODEL": "deepseek-chat"
  }
}

claudeport stores profiles in ~/.claude-switcher/profiles/. Activating a profile merges its config into settings.json. Your original is always preserved as base.json.


Uninstall

npm uninstall -g @shivarajbakale/claudeport

Your ~/.claude-switcher/ profiles and original ~/.claude/settings.json are left untouched.


Contributing

Found a provider that supports the Anthropic API? Add it in seconds:

// src/lib/providers.ts
{
  name: 'myprovider',
  displayName: 'My Provider',
  baseUrl: 'https://api.myprovider.com/anthropic',
  models: ['model-v1', 'model-v2'],
  docsUrl: 'https://docs.myprovider.com',
}

Dev setup:

git clone https://github.com/shivarajbakale/claudeport.git
cd claudeport
npm install
npm run build
npm link    # run locally
npm test

License

MIT