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

goodai

v1.0.13

Published

Offline Developer Toolkit - Learning, Tools & Productivity

Downloads

1,197

Readme

npm version npm downloads npm bundle size License Node GitHub stars

GoodAI is a fully offline developer toolkit — runs as a local web app on your machine. Install once, run forever with the goodai command.


Table of Contents


What is GoodAI

GoodAI is a complete offline developer toolkit that launches a full-featured neon dashboard in your browser — no cloud, no subscriptions, no internet needed for core features.

It also works as a Node.js libraryrequire('goodai') directly in any project.

npm install -g goodai   →   goodai   →   http://localhost:3000

Screenshots

Terminal — Neon ASCII Boot Screen

Dashboard

AI Chat — 8 Models

Image Generation

Number Lookup

Code Snippets


Requirements

| Requirement | Minimum | |-------------|---------| | Node.js | v16 or higher | | npm | v7 or higher | | OS | Windows / macOS / Linux | | Internet | Only for AI features |


Installation

Step 1 — Install globally

npm install -g goodai

Step 2 — Setup wizard runs automatically on first install

  ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
  ░   GOODAI — FIRST TIME SETUP              ░
  ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░

  ┃ 👤 Your name          › Surya
  ┃ 🔌 Port               › [3000]
  ┃ 🌐 Auto-open browser  › [Y/n]

  ✓ Config saved!

  🚀 Launch GoodAI now? › Y

Step 3 — Run anytime

goodai

CLI Usage

# Start the toolkit
goodai

# View current config
goodai --config

# aionix command also works
aionix
aionix --config

Terminal output on every start

  ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
  ░    ██████╗  ██████╗  ██████╗ ██████╗         ░
  ░   ██╔════╝ ██╔═══██╗██╔═══██╗██╔══██╗        ░
  ░   ██║  ███╗██║   ██║██║   ██║██║  ██║        ░
  ░   ╚██████╔╝╚██████╔╝╚██████╔╝██████╔╝        ░
  ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░

  ╔══════════════════════════════════════════════════╗
  ║  👾 Welcome back, Surya                         ║
  ║  v1.0.0  ·  AI Chat  ·  Image Gen  ·  Tools    ║
  ╚══════════════════════════════════════════════════╝

  Initializing         [██████████████████████████████] DONE ✓
  Loading modules      [██████████████████████████████] DONE ✓
  Checking system      [██████████████████████████████] DONE ✓

  ┌──────────┬──────────────────────┐
  │  PORT    │  STATUS              │
  ├──────────┼──────────────────────┤
  │  3000    │  ○ FREE              │ ◄
  │  3001    │  ○ FREE              │
  └──────────┴──────────────────────┘

  ✓ Starting GoodAI server...

  ╔══════════════════════════════════════════════╗
  ║   🟢 GOODAI IS LIVE                         ║
  ╠══════════════════════════════════════════════╣
  ║   🌐 http://localhost:3000                  ║
  ║   👤 User: Surya                            ║
  ║   🔌 Port: 3000                             ║
  ╚══════════════════════════════════════════════╝

Library Usage

Install as a dependency

npm install goodai

Import

const { chatai, imgtotextai, numinfo } = require('goodai');

Complete example

const { chatai, imgtotextai, numinfo } = require('goodai');

async function main() {

  // AI Chat
  const chat = await chatai('Explain closures in JavaScript', { model: 1 });
  console.log(chat.response);
  console.log(chat.model);     // "Llama 3.3 70B Pro"

  // Image Generation
  const image = await imgtotextai('a neon cyberpunk city at night');
  console.log(image.url);      // direct image link

  // Number Lookup
  const info = await numinfo('9XXXXXXXXX');
  console.log(info.name);      // subscriber name
  console.log(info.fname);     // father name
  console.log(info.circle);    // telecom circle

}

main();

API Reference

chatai(prompt, options)

Parameters:

| Parameter | Type | Required | Default | Description | |-----------|------|----------|---------|-------------| | prompt | string | Yes | — | Your message | | options.model | number | No | 1 | Model ID 1–8 |

Returns:

{
  response:   "AI response text",
  model:      "Llama 3.3 70B Pro",
  model_id:   1,
  words:      42,
  characters: 210,
  timestamp:  "2026-03-08T10:00:00.000Z"
}

Examples:

// Default — Llama 3.3
const r = await chatai('What is async/await?');

// DeepSeek — best for logic/math
const r = await chatai('Calculate fibonacci(20)', { model: 3 });

// Claude 3.5 — best for instructions
const r = await chatai('Write a REST API in Express', { model: 6 });

// Creative AI — best for writing
const r = await chatai('Write a poem about coding at 3am', { model: 8 });

imgtotextai(prompt)

Parameters:

| Parameter | Type | Required | Description | |-----------|------|----------|-------------| | prompt | string | Yes | Image description |

Returns:

{
  url:      "https://tmpfiles.org/dl/XXXXXXXX/image.png",
  filename: "image.png",
  size:     "1.2 MB",
  expired:  "expires after ~1 hour",
  prompt:   "your original prompt",
  source:   "primary"  // or "fallback"
}

Examples:

const img = await imgtotextai('red fox sitting on snow at sunset');
console.log(img.url);

const img = await imgtotextai('futuristic India 2077 flying rickshaws');
console.log(img.url);

numinfo(number)

Parameters:

| Parameter | Type | Required | Description | |-----------|------|----------|-------------| | number | string | Yes | 10-digit mobile number |

Returns:

{
  name:   "Subscriber Name",
  fname:  "Father Name",
  circle: "JIO UP WEST"
}

Rate limit: 5 lookups per number per day.


Error Handling

const { chatai, imgtotextai, numinfo } = require('goodai');

async function run() {
  try {
    const chat = await chatai('Hello!');
    console.log(chat.response);
  } catch (err) {
    console.error(err.message);
    // "prompt is required"
    // "model must be 1–8"
    // "Network Error: ..."
  }

  try {
    const info = await numinfo('9XXXXXXXXX');
    console.log(info.name);
  } catch (err) {
    console.error(err.message);
    // "invalid number format"
    // "no info found for this number"
    // "Daily limit reached (5/day)"
  }
}

AI Models

| ID | Model | Best For | |----|-------|----------| | 1 | Llama 3.3 70B Pro | General purpose, coding | | 2 | DeepAI Pro Max | Creative writing | | 3 | DeepSeek V3 Ultra | Logic, math, deep analysis | | 4 | Gemma 3B Turbo | Fast, lightweight | | 5 | Mistral 3.2 Pro | Multilingual | | 6 | Claude 3.5 Sonnet | Reasoning, instructions | | 7 | GPT-4o Mini | Balanced | | 8 | Creative AI Max | Artistic, creative |


Dashboard Features

| Module | Description | |--------|-------------| | Dashboard | Stats, quick launch, today's habits | | AI Chat | 8 models, typing indicator, model switcher | | Image Gen | Text to image, gallery, preview, download | | Number Lookup | Name, father name, telecom circle | | Code Snippets | Save, search, filter, copy, delete | | Quiz | JS / React / Node.js / CSS MCQ with scoring | | Habit Tracker | Daily habits, streak counter | | Offline Docs | JS, React, Node.js, CSS — no internet needed | | Playground | Live HTML + JS editor with output |


Configuration

Saved at ~/.goodai/config.json

{
  "name": "Surya",
  "port": 3000,
  "autoOpen": true,
  "installedAt": "2026-03-08T10:00:00.000Z",
  "version": "1.0.0"
}
# View config
goodai --config

# Edit — Windows
notepad %USERPROFILE%\.goodai\config.json

# Edit — Mac/Linux
nano ~/.goodai/config.json

# Reset setup — Windows
del %USERPROFILE%\.goodai\config.json && goodai

# Reset setup — Mac/Linux
rm ~/.goodai/config.json && goodai

Project Structure

goodai/
├── bin/
│   ├── index.js       CLI — neon terminal, loading bars, port checker
│   ├── install.js     First-time setup wizard
│   └── goodai.cmd     Windows command wrapper
├── client/
│   └── index.html     Full dashboard — neon cyberpunk UI
├── db/
│   ├── habits.db      Local habits database (NeDB)
│   ├── quiz.db        Quiz questions — JS, React, Node.js, CSS
│   └── snippets.db    Snippets database (NeDB)
├── lib/
│   ├── chatai.js      AI Chat wrapper
│   ├── imgtotextai.js Image generation wrapper
│   ├── numinfo.js     Number lookup wrapper
│   └── index.js       Main export — require('goodai')
├── server/
│   ├── app.js         Express server with auto port detection
│   └── routes/
│       ├── ai.js      /api/ai — chat, image, numinfo
│       ├── docs.js    /api/docs — offline reference
│       ├── habits.js  /api/habits — CRUD + streaks
│       ├── quiz.js    /api/quiz — questions by topic
│       └── snippets.js /api/snippets — CRUD + search
└── package.json

Tech Stack

Node.js Express JavaScript HTML5 CSS3 npm

| Package | Version | Purpose | |---------|---------|---------| | express | ^4.18.2 | Local HTTP server | | nedb-promises | ^6.2.1 | Embedded offline database | | chalk | ^4.1.2 | Terminal colors | | open | ^8.4.2 | Auto-open browser |


Privacy

  • All data stored locally in db/ — never uploaded anywhere
  • AI Chat and Image Gen require internet — everything else is fully offline
  • Number Lookup returns only name and telecom circle — no address or ID exposed
  • Rate limit: 5 lookups per number per day
  • No analytics, no telemetry, no tracking

Changelog

v1.0.0

  • Package renamed to goodai — command is now goodai
  • aionix command still works as alias
  • Config stored at ~/.goodai/config.json
  • AI Chat with 8 model selector
  • Image Generation with fallback API
  • Number Lookup
  • Full neon cyberpunk terminal UI
  • Offline dashboard: Snippets, Quiz, Habits, Docs, Playground

Author

GitHub npm

C++ Python JavaScript HTML5 CSS3 Node.js


License

MIT — free to use, modify, and distribute.


Made with focus by Surya Singh

npm install -g goodai  ·  goodai  ·  http://localhost:3000