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

claude-multimodel

v1.1.0

Published

Switch between model providers (DeepSeek, Gemini, OpenAI, Anthropic) in Claude Code

Readme

claude-multimodel

Switch between model providers in Claude Code — DeepSeek, Gemini, OpenAI, Groq, Kimi, GLM, Qwen, Ollama, Anthropic. Install once, works globally in every project.

Website: https://claude-mm.vatsa.online

Install

npm install -g claude-multimodel

Slash commands register automatically. No config needed.


Usage

Terminal

claude-mm                          # interactive menu → launch Claude
claude-mm launch deepseek          # launch with specific profile
claude-mm list                     # show all profiles + key status
claude-mm active                   # show current profile
claude-mm providers                # list all known providers + compatibility
claude-mm set-key deepseek         # set API key (hidden input)
claude-mm set-model deepseek       # change model for a profile (interactive)
claude-mm set-model deepseek deepseek-r1          # set main model directly
claude-mm set-model deepseek deepseek-r1 deepseek-v4-flash  # set main + subagent
claude-mm add                      # add new profile (guided wizard)
claude-mm remove <profile>         # remove a profile
claude-mm set-default deepseek     # make DeepSeek permanent (writes to shell profile)
claude-mm unset-default            # remove permanent override

Inside Claude Code

/multimodel/switch-profile         show active profile + all options
/multimodel/set-api-key            key setup instructions
/multimodel/add-profile            add profile guidance
/multimodel/help                   all commands

Built-in profiles

| Profile | Provider | Main Model | Subagent | Key needed | Setup | |---------|----------|------------|----------|------------|-------| | claude | Anthropic | (Claude Code default) | (default) | No | None | | claude-max | Anthropic | (Claude Code default, max effort) | (default) | No | None | | deepseek | DeepSeek | deepseek-v4-pro | deepseek-v4-flash | Yes | Direct | | deepseek-flash | DeepSeek | deepseek-v4-flash | deepseek-v4-flash | Yes | Direct | | openrouter | OpenRouter | anthropic/claude-opus-4 | llama-4-maverick | Yes | Direct | | kimi | Moonshot AI | kimi-k2.6 | kimi-k2-turbo | Yes | Direct | | glm | Z.AI (intl) | glm-5.1 | glm-4-flash | Yes | Direct | | glm-cn | Zhipu BigModel | glm-5.1 | glm-4-flash | Yes | Direct (CN) | | openai | OpenAI | gpt-5.5 | gpt-4o-mini | Yes | LiteLLM proxy | | gemini | Google | gemini-3.5-pro | gemini-3.5-flash | Yes | LiteLLM proxy | | groq | Groq | llama-4-70b | llama-3-8b | Yes | LiteLLM proxy |

claude and claude-max set no model overrides — Claude Code always picks its current best models. Zero staleness.

Direct profiles connect to the provider's Anthropic-compatible API without any proxy. LiteLLM proxy profiles require litellm running locally — see setup below.


Set API keys

claude-mm set-key              # interactive menu, hidden input
claude-mm set-key deepseek     # specific profile

Keys stored in ~/.claude/multimodel/profiles.json — local only, never committed.

Native Anthropic profiles read your existing ANTHROPIC_API_KEY. No setup needed.


Change model for a profile

claude-mm set-model deepseek                              # interactive
claude-mm set-model deepseek deepseek-r1                  # set main model
claude-mm set-model deepseek deepseek-r1 deepseek-v4-flash  # main + subagent

Shows current models, hints popular models for that provider, then saves.

Updates: ANTHROPIC_MODEL, ANTHROPIC_DEFAULT_OPUS_MODEL, ANTHROPIC_DEFAULT_SONNET_MODEL, ANTHROPIC_DEFAULT_HAIKU_MODEL, CLAUDE_CODE_SUBAGENT_MODEL.

Or edit directly:

# open profiles file
code ~/.claude/multimodel/profiles.json    # VS Code
notepad $env:USERPROFILE\.claude\multimodel\profiles.json  # Windows

Add a custom model or provider

claude-mm add

Guided wizard:

  1. Pick from known providers list (or "manual" for custom endpoint)
  2. Enter profile name
  3. Enter model ID (flagship + fast/subagent)
  4. Set API key

Custom model from existing provider — pick the provider, enter any model ID they offer:

Provider: deepseek
Profile name: deepseek-reasoner
Main model: deepseek-reasoner
Subagent: deepseek-v4-flash

New provider — pick "custom", enter base URL + model IDs:

Provider: custom
Base URL: https://api.myprovider.com/anthropic
Main model: my-model-v1

Known providers

View the full registry:

claude-mm providers

| Provider | Key | Compatibility | Setup | |----------|-----|---------------|-------| | Anthropic | anthropic | Native | None | | DeepSeek | deepseek | Anthropic-compatible | Direct | | OpenRouter | openrouter | Anthropic-compatible | Direct | | Kimi (Moonshot) | kimi | Anthropic-compatible | Direct | | GLM / Z.AI (intl) | glm | Anthropic-compatible | Direct | | GLM / Zhipu (CN) | glm-cn | Anthropic-compatible | Direct (CN) | | OpenAI | openai | OpenAI-only | LiteLLM proxy | | Google Gemini | gemini | OpenAI-only | LiteLLM proxy | | Groq | groq | OpenAI-only | LiteLLM proxy | | Mistral AI | mistral | OpenAI-only | LiteLLM proxy | | Together AI | together | OpenAI-only | LiteLLM proxy | | Qwen (Alibaba) | qwen | OpenAI-only | LiteLLM proxy | | Ollama (local) | ollama | OpenAI-only | LiteLLM proxy | | Custom | custom | Anthropic-compatible | Direct |

Why LiteLLM for some? Claude Code sends requests in Anthropic's /v1/messages format. OpenAI, Groq, Gemini etc. only speak /v1/chat/completions — a different wire protocol. LiteLLM translates between them locally. DeepSeek, OpenRouter, Kimi, and GLM all ship real Anthropic-compatible endpoints so they connect directly with no proxy.

Providers that need LiteLLM proxy

Install LiteLLM once:

pip install 'litellm[proxy]'

Start the proxy for your provider (in a separate terminal, before launching Claude):

# OpenAI
litellm --model openai/gpt-4.1 --api_key $OPENAI_API_KEY --port 4000

# Google Gemini (get key at aistudio.google.com)
litellm --model gemini/gemini-2.5-pro --api_key $GEMINI_API_KEY --port 4000

# Groq (Llama 4 Maverick)
litellm --model groq/llama-4-maverick-17b-128e-instruct --api_key $GROQ_API_KEY --port 4000

# Mistral
litellm --model mistral/mistral-large-latest --api_key $MISTRAL_API_KEY --port 4000

# Together AI
litellm --model together_ai/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8 --api_key $TOGETHERAI_API_KEY --port 4000

# Ollama (local, no API key)
litellm --model ollama/llama3.3 --api_base http://localhost:11434 --port 4000

Then run claude-mm launch <profile>. The CLI will remind you with the exact command if LiteLLM isn't set up.

OpenRouter, Kimi, and GLM connect directly — no LiteLLM needed. See the Direct providers section.

OpenRouter popular models (set via claude-mm set-model openrouter <model-id>):

anthropic/claude-opus-4
openai/gpt-4.1
openai/o3
google/gemini-2.5-pro
deepseek/deepseek-chat
deepseek/deepseek-r1
meta-llama/llama-4-maverick
moonshotai/kimi-k2.6
x-ai/grok-3

Make a provider permanent

Want DeepSeek every time — even with plain claude?

claude-mm set-default deepseek
# restart terminal
claude                          # now uses DeepSeek

Writes env vars into your shell profile ($PROFILE on Windows, .bashrc/.zshrc on Mac/Linux).

Revert:

claude-mm unset-default
# restart terminal

How it works

  • Profiles = named sets of env vars
  • claude-mm launch sets env vars in child process → runs claude
  • Env vars must be set at launch — switching mid-session requires relaunch
  • set-default writes vars to shell profile so every terminal already has them
  • Slash commands installed to ~/.claude/commands/multimodel/ — available in every project

Env vars per profile

| Var | Purpose | |-----|---------| | ANTHROPIC_BASE_URL | API endpoint (empty = native Anthropic) | | ANTHROPIC_AUTH_TOKEN | API key for third-party providers | | ANTHROPIC_MODEL | Default model | | ANTHROPIC_DEFAULT_OPUS_MODEL | Model when Opus is requested | | ANTHROPIC_DEFAULT_SONNET_MODEL | Model when Sonnet is requested | | ANTHROPIC_DEFAULT_HAIKU_MODEL | Model when Haiku is requested | | CLAUDE_CODE_SUBAGENT_MODEL | Model for background subagents | | CLAUDE_CODE_EFFORT_LEVEL | low / medium / high / max |


Update

npm update -g claude-multimodel