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

gazacode

v2.0.2

Published

GAZACODE — a beautiful multi-provider AI chat CLI with Skills & MCP (OpenAI, Gemini, Anthropic, OpenRouter, OpenCode Zen)

Downloads

419

Readme

GAZACODE

A beautiful multi-provider AI chat CLI for your terminal — with file actions, browser control, task planning, and a green aesthetic.

GAZACODE is a coding assistant that runs in your terminal, supports multiple AI providers, can create and edit files on your machine, and breaks complex tasks into a visible plan with progress tracking.

GAZACODE Node License


Features

  • 5 AI Providers out of the box — OpenAI, Google Gemini, Anthropic Claude, OpenRouter, OpenCode Zen
  • Always the latest modelsgpt-5.5, claude-opus-4-8, gemini-2.5-pro, and 100+ more
  • Real file operations — the AI can read, write, touch, search, and mkdir files
  • Headless browser control — navigate, click, type, screenshot, snapshot any URL
  • Smart task planning — multi-step requests are broken into a visible ⬜/✅ checklist
  • Auto-saved sessions — pick up where you left off, with full conversation history
  • Settings page/settings opens a dedicated screen for provider, model, and API key
  • RTL support — Arabic text is wrapped in Unicode bidi controls for proper display
  • Multi-language — built-in support for file ops in 8+ languages

Quick start

1. Install

npm install

2. Run

npm start

On first run, you'll be taken to the connect screen to add an API key for at least one provider.

3. Develop

npm run dev          # Run with hot reload via tsx
npm run build        # Compile TypeScript to dist/
npm run typecheck    # Type check without emit

Supported providers

| Provider | Default model | Get API key | |---------------|---------------------|-----------------------------------------------------| | OpenAI | gpt-5.5 | platform.openai.com | | Anthropic | claude-sonnet-4-6 | console.anthropic.com | | Google Gemini | gemini-2.5-pro | aistudio.google.com | | OpenRouter | nvidia/nemotron-3-super-120b-a12b:free | openrouter.ai/keys | | OpenCode Zen | opencode/big-pickle | opencode.ai/auth |


In-chat commands

| Command | Description | |-------------------|-------------------------------------------------| | /settings | Open the settings page | | /provider | Switch to a different provider | | /model [name] | Switch model (or pick from list) | | /folder [path] | Set working folder (defaults to cwd if no arg)| | /read <path> | Load a file into conversation | | /search <regex> | Search file contents | | /write <path> <text> | Write text to a file | | /touch <path> | Create an empty file | | /mkdir <path> | Create a directory | | /run <skill> | Run a registered skill (e.g., screenshot) | | /browser <cmd> | navigate / click / type / screenshot | | /retry | Regenerate the last response | | /undo | Remove the last exchange | | /copy | Copy the last response to clipboard | | /export [file] | Save conversation as Markdown | | /system [text\|reset] | View or set the system prompt | | /newchat | Start a fresh conversation | | /clear | Clear the screen and reset conversation | | /keys | Manage stored API keys | | /disconnect | Go back to the connect screen | | /history | Show current model and turn counts | | /help | Show all commands | | /exit | Quit GAZACODE |


CLI commands

gazacode            # Start the app
gazacode connect    # Open the connect screen
gazacode config     # Show config and stored providers
gazacode disconnect # Clear all stored API keys
gazacode reset      # Erase everything and start over
gazacode help       # Show help

How the AI works

GAZACODE uses a strict system prompt that forces the AI to:

  1. Plan first — For multi-file requests, the AI outputs a ## Plan with numbered steps. These appear as ⬜ checkboxes in the box BEFORE any work starts.
  2. One step at a time — Each step produces a status line that the user sees in chat. The checklist updates in real time.
  3. Hide the code — All FILE: blocks are silently saved to disk. The chat only shows brief status messages. The user never sees raw code in the conversation.
  4. Test before declaring done — For websites, the AI opens the result in a headless browser and takes a screenshot.

Example of a clean AI response (what the user sees in chat):

## Plan
1. Create index.html
2. Create style.css
3. Create script.js

✅ Create index.html

(Meanwhile, the FILE: index.html block is silently saved to disk, the file is created, and the checklist in the box shows ⬜ Create style.css and ⬜ Create script.js as the next steps.)


Project structure

gazacode/
├── src/
│   ├── chat.ts           # Main chat session, render loop, system prompt
│   ├── config.ts         # Persistent config (API keys, last model, session)
│   ├── index.ts          # CLI entry point
│   ├── mcp/              # Model Context Protocol (browser control)
│   ├── providers/        # AI provider implementations
│   │   ├── openai.ts
│   │   ├── anthropic.ts
│   │   ├── gemini.ts
│   │   ├── openrouter.ts
│   │   ├── zen.ts
│   │   ├── index.ts
│   │   └── types.ts
│   ├── skills/           # Built-in skills (screenshot, echo, ...)
│   ├── types.d.ts
│   └── ui/               # UI components (banner, picker, settings, ...)
├── package.json
├── tsconfig.json
└── .gitignore

Configuration

All configuration is stored in ~/.opengaza/:

  • config.json — API keys, last model per provider, first-run flag
  • session.json — current session (messages, provider, model, work folder)

These files are user-specific and should never be committed. They are in .gitignore.


Requirements

  • Node.js 18+
  • A working internet connection
  • An API key from at least one supported provider

License

MIT — © GAZA