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 🙏

© 2025 – Pkg Stats / Ryan Hefner

swixter

v0.0.6

Published

CLI tool for managing AI coding assistant configurations - easily switch between providers (Claude Code, Codex, Continue) with Anthropic, Ollama, or custom APIs

Readme

Swixter

npm version Test Status Release Status License: MIT Node.js Version

Make AI coding tools effortlessly switchable

A lightweight CLI tool that makes it easy to switch between AI providers for Claude Code, Codex, Continue, and other AI coding assistants.

Why Swixter?

Working with AI coding tools shouldn't be complicated. Swixter lets you:

  • Switch providers instantly - Change between Anthropic, Ollama, or custom APIs with one command
  • Manage multiple configs - Keep separate profiles for work, personal, or experimental setups
  • Support multiple coders - Works with Claude Code, Codex, Continue, and more
  • Use command aliases - Ultra-short commands (r, ls, sw) for maximum productivity
  • Add custom providers - Easily integrate any OpenAI-compatible AI service
  • Stay in control - All configs stored locally, no cloud dependencies

Installation

npm (Recommended)

npm install -g swixter

npx (No Install Needed)

npx swixter --help

Platform Support

  • Linux/macOS: Full support
  • Windows: Full support (Windows 10/11, requires Node.js 18+)
    • Config stored at ~/swixter/config.json (e.g., C:\Users\YourName\swixter\config.json)
    • Docker Desktop + WSL2 recommended for E2E tests
    • See docs/WINDOWS.md for detailed Windows guide

Quick Start

# Create your first profile
swixter claude create

# List all profiles
swixter claude list

# Switch between profiles
swixter claude switch my-profile

# Apply profile to Claude Code
swixter claude apply

Built-in Providers

  • Anthropic - Official Claude API
  • Ollama - Run Qwen and other models locally
  • Custom - Add any OpenAI-compatible API

Add Custom Providers

Easily add any AI service:

# Interactive setup
swixter providers add

# Or use flags
swixter providers add \
  --id openrouter \
  --name "OpenRouter" \
  --base-url "https://openrouter.ai/api/v1" \
  --auth-type bearer

Supports OpenRouter, DeepSeek, MiniMax, and any OpenAI-compatible API.

Features

Simple - Minimal commands, maximum productivity 🚀 Fast - Built with Bun for instant operations 🎨 Beautiful - Clean, modern CLI interface 🔒 Secure - Keys stored locally, optional sanitization for sharing 🔧 Flexible - Works with any OpenAI-compatible API 📦 Lightweight - Small package size, zero bloat

Commands

For Claude Code

swixter claude create          # Create new profile
swixter claude list             # List all profiles (alias: ls)
swixter claude switch <name>    # Switch active profile (alias: sw)
swixter claude apply            # Apply to Claude Code
swixter claude run              # Run Claude Code with current profile (alias: r)
swixter claude delete <name>    # Delete profile (alias: rm)

For Codex

swixter codex create          # Create new profile
swixter codex list             # List all profiles (alias: ls)
swixter codex switch <name>    # Switch active profile (alias: sw)
swixter codex apply            # Apply to Codex (writes ~/.codex/config.toml)
swixter codex run              # Apply + set env + run codex (alias: r, all-in-one)
swixter codex delete <name>    # Delete profile (alias: rm)

Two ways to use Codex profiles:

  1. Quick way (recommended): swixter codex r (or swixter codex run)

    • Automatically applies profile to config.toml
    • Sets environment variables
    • Runs codex in one command
  2. Manual way: swixter codex apply → set env vars → codex

    • Good for debugging or custom setups

For Qwen/Continue

swixter qwen create            # Create new profile
swixter qwen list               # List all profiles (alias: ls)
swixter qwen switch <name>      # Switch active profile (alias: sw)
swixter qwen apply              # Apply to Continue
swixter qwen run                # Run Qwen Code with current profile (alias: r)
swixter qwen delete <name>      # Delete profile (alias: rm)

Provider Management

swixter providers list          # List available providers
swixter providers add           # Add custom provider
swixter providers remove <id>   # Remove provider

Configuration

swixter export config.json      # Export configs
swixter import config.json      # Import configs
swixter completion bash         # Shell completion

Configuration File

Configs are stored at ~/.config/swixter/config.json

{
  "profiles": {
    "my-profile": {
      "name": "my-profile",
      "providerId": "anthropic",
      "apiKey": "sk-ant-...",
      "model": "claude-sonnet-4-20250514"
    }
  },
  "coders": {
    "claude": {
      "activeProfile": "my-profile"
    }
  }
}

Examples

Example 1: Switch between work and personal

# Setup work profile
swixter claude create --name work --provider anthropic --api-key sk-ant-work-xxx

# Setup personal profile
swixter claude create --name personal --provider anthropic --api-key sk-ant-personal-xxx

# Switch to work (using short alias)
swixter claude sw work && swixter claude apply

# Quick run with work profile (using ultra-short alias)
swixter claude r

# Switch to personal
swixter claude sw personal && swixter claude apply
swixter claude r

Example 2: Try Qwen locally

# Add Ollama profile
swixter qwen create \
  --name local \
  --provider ollama \
  --base-url http://localhost:11434

# Switch and run (using aliases)
swixter qwen sw local
swixter qwen r

Example 3: Use Codex with local Ollama

# Create Codex profile for Ollama
swixter codex create \
  --name ollama-local \
  --provider ollama \
  --base-url http://localhost:11434

# Quick way: All-in-one command (using ultra-short alias)
swixter codex r

# Or manual way:
swixter codex apply
export OLLAMA_API_KEY=""
codex

# Run with different profile temporarily
swixter codex run --profile other-profile

Example 4: Add OpenRouter

# Add OpenRouter as custom provider
swixter providers add \
  --id openrouter \
  --base-url "https://openrouter.ai/api/v1" \
  --auth-type bearer

# Create profile using OpenRouter
swixter claude create \
  --name openrouter-profile \
  --provider openrouter \
  --api-key sk-or-v1-xxx

Shell Completion

Enable auto-completion for faster typing:

# Bash
swixter completion bash > ~/.local/share/bash-completion/completions/swixter

# Zsh
swixter completion zsh > ~/.zfunc/_swixter

# Fish
swixter completion fish > ~/.config/fish/completions/swixter.fish

Command Aliases

Save keystrokes with short aliases:

swixter claude r               # run (ultra-short!)
swixter claude ls              # list
swixter claude sw my-profile   # switch
swixter claude rm old-profile  # delete
swixter claude new             # create

Full command reference:

  • rrun - Execute the AI coder
  • lslist - List all profiles
  • swswitch - Switch profiles
  • rmdelete - Delete profiles
  • newcreate - Create new profile

Help & Documentation

swixter --help                 # Global help
swixter claude --help          # Claude commands help
swixter providers --help       # Provider commands help

Development

Built with modern tools for a great developer experience:

# Clone repo
git clone https://github.com/dawnswwwww/swixter.git
cd swixter

# Install dependencies
bun install

# Run in dev mode
bun run cli

# Run tests
bun test

Tech Stack

  • Bun - Fast JavaScript runtime
  • TypeScript - Type safety
  • @clack/prompts - Beautiful CLI prompts
  • Zod - Schema validation

Contributing

Contributions are welcome! Feel free to:

  • 🐛 Report bugs
  • 💡 Suggest features
  • 🔧 Submit pull requests

Please check out CONTRIBUTING.md for guidelines (if available).

Changelog

See CHANGELOG.md for a list of changes in each version.

Roadmap

Future plans for Swixter:

  • [ ] Support for more AI coding assistants
  • [ ] Profile templates for common setups
  • [ ] Configuration validation and migration tools
  • [ ] Web UI for profile management
  • [ ] Cloud sync for profiles (optional)

Contributing

Contributions are welcome! Here's how to get started:

Development Setup

# Clone the repository
git clone https://github.com/dawnswwwww/swixter.git
cd swixter

# Install dependencies
bun install

# Run in development mode
bun run cli:dev

# Run tests
bun test

# Build the project
bun run build

Release Process

Swixter uses a semi-automated release process:

  1. Update CHANGELOG.md with your changes under [Unreleased]
  2. Run release command:
    bun run release:patch  # For bug fixes (0.0.4 → 0.0.5)
    bun run release:minor  # For new features (0.0.4 → 0.1.0)
    bun run release:major  # For breaking changes (0.0.4 → 1.0.0)
  3. GitHub Actions automatically:
    • Runs tests on Linux/macOS/Windows
    • Publishes to npm
    • Creates GitHub Release with changelog

See CLAUDE.md for detailed development documentation.

License

MIT License - see LICENSE

Links


Made with ❤️ to make AI coding tools more accessible