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

squeezr-code

v1.0.18

Published

All for One

Downloads

81

Readme

  ███████╗ ██████╗ ██╗   ██╗███████╗███████╗███████╗██████╗
  ██╔════╝██╔═══██╗██║   ██║██╔════╝██╔════╝╚══███╔╝██╔══██╗
  ███████╗██║   ██║██║   ██║█████╗  █████╗    ███╔╝ ██████╔╝
  ╚════██║██║▄▄ ██║██║   ██║██╔══╝  ██╔══╝   ███╔╝  ██╔══██╗
  ███████║╚██████╔╝╚██████╔╝███████╗███████╗███████╗██║  ██║
  ╚══════╝ ╚══▀▀═╝  ╚═════╝ ╚══════╝╚══════╝╚══════╝╚═╝  ╚═╝
                          · C O D E ·

All for One

Claude · GPT · Gemini — one CLI, every AI

npm version Node.js License: MIT Platform


sq is an interactive AI coding agent that speaks directly to Anthropic, OpenAI/Codex, and Google/Gemini using the same OAuth tokens as their official CLIs — no API keys, no wrappers, just your existing subscriptions.

npm install -g squeezr-code
sq

What makes it different

| | squeezr-code | Claude Code | Codex CLI | Gemini CLI | |--|:--:|:--:|:--:|:--:| | Claude (Anthropic) | ✅ | ✅ | ❌ | ❌ | | GPT / Codex (OpenAI) | ✅ | ❌ | ✅ | ❌ | | Gemini (Google) | ✅ | ❌ | ❌ | ✅ | | Committee mode (all 3 at once) | ✅ | ❌ | ❌ | ❌ | | Real-time sidebar | ✅ | ❌ | ❌ | ❌ | | Smart router + learning | ✅ | ❌ | ❌ | ❌ | | Session persistence | ✅ | ✅ | ❌ | ❌ | | MCP servers | ✅ | ✅ | ❌ | ❌ |


Quick start

# Install
npm install -g squeezr-code

# Authenticate (reuses tokens from official CLIs if already installed)
sq login anthropic     # opens claude.ai in browser
sq login openai        # opens auth.openai.com
sq login google        # opens accounts.google.com

# Start
sq                     # interactive REPL (shows workspace trust prompt)
sq init                # generate sq.toml + SQUEEZR.md for your project
sq --resume            # pick a previous session to continue
sq -c                  # continue the most recent session
sq -p "fix the bug"    # one-shot, non-interactive
cat error.log | sq -p "what went wrong?"

Interface

squeezr-code runs as a full-screen TUI (alternate screen buffer, like vim or htop). Custom ANSI renderer — no Electron, no Ink, just raw terminal.

┌─────────────────────────────────────────┬──────────────────────────────────┐
│                                         │● sonnet 4.6     anthropic [router]│
│  you                                    │████░░░░░░  12%  $0.04            │
│  fix the auth bug in api/client.ts      │─────────────────────────────────│
│                                         │▼ Providers                       │
│  Squeezr                                │ ● anthropic                      │
│  The issue is on line 47…               │ ● openai                         │
│                                         │ ○ google                         │
│  ├─ ▸ Read  api/client.ts               │─────────────────────────────────│
│  ├─ ± Edit  api/client.ts               │▼ Tasks                           │
│  - const token = headers.auth           │  empty                           │
│  + const token = headers.authorization  │─────────────────────────────────│
│                                         │▼ Processes                       │
│  ╰──                                    │  empty                           │
│                                         │─────────────────────────────────│
├─────────────────────────────────────────│∓ main  ●                        │
│ squeezr · ████░  12% 3h 22m · $0.04 · sonnet 4.6                         │
│   ↳ default · shift+tab  Ctrl+O thinking  Ctrl+T tasks  Ctrl+B sidebar    │
├─────────────────────────────────────────────────────────────────────────────┤
│ ❯ _                                                                         │
└─────────────────────────────────────────────────────────────────────────────┘

Keyboard shortcuts

| Key | Action | |-----|--------| | Ctrl+B | Toggle sidebar | | Ctrl+R | Toggle smart router | | Ctrl+T | Toggle task panel | | Ctrl+O | Expand/collapse thinking | | Ctrl+C | Abort current turn / exit | | Shift+Tab | Cycle permission mode | | ↑ / ↓ | Navigate history | | PgUp / PgDn | Scroll output | | Mouse wheel | Scroll output / sidebar | | Tab | Autocomplete commands & @aliases |


Features

Multi-provider in one place

Use any combination of Claude, GPT, and Gemini in the same session. Switch mid-conversation:

you: @opus redesign this architecture
you: @gemini what do you think of the approach above?
you: @gpt now implement the storage layer

/committee — ask all models at once

Runs the same prompt in parallel across all authenticated providers. Each response appears as it arrives. A judge model synthesises the best answer.

/committee what is the most resilient way to handle database failover?
🏛  Committee — Claude Opus · GPT-5.4 · Gemini 2.5
Running all models in parallel…

▸ GPT-5.4  3.8s
  The most resilient approach combines…

▸ Claude Opus  4.2s
  I'd recommend a read replica strategy with…

▸ Gemini 2.5  5.1s
  Consider using a circuit breaker pattern…

⚖  Synthesis (claude-sonnet)
  All three models agree on the core pattern…

Smart router

Automatically routes each prompt to the right model based on complexity. No latency — the turn starts immediately while the router works in the background.

# sq.toml
[router]
enabled = true
learn = true   # background LLM classification learns your preferences

[router.rules]
"code review" = "opus"
"translate" = "haiku"
"documentation" = "haiku"

The router learns from your @model overrides. After 3 consistent corrections, it promotes the pattern as a learned rule. /router show displays current state. /router reset clears everything.

Real-time sidebar

Auto-appears on terminals ≥ 120 cols (Ctrl+B to toggle). Collapsible sections — click any header to expand/collapse.

  • Providers — auth status per provider (green = authenticated)
  • MCP — server connection status + tool count
  • Tasks — live task list from the agent
  • Processes — active background shells + monitors
  • Files — files modified this session
  • Git — current branch + dirty indicator

Session persistence

Every conversation is saved. Resume any previous session with context intact.

sq --resume            # interactive picker with dates, model, turn count
sq -c                  # continue latest session directly
sq resume <id>         # resume a specific session by ID

MCP servers

Full Model Context Protocol support. Add servers to sq.toml:

[mcp.filesystem]
command = "npx"
args = ["-y", "@modelcontextprotocol/server-filesystem", "/path"]

[mcp.github]
command = "npx"
args = ["-y", "@modelcontextprotocol/server-github"]
env = { GITHUB_TOKEN = "ghp_..." }

Manage from the REPL with /mcp — interactive picker to connect, disconnect, or restart any server.

Background tools

The agent can run long-running processes without blocking:

run "npm run dev" in background and check for errors

Active background shells and monitors appear in the sidebar in real time. Kill them with KillShell or via /mcp.

Built-in tools (24)

| Category | Tools | |----------|-------| | Files | Read (+ PDF), Write, Edit, Glob, Grep | | Shell | Bash, BashOutput, KillShell | | Web | WebFetch, WebSearch | | Tasks | TaskCreate, TaskList, TaskGet, TaskUpdate | | Agents | Task (sub-agents), AskUserQuestion, ExitPlanMode | | Scheduling | CronCreate, CronList, CronDelete | | Watching | Monitor | | Git | EnterWorktree, ExitWorktree | | Notebooks | NotebookEdit |


Commands reference

| Command | Description | |---------|-------------| | /model | Interactive model picker ↑↓ Enter | | /model <alias> | Switch model: /model opus, /model pro | | /committee <prompt> | Run prompt across all providers in parallel | | /router on\|off | Toggle smart routing | | /router learn on\|off | Toggle background LLM learning | | /router rules | Show learned preferences | | /mcp | MCP server manager (connect / disconnect / restart) | | /compact | Compress conversation history | | /clear | Clear conversation context | | /status | Context %, subscription usage, cost | | /cost | Cost breakdown by model | | /history [N] | Last N turns | | /tasklist | Show all tasks this session | | /paste [text] | Read image from clipboard + optional prompt | | /sidebar | Toggle sidebar | | /review [range] | Code review of current git diff | | /sessions | List saved sessions | | /help | Quick reference | | @file path/to/file | Inject file content into prompt | | @model <prompt> | One-shot model override: @opus, @haiku, @gemini |


Authentication

squeezr-code imports tokens from official CLIs automatically. If you've used Claude Code, Codex, or Gemini CLI, you're already authenticated.

Option A — OAuth login from sq (recommended)

sq login anthropic     # claude.ai → PKCE flow
sq login openai        # auth.openai.com → PKCE flow
sq login google        # accounts.google.com → OAuth2 + secret

Option B — Auto-import from official CLIs

| Provider | Reads from | Refresh | |----------|-----------|---------| | Anthropic | ~/.claude/.credentials.json | sq login anthropic | | OpenAI | ~/.codex/auth.json | sq login openai | | Google | ~/.gemini/oauth_creds.json | sq login google |

Tokens are stored in ~/.squeezr-code/auth/ and auto-refreshed in the background.


Configuration

Run sq init to generate a sq.toml in your project:

[agent]
default = "sonnet"
permissions = "default"  # default | accept-edits | plan | bypass

[router]
enabled = true
learn = false

[router.rules]
"code review" = "opus"
"translate" = "haiku"

[permissions]
allow = ["Read", "Glob", "Grep", "Bash:git *"]
deny = ["Bash:rm -rf*"]

[mcp.filesystem]
command = "npx"
args = ["-y", "@modelcontextprotocol/server-filesystem", "."]

[transplant]
warn_threshold = 80
auto_threshold = 95

Model aliases

| Alias | Resolves to | |-------|------------| | opus, sonnet, haiku | Latest Anthropic model of that family | | pro, flash | Latest Gemini model of that family | | gpt, gpt-mini, codex | Latest OpenAI model of that family |


Requirements

  • Node.js ≥ 18
  • At least one authenticated provider:

Troubleshooting

| Symptom | Likely cause | Fix | |---------|-------------|-----| | 401 from anthropic | OAuth expired | sq login anthropic or /login anthropic | | 403 from google | Refresh token expired | /login google — reopens browser | | 403 Cloudflare on Codex | Corporate VPN blocking chatgpt.com | Try a different network | | /model picker empty | Catalogue not yet loaded | Wait 1–2s or restart sq | | Characters appear on resize | Terminal resize artifact | Fixed in v1.0 — update |


License

MIT © sergioramosv