goodai
v1.0.13
Published
Offline Developer Toolkit - Learning, Tools & Productivity
Downloads
1,197
Maintainers
Readme
GoodAI is a fully offline developer toolkit — runs as a local web app on your machine. Install once, run forever with the
goodaicommand.
Table of Contents
- What is GoodAI
- Screenshots
- Requirements
- Installation
- CLI Usage
- Library Usage
- API Reference
- AI Models
- Dashboard Features
- Configuration
- Project Structure
- Tech Stack
- Privacy
- Changelog
- Author
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 library — require('goodai') directly in any project.
npm install -g goodai → goodai → http://localhost:3000Screenshots
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 goodaiStep 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? › YStep 3 — Run anytime
goodaiCLI Usage
# Start the toolkit
goodai
# View current config
goodai --config
# aionix command also works
aionix
aionix --configTerminal 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 goodaiImport
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 && goodaiProject 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.jsonTech Stack
| 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 nowgoodai aionixcommand 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
License
MIT — free to use, modify, and distribute.
Made with focus by Surya Singh
npm install -g goodai · goodai · http://localhost:3000
