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

@tkpdx01/ccc

v2.4.0

Published

Claude Code / Codex Settings Launcher - Manage multiple profiles with zero dependencies

Readme

ccc

Zero-dependency profile switcher for Claude Code & OpenAI Codex.

CCC terminal preview with provider badges, a highlighted menu, and keyboard shortcuts

Terminal preview with demo profiles.

npm i -g @tkpdx01/ccc
ccc new          # create a profile
ccc list         # list all
ccc 3            # launch #3
ccc -d           # Claude: --dangerously-skip-permissions; Codex: --dangerously-bypass-approvals-and-sandbox
ccc api -p "Explain this project"  # forward arguments to Claude
ccc api -- --help                # show the child CLI's help

The interactive UI includes a workspace header, provider badges, highlighted menus, and compact layouts for narrow terminals. Use ↑/↓ or j/k to move, Enter to select, Home/End or Page Up/Down for long lists, and q or Esc to exit. Chinese text and emoji align by terminal cell width. Piped output stays free of color codes; NO_COLOR=1 also disables colors in interactive terminals.

How It Works

 ~/.ccc/profiles/api.json        ~/.claude/settings.json
      credentials only        +        read-only
              │                           │
              └──── merge at launch ──────┘
                         │
             ~/.ccc/tmp/claude-<id>/api.json
                         │
                claude --settings <tmp>

Claude profiles store API URL + key, with optional model, environment, and settings overrides. At launch, your global settings.json is read, merged with the profile, and passed to claude via a private temporary file. Each launch gets its own file, which is removed when the child exits or fails to start. Codex uses the profile directory as CODEX_HOME.

Normal launches leave global settings unchanged. The explicit ccc apply command writes the selected profile to the global configuration.

Claude launches default to skipWebFetchPreflight: true, so WebFetch does not depend on Anthropic's domain preflight service when using custom or restricted endpoints. An explicit false in the global settings or profile settings overrides this default.

AnyRouter endpoints (anyrouter.top and the same host behind a reverse proxy) require Claude Code's 1M context header. Creating or editing a Claude profile with an AnyRouter URL writes that configuration automatically: claude-fable-5-1[1m], context-1m-2025-08-07, and the flags that would otherwise block experimental betas. Existing AnyRouter profiles pick up the same overlay at launch and apply without being rewritten.

Existing full settings.json profiles and slim profiles remain supported. Older ccc-generated Codex profiles with model/provider keys inside [analytics] are repaired on launch or when applied. Other tables are kept. Malformed Claude global settings produce an error so they can be repaired without losing existing settings.

Extra launch arguments keep their order. Existing ccc flags (-d, --ddd, --help, and --version, including their short aliases) are still handled by the launcher; use -- before arguments that should go entirely to the child CLI.

Commands

| | | |---|---| | ccc list | List profiles | | ccc new [name] | Create profile | | ccc edit [profile] | Edit credentials | | ccc show [profile] | Show details | | ccc apply [profile] | Write profile to global config | | ccc delete [profile] | Delete |

Storage

~/.ccc/
├── profiles/          # Claude  { apiUrl, apiKey }
├── codex-profiles/    # Codex   auth.json + config.toml
├── tmp/               # Per-launch merged settings (ephemeral)
└── config.json        # Launcher preferences (language)

Older Codex profiles stored as ~/.ccc/profiles/<name>.json with type: "codex" are still listed and launched as Codex, not Claude. Launching one materializes it into codex-profiles/.

License

MIT