igris-soul 1.1.2 → 1.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/README.md +312 -202
  2. package/cli.cjs +2 -6
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -1,172 +1,149 @@
1
- # Igris Soul
1
+ # ⚔️ Igris Soul
2
2
 
3
- > Your personal AI assistant in the terminal, inspired by Igris from Solo Leveling.
4
- >
5
- > Install it globally and summon Igris from anywhere:
6
- >
7
- > ```bash
8
- > npm install -g igris-soul
9
- > Arise
10
- > ```
3
+ > Your loyal AI companion in the terminal.
11
4
 
12
- ## Disclaimer
5
+ Igris Soul is a personal AI assistant that lives directly in your computer's terminal.
13
6
 
14
- This project sends your prompts to Google Gemini and may send web-search requests to Tavily. Do not enter passwords, private keys, personal data, confidential business information, or any other sensitive information into the assistant.
7
+ Inspired by **Igris from Solo Leveling**, it combines **Google Gemini** with **Tavily web search** to help you ask questions, learn, search for recent information, and interact with an AI assistant without opening a browser.
15
8
 
16
- You are responsible for reviewing generated answers and for the API usage and charges associated with your API keys.
9
+ You simply type:
17
10
 
18
- This project is provided for educational and personal use without guarantees about accuracy, availability, or fitness for a particular purpose.
19
-
20
- ---
21
-
22
- ## Requirements
23
-
24
- Before installing Igris Soul, make sure you have:
11
+ ```bash
12
+ Arise
13
+ ```
25
14
 
26
- * Node.js 20 or newer
27
- * A Google Gemini API key
28
- * A Tavily API key for current-information searches
29
- * An npm account if you want to install or publish the package through npm
15
+ And Igris awakens.
30
16
 
31
17
  ---
32
18
 
33
- # Installation
34
-
35
- ## Install Globally
36
-
37
- To use Igris Soul from anywhere on your computer:
19
+ ## ✨ What is Igris Soul?
38
20
 
39
- ```bash
40
- npm install -g igris-soul
41
- ```
21
+ Think of Igris Soul as your own AI assistant that runs directly from your terminal.
42
22
 
43
- After installation, start Igris with:
23
+ Instead of opening a website and starting a chat, open your terminal and type:
44
24
 
45
25
  ```bash
46
26
  Arise
47
27
  ```
48
28
 
49
- You can run `Arise` from any directory.
29
+ Igris comes online and waits for your commands.
50
30
 
51
31
  For example:
52
32
 
53
- ```bash
54
- C:\Users\YourName> Arise
33
+ ```text
34
+ Who are you?
55
35
  ```
56
36
 
57
- or:
58
-
59
- ```bash
60
- D:\Projects\MyProject> Arise
37
+ ```text
38
+ Explain linked lists to me.
61
39
  ```
62
40
 
63
- or:
41
+ ```text
42
+ What are the latest AI developments?
43
+ ```
64
44
 
65
- ```bash
66
- E:\Anything> Arise
45
+ ```text
46
+ What is happening in the Indian stock market?
67
47
  ```
68
48
 
69
- Igris does not depend on the directory from which you launch it.
49
+ Google Gemini handles the AI conversation, while Tavily allows Igris to search the web when fresh information is needed.
70
50
 
71
51
  ---
72
52
 
73
- # First-Time Setup
53
+ ## 🧠 What Can Igris Do?
74
54
 
75
- On the first launch, Igris automatically creates its configuration directory in your home directory:
55
+ ### 💬 AI Conversations
76
56
 
77
- ```text
78
- ~/.igris/
79
- ```
57
+ Have natural conversations with your AI assistant.
80
58
 
81
- It will automatically create:
59
+ You can ask questions, learn concepts, brainstorm ideas, get explanations, or simply talk to Igris.
82
60
 
83
- ```text
84
- ~/.igris/
85
- ├── .env
86
- └── user.json
87
- ```
61
+ ### 🌐 Fresh Web Information
88
62
 
89
- You do **not** need to manually create these files.
63
+ Igris can search the web when you need information that may have changed recently.
90
64
 
91
- Igris will ask for the required API keys if they are not already configured:
65
+ For example:
92
66
 
93
67
  ```text
94
- Enter your Gemini API key:
95
- Enter your Tavily API key:
68
+ What are the latest AI news in India?
96
69
  ```
97
70
 
98
- The keys are then stored locally in:
99
-
100
71
  ```text
101
- ~/.igris/.env
72
+ What are the latest stock market trends?
102
73
  ```
103
74
 
104
- On Windows, this is typically:
75
+ ### 👨‍💻 Programming Companion
105
76
 
106
- ```text
107
- C:\Users\YourName\.igris\.env
108
- ```
77
+ Igris can help with:
109
78
 
110
- Your name is stored separately in:
79
+ * Programming concepts
80
+ * Data structures
81
+ * Algorithms
82
+ * Debugging
83
+ * Code explanations
84
+ * Software development
85
+ * Machine learning concepts
86
+ * Technical questions
111
87
 
112
- ```text
113
- C:\Users\YourName\.igris\user.json
114
- ```
88
+ ### ⚔️ Solo Leveling Inspired Personality
115
89
 
116
- On future launches, Igris automatically loads the saved configuration.
90
+ Igris isn't just another terminal chatbot.
91
+
92
+ Its personality is inspired by the loyal knight **Igris** from Solo Leveling.
93
+
94
+ Expect your AI assistant to have a little more character than the average chatbot.
117
95
 
118
96
  ---
119
97
 
120
- # Configuration
98
+ # 🚀 Getting Started
121
99
 
122
- The automatically created `.env` file contains:
100
+ Don't worry if you're not a programmer.
123
101
 
124
- ```env
125
- GENAI_API_KEY=your_google_gemini_api_key
126
- TAVILY_API_KEY=your_tavily_api_key
127
- ```
102
+ If you can copy and paste commands into a terminal, you can set up Igris.
128
103
 
129
- ### Environment Variables
104
+ ## Step 1 — Install Node.js
130
105
 
131
- | Variable | Purpose |
132
- | ---------------- | ------------------------------- |
133
- | `GENAI_API_KEY` | Google Gemini API key |
134
- | `TAVILY_API_KEY` | Tavily API key for web searches |
106
+ Igris requires **Node.js 20 or newer**.
135
107
 
136
- You can manually edit:
108
+ If you already have Node.js installed, check your version:
137
109
 
138
- ```text
139
- ~/.igris/.env
110
+ ```bash
111
+ node --version
140
112
  ```
141
113
 
142
- if you need to change your API keys.
114
+ If the version is `20` or higher, you're ready.
143
115
 
144
- ### Security
116
+ If you don't have Node.js, install it from the official Node.js website:
145
117
 
146
- Never commit or share your `.env` file.
118
+ **https://nodejs.org/**
147
119
 
148
- Never put real API keys inside the source code.
120
+ After installing Node.js, reopen your terminal.
149
121
 
150
- The `.env` file contains sensitive credentials and should remain on your local machine.
122
+ ---
151
123
 
152
- The project includes `.env.example` as a safe template:
124
+ ## Step 2 Install Igris Soul
153
125
 
154
- ```env
155
- GENAI_API_KEY=
156
- TAVILY_API_KEY=
126
+ Open your terminal and run:
127
+
128
+ ```bash
129
+ npm install -g igris-soul
157
130
  ```
158
131
 
132
+ The `-g` means that Igris is installed globally.
133
+
134
+ This allows you to use the `Arise` command from anywhere on your computer.
135
+
159
136
  ---
160
137
 
161
- # Running Igris
138
+ ## Step 3 — Awaken Igris
162
139
 
163
- After installation:
140
+ After installation, run:
164
141
 
165
142
  ```bash
166
143
  Arise
167
144
  ```
168
145
 
169
- You will see:
146
+ You should see something similar to:
170
147
 
171
148
  ```text
172
149
  +----------------------+
@@ -178,231 +155,364 @@ Hi, My Lord, I am Igris, your loyal servant.
178
155
  How may I assist you today?
179
156
  ```
180
157
 
181
- You can then enter your prompts directly in the terminal.
158
+ Igris is now online.
182
159
 
183
- Example:
160
+ ---
184
161
 
185
- ```text
186
- You: Explain binary search in Java
162
+ # 🔑 First-Time Setup
187
163
 
188
- Igris:
189
- ...
190
- ```
164
+ The first time you run Igris, it will ask for two API keys.
191
165
 
192
- To exit the assistant:
166
+ Don't worry — this is a normal part of the setup.
167
+
168
+ You will be asked for:
193
169
 
194
170
  ```text
195
- exit
171
+ Enter your Gemini API key:
196
172
  ```
197
173
 
198
- or:
174
+ and:
199
175
 
200
176
  ```text
201
- quit
177
+ Enter your Tavily API key:
202
178
  ```
203
179
 
180
+ You only need to provide these during setup.
181
+
182
+ Igris automatically creates its own configuration folder and stores your keys locally.
183
+
184
+ You **do not need to manually create a `.env` file**.
185
+
204
186
  ---
205
187
 
206
- # Features
207
-
208
- * Interactive terminal-based AI assistant
209
- * Google Gemini-powered responses
210
- * Streaming AI responses
211
- * Tavily web search for current information
212
- * Conversation history during the current session
213
- * Personalized responses using your saved name
214
- * First-launch name setup
215
- * Persistent configuration
216
- * Automatic `.igris` directory creation
217
- * Automatic `.env` creation
218
- * Global CLI access
219
- * Runs from any directory
220
- * `Arise` command for launching the assistant
188
+ # 🗝️ Getting Your API Keys
189
+
190
+ ## Google Gemini API Key
191
+
192
+ Igris uses Google's Gemini models to power its AI.
193
+
194
+ You need a Gemini API key.
195
+
196
+ Create one through Google's Gemini API / AI Studio platform:
197
+
198
+ **https://aistudio.google.com/**
199
+
200
+ When Igris asks for the key, simply paste it into the terminal.
221
201
 
222
202
  ---
223
203
 
224
- # Local Development
204
+ ## 🌐 Tavily API Key
225
205
 
226
- If you want to run Igris Soul directly from the source code instead of installing it globally:
206
+ Tavily provides Igris with web-search capabilities.
227
207
 
228
- Clone or download the repository and enter the project directory.
208
+ Create a Tavily API key through:
229
209
 
230
- Install dependencies:
210
+ **https://tavily.com/**
231
211
 
232
- ```bash
233
- npm install
212
+ When Igris asks for the key, paste it into the terminal.
213
+
214
+ ---
215
+
216
+ # 📁 Where Does Igris Store My Configuration?
217
+
218
+ Igris automatically creates:
219
+
220
+ ```text
221
+ ~/.igris/
234
222
  ```
235
223
 
236
- Then start Igris:
224
+ Inside it, you'll find:
237
225
 
238
- ```bash
239
- npm start
226
+ ```text
227
+ .igris/
228
+ ├── .env
229
+ └── user.json
240
230
  ```
241
231
 
242
- You can also run:
232
+ ### `.env`
243
233
 
244
- ```bash
245
- node index.js
234
+ Stores your API keys locally.
235
+
236
+ For example:
237
+
238
+ ```text
239
+ GENAI_API_KEY=your_gemini_key
240
+ TAVILY_API_KEY=your_tavily_key
246
241
  ```
247
242
 
248
- The same `~/.igris/.env` configuration is used.
243
+ ### `user.json`
244
+
245
+ Stores your name so Igris can remember how to address you.
249
246
 
250
247
  ---
251
248
 
252
- # Test the Package Locally
249
+ # 🔐 API Key Safety
253
250
 
254
- Before publishing a new version to npm, you can test the CLI directly from the package directory.
251
+ Your API keys are stored in your local Igris configuration folder.
255
252
 
256
- Install the local package globally:
253
+ You don't need to put your API keys inside the project source code.
257
254
 
258
- ```bash
259
- npm install -g .
255
+ **Never share your API keys publicly.**
256
+
257
+ Do not post them on:
258
+
259
+ * GitHub
260
+ * Social media
261
+ * Screenshots
262
+ * Public forums
263
+ * Public code repositories
264
+
265
+ ---
266
+
267
+ # 💻 Using Igris
268
+
269
+ Once Igris is running, simply type your question.
270
+
271
+ For example:
272
+
273
+ ```text
274
+ You: Explain recursion in simple terms.
260
275
  ```
261
276
 
262
- Then run:
277
+ Igris will respond directly in your terminal.
263
278
 
264
- ```bash
265
- Arise
279
+ You can continue asking questions for as long as you want.
280
+
281
+ To close Igris, type:
282
+
283
+ ```text
284
+ exit
266
285
  ```
267
286
 
268
- This allows you to test the global CLI behavior using your local source code.
287
+ or:
288
+
289
+ ```text
290
+ quit
291
+ ```
269
292
 
270
293
  ---
271
294
 
272
- # Updating Igris Soul
295
+ # Quick Start
273
296
 
274
- When a new version is published, update your global installation with:
297
+ If Node.js is already installed:
275
298
 
276
299
  ```bash
277
- npm install -g igris-soul@latest
300
+ npm install -g igris-soul
278
301
  ```
279
302
 
280
- Your personal configuration remains outside the npm package:
303
+ Then:
281
304
 
282
- ```text
283
- ~/.igris/
284
- ├── .env
285
- └── user.json
305
+ ```bash
306
+ Arise
286
307
  ```
287
308
 
288
- Therefore, updating the package does not require you to enter your API keys again.
309
+ That's it.
289
310
 
290
311
  ---
291
312
 
292
- # Uninstalling
313
+ # 🛠️ Available Commands
293
314
 
294
- To remove the globally installed package:
315
+ You can launch Igris using:
295
316
 
296
317
  ```bash
297
- npm uninstall -g igris-soul
318
+ Arise
298
319
  ```
299
320
 
300
- Your personal Igris configuration remains in:
321
+ You can also use:
322
+
323
+ ```bash
324
+ arise
325
+ ```
326
+
327
+ ```bash
328
+ igris
329
+ ```
330
+
331
+ ```bash
332
+ igris-soul
333
+ ```
334
+
335
+ All of these launch the same Igris assistant.
336
+
337
+ ---
338
+
339
+ # 🧩 How Igris Works
340
+
341
+ At a high level, Igris combines several technologies:
301
342
 
302
343
  ```text
303
- ~/.igris/
344
+ YOU
345
+
346
+
347
+ ┌───────┐
348
+ │ IGRIS │
349
+ └───┬───┘
350
+
351
+ ┌────────┴────────┐
352
+ ▼ ▼
353
+ Google Gemini Tavily Search
354
+ AI reasoning Fresh web data
355
+ │ │
356
+ └────────┬────────┘
357
+
358
+ IGRIS RESPONSE
304
359
  ```
305
360
 
306
- If you want to completely remove your local Igris configuration as well, delete the `.igris` directory manually.
361
+ ### Google Gemini
362
+
363
+ Provides the AI intelligence behind Igris.
364
+
365
+ ### Tavily
366
+
367
+ Allows Igris to retrieve fresh information from the web when needed.
368
+
369
+ ### Terminal CLI
370
+
371
+ Makes the entire experience available directly from your command line.
307
372
 
308
373
  ---
309
374
 
310
- # Publishing to npm
375
+ # 🧑‍💻 For Developers
311
376
 
312
- If you are the package maintainer and want to publish a new version:
377
+ Igris Soul is built using:
313
378
 
314
- First, log in to npm:
379
+ * Node.js
380
+ * Google Gemini
381
+ * LangChain
382
+ * Tavily
383
+ * Zod
384
+ * dotenv
385
+
386
+ Install it with:
315
387
 
316
388
  ```bash
317
- npm login
389
+ npm install -g igris-soul
318
390
  ```
319
391
 
320
- Verify your account:
392
+ Run it with:
321
393
 
322
394
  ```bash
323
- npm whoami
395
+ Arise
324
396
  ```
325
397
 
326
- Run the tests:
398
+ Igris Soul is primarily designed as a **global terminal AI assistant**, rather than a library that you import into another application.
327
399
 
328
- ```bash
329
- npm test
400
+ ---
401
+
402
+ # 📦 npm Package
403
+
404
+ Package name:
405
+
406
+ ```text
407
+ igris-soul
330
408
  ```
331
409
 
332
- Check what will be included in the package:
410
+ Install:
333
411
 
334
412
  ```bash
335
- npm publish --dry-run
413
+ npm install -g igris-soul
336
414
  ```
337
415
 
338
- If everything looks correct, publish:
416
+ Launch:
339
417
 
340
418
  ```bash
341
- npm publish
419
+ Arise
342
420
  ```
343
421
 
344
- ## Updating the Version
422
+ ---
423
+
424
+ # 🐛 Troubleshooting
345
425
 
346
- npm does not allow publishing the same package version twice.
426
+ ## `Arise` is not recognized
347
427
 
348
- For a bug fix:
428
+ Make sure Igris is installed globally:
349
429
 
350
430
  ```bash
351
- npm version patch
431
+ npm install -g igris-soul
352
432
  ```
353
433
 
354
- For a new feature:
434
+ Then restart your terminal and run:
355
435
 
356
436
  ```bash
357
- npm version minor
437
+ Arise
358
438
  ```
359
439
 
360
- For a breaking change:
440
+ You can check whether Igris is installed with:
361
441
 
362
442
  ```bash
363
- npm version major
443
+ npm list -g igris-soul
364
444
  ```
365
445
 
366
- Then publish the new version:
446
+ ---
367
447
 
368
- ```bash
369
- npm publish
370
- ```
448
+ ## Igris asks for my API key again
371
449
 
372
- Example:
450
+ This usually means the required API key isn't currently stored in your local Igris configuration.
373
451
 
374
- ```text
375
- 1.0.0 → 1.0.1
376
- ```
452
+ Simply enter the requested API key again.
453
+
454
+ Igris will save it locally for future sessions.
377
455
 
378
456
  ---
379
457
 
380
- # Package Usage
458
+ ## Igris doesn't provide recent information
381
459
 
382
- Igris Soul is primarily designed as a global terminal assistant.
460
+ Make sure your Tavily API key is configured correctly.
383
461
 
384
- Install:
462
+ Tavily provides Igris's web-search capability.
385
463
 
386
- ```bash
387
- npm install -g igris-soul
388
- ```
464
+ ---
465
+
466
+ # ❤️ Why I Built Igris
389
467
 
390
- Run:
468
+ Igris Soul started as an experiment in building a personal AI assistant that doesn't live inside a browser.
469
+
470
+ The goal was simple:
471
+
472
+ > **Make AI feel like a tool that's always available on your machine.**
473
+
474
+ Open a terminal.
475
+
476
+ Type:
391
477
 
392
478
  ```bash
393
479
  Arise
394
480
  ```
395
481
 
396
- The package is installed globally, while user-specific configuration is stored separately in:
482
+ And your assistant is ready.
397
483
 
398
- ```text
399
- ~/.igris/
400
- ```
484
+ ---
485
+
486
+ # ⚔️ The Philosophy
487
+
488
+ Igris is inspired by one simple idea:
489
+
490
+ > **An assistant should be ready when you need it.**
491
+
492
+ No browser.
401
493
 
402
- This allows Igris to maintain its configuration independently of the directory from which it is launched.
494
+ No complicated interface.
495
+
496
+ Just your terminal, your commands, and your AI companion.
497
+
498
+ ---
499
+
500
+ # 📜 License
501
+
502
+ ISC License
403
503
 
404
504
  ---
405
505
 
406
- # License
506
+ # ⭐ Support the Project
507
+
508
+ If you find Igris Soul useful, consider giving the project a ⭐ on GitHub and sharing it with other developers and AI enthusiasts.
509
+
510
+ Every bit of support helps the project grow.
511
+
512
+ ---
513
+
514
+ # ⚔️ Arise.
515
+
516
+ Your terminal awaits.
407
517
 
408
- ISC
518
+ **Igris is ready, My Lord.**
package/cli.cjs CHANGED
@@ -1,13 +1,9 @@
1
- #!/usr/bin/env node
1
+ #!/usr/bin/env node
2
2
 
3
3
  const { spawn } = require("node:child_process");
4
- const { fileURLToPath } = require("node:url");
5
4
  const path = require("node:path");
6
5
 
7
- const packageDir = path.dirname(
8
- fileURLToPath(require.resolve("./package.json")),
9
- );
10
-
6
+ const packageDir = __dirname;
11
7
  const indexPath = path.join(packageDir, "index.js");
12
8
 
13
9
  const child = spawn(process.execPath, [indexPath, ...process.argv.slice(2)], {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "igris-soul",
3
- "version": "1.1.2",
3
+ "version": "1.1.4",
4
4
  "description": "A terminal AI assistant powered by Gemini and Tavily.",
5
5
  "license": "ISC",
6
6
  "author": "Barshan Majumdar",