Skip to content

Commit

Permalink
initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
subh05sus committed Nov 18, 2024
0 parents commit 1a9533f
Show file tree
Hide file tree
Showing 28 changed files with 12,652 additions and 0 deletions.
181 changes: 181 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,181 @@
# Gyaani

`gyaani` is an **AI-powered terminal npm package** that enhances your command-line experience with smart features. It assists with various tasks—from system insights to generating images—directly from your terminal, making your workflow faster and more efficient.

---

## Key Features

- **Usage**: `$ gyaani [input]`
- **Options**:
- `--help`: Display help documentation
- `--version`: Show the current version
- `--explain`: Provide explanations for concepts
- `--sysinfo`: Display detailed system information
- `--github`: Fetch GitHub repository details
- `--generate`: Generate an image from a prompt

With **AI capabilities**, `gyaani` brings powerful tools to your terminal, making it an essential assistant for developers, system administrators, and curious minds alike.

---

## Installation

To install `gyaani` globally, run:

```bash
$ npm install --global gyaani
```

---

## How to Use

### Basic Usage:

```bash
$ gyaani [input]
```

### Available Options

- **`--help`**
Display help documentation with available commands and usage examples.

- **`--version`**
Show the current version of `gyaani`.

- **`--explain`**
Explain concepts or technical terms in detail.

- **`--sysinfo`**
Display system information such as OS, CPU, and memory usage.

- **`--github`**
Fetch details about a GitHub repository, including contributors and issues.

- **`--generate`**
Generate an **AI-based image** from a given prompt.

---

## Examples

```bash
$ gyaani --help
# Displays help information with available commands

$ gyaani --version
# Shows the current version of gyaani

$ gyaani --explain "What is OAuth?"
# Provides a detailed explanation of OAuth

$ gyaani --sysinfo
# Retrieves system details (CPU, memory, etc.)

$ gyaani --github
# Fetches data from a specified GitHub repository

$ gyaani --generate "an image of an orange muscular cat in a gym weightlifting 200 lbs"
# Generates an image based on the prompt
```

---

## Why Use Gyaani?

`gyaani` goes beyond being just another CLI tool—it’s your **AI-enhanced terminal companion**, designed to streamline tasks, simplify concepts, and provide quick access to insights.

- **Generate images**: Use creative prompts to generate AI-based images.
- **Explain concepts**: Have complex ideas explained in an easy-to-understand way.
- **Manage tasks efficiently**: From fetching system details to GitHub data, Gyaani has got you covered.

With its AI-powered core, `gyaani` continuously learns and improves, adapting to your needs and making your terminal experience more engaging and productive.

---

## Screenshots

1. **Landing Screen**
![Landing Screen](Slide1.PNG)

2. **Command Execution**
![Working Demo](Slide2.PNG)

3. **Explaining a Concept**
![Explaining Demo](Slide3.PNG)

4. **Fetching GitHub Data**
![Getting Github Data](Slide4.PNG)

5. **System Information Output**
![Getting System Data](Slide5.PNG)

---

## Local Setup for Contributors

### Prerequisites

To run `Gyaani` locally, you’ll need:
- [Node.js](https://nodejs.org/) and [npm](https://npmjs.com/) installed
- [Python](https://python.org/) installed to set up the AI server

### Setting up the AI Server

1. **Navigate to the `ai-server` folder** in the repository.

2. **Create a `.env` file** in the `ai-server` folder, and add your OpenAI API key:

```env
OPENAI_API_KEY=sk-proj-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
```

3. **Set up a virtual environment** and install dependencies:

```bash
# Install virtualenv if it's not already installed
python -m venv venv
source venv/bin/activate # On Windows, use `venv\Scripts\activate`
pip install -r requirements.txt
```

4. **Run the AI server**:

```bash
python app.py
```

The server should start at `http://127.0.0.1:5000`.

### Setting up the `gyaani` React App

1. **Navigate to the `gyaani` folder** in the repository.

2. **Update `config.js`** in the `gyaani` folder with the local server URL:

```javascript
export const apiURL = 'http://127.0.0.1:5000';
```

3. **Install dependencies and start the React app**:

```bash
npm install
npm run dev
```

The React app should now be running locally.

---

## Conclusion

`gyaani` offers a **smarter way to interact with your terminal**, integrating AI to simplify tasks and generate creative content. Whether you’re looking for quick insights, system details, or even **AI-generated art**, `gyaani` makes it easy to get things done.

```bash
$ npm install --global gyaani
```

Give `gyaani` a try today and take your terminal game to the next level! 🚀
166 changes: 166 additions & 0 deletions ai-server/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,166 @@
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class

# C extensions
*.so


venv/
__pycache__/

# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST

# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec

# Installer logs
pip-log.txt
pip-delete-this-directory.txt

# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
*.py,cover
.hypothesis/
.pytest_cache/
cover/

# Translations
*.mo
*.pot

# Django stuff:
*.log
local_settings.py
db.sqlite3
db.sqlite3-journal

# Flask stuff:
instance/
.webassets-cache

# Scrapy stuff:
.scrapy

# Sphinx documentation
docs/_build/

# PyBuilder
.pybuilder/
target/

# Jupyter Notebook
.ipynb_checkpoints

# IPython
profile_default/
ipython_config.py

# pyenv
# For a library or package, you might want to ignore these files since the code is
# intended to run in multiple environments; otherwise, check them in:
# .python-version

# pipenv
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
# However, in case of collaboration, if having platform-specific dependencies or dependencies
# having no cross-platform support, pipenv may install dependencies that don't work, or not
# install all needed dependencies.
#Pipfile.lock

# poetry
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
# This is especially recommended for binary packages to ensure reproducibility, and is more
# commonly ignored for libraries.
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
#poetry.lock

# pdm
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
#pdm.lock
# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
# in version control.
# https://pdm.fming.dev/latest/usage/project/#working-with-version-control
.pdm.toml
.pdm-python
.pdm-build/

# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
__pypackages__/

# Celery stuff
celerybeat-schedule
celerybeat.pid

# SageMath parsed files
*.sage.py

# Environments
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/

# Spyder project settings
.spyderproject
.spyproject

# Rope project settings
.ropeproject

# mkdocs documentation
/site

# mypy
.mypy_cache/
.dmypy.json
dmypy.json

# Pyre type checker
.pyre/

# pytype static type analyzer
.pytype/

# Cython debug symbols
cython_debug/

# PyCharm
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
# and can be added to the global gitignore or merged into this file. For a more nuclear
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
#.idea/
Loading

0 comments on commit 1a9533f

Please sign in to comment.