env-ai
Version:
AI Assistant for Your Local Environment
278 lines (205 loc) • 9.54 kB
Markdown
# env-ai - AI Assistant for Your Local Environment
[](https://pigeonposse.com)
[](https://pigeonposse.com?popup=about)
[](https://pigeonposse.com/?popup=donate)
[](https://github.com/pigeonposse)
[](https://twitter.com/pigeonposse_)
[](https://www.instagram.com/pigeon.posse/)
[](https://medium.com/@pigeonposse)
[](/LICENSE)
[](https://www.npmjs.com/package/env-ai)
**env-ai** is an intelligent assistant tool for your terminal, designed to help you with tasks like documentation, performance optimization, refactoring, and more, using custom commands.
> [!IMPORTANT]
> **env-ai** needs the **[Ollama](https://ollama.com)** technology to work. Make sure you have it installed before using this CLI.
## 📑 Index
- [🌟 Features](#-features)
- [📦 Installation](#-installation)
- [📖 Using the CLI](#-using-the-cli)
- [Main Commands](#main-commands)
- [Options](#options)
- [📚 Using the Library](#-using-the-library)
- [Import Example](#import-example)
- [Defined Configuration](#defined-configuration)
- [🔍 Examples](#-examples)
- [👨💻 Development](#-development)
- [☕ Donate](#-donate)
- [📜 License](#-license)
- [🐦 About Us](#-about-us)
## 🌟 Features
- 💬 **Real-Time Chat**: Interact with the AI assistant directly from your terminal.
- 🗃️ **Robust context**: Accepts URL and local file inputs so the wizard has more precise context of what to do.
- 🎨 **Extensive Customization**: Configure themes, inputs and outputs to your liking.
- 📄 **Configuration File Support**: Make your chat systems portable. Compatible with multiple formats, including `.mjs`, `.js`, `.json`, `.yml`, `.yaml`, `.toml`, and `.tml`.
- ✈️ **Portable**: Create a chat system, save it in a configuration file and use it for other projects.
- 🌐 **Multiple Environments**:
- 📦 **JavaScript Library**: Easily integrable into your projects.
- 💻 **Command Line Interface (CLI)**: Works in:
- 🟢 **Node.js**
- 🦕 **Deno**
- 🍞 **Bun**
- 🚀 **Binary**: Available for all operating systems and architectures via [GitHub Releases](https://github.com/pigeonposse/env-ai/releases).
## 📦 Installation
Install the CLI or add it as a dependency to your project:
```bash
## npm
npm install env-ai
## pnpm
pnpm add env-ai
## yarn
yarn add env-ai
# bun
bun add env-ai
# deno
deno add env-ai
```
### global Installation
```bash
## npm
npm install -g env-ai
## pnpm
pnpm add -g env-ai
## yarn
yarn global add env-ai
```
### without Installation
```bash
## npm
npx env-ai
## pnpm
pnpx env-ai
```
## 📖 Using the CLI
The **env-ai** CLI allows you to easily interact with the AI assistant. Here are some useful commands and options:
### Main Commands
```bash
# Start a chat with the AI assistant
env-ai chat
```
### Options
- `-i, --input` - Path patterns or URLs to be processed. *(array)*
- `-m, --model` - Name of the Ollama model to use. *(string)*
- `-p, --prompt` - Fist prompt to generate a response (text, path or url). *(string)*
- `-s, --system` - Custom system text or path. *(string)*
- `-t, --theme` - Topic of conversation (`custom`, `explain`, `docs`, `fix`, `performance`, `refactor`, `tests`). *(string)*
- `-o, --output` - Output path for the generated response. *(string)*
- `--overwrite` - Behavior control if the output file exists (`always`, `ask`, `last`). *(boolean)*
- `--single` - Get only one response. *(boolean)*
- `-c, --config` - Path to config file. Files supported: [.mjs|.js|.json|.yml|.yaml|.toml|.tml]. *(string)*
- `--debug` - Debug mode. *(boolean)*
- `-h, --help` - Show help. *(boolean)*
- `-v, --version` - Show version number. *(boolean)*
## 📚 Using the Library
**env-ai** can also be integrated as a library into your `JavaScript` or `TypeScript` project.
### Import Example
```javascript
import { run } from 'env-ai';
run({
input: ['./src/**', 'https://example.com'],
theme: 'docs',
output: 'README.md',
});
```
### Defined Configuration
Use `defineConfig` to define a reusable configuration:
```javascript
import { defineConfig } from 'env-ai';
export default defineConfig({
input: ['./src/**', 'https://example.com'],
theme: 'docs',
output: 'README.md',
});
```
## 🔍 Examples
You can see more examples [here](./examples).
### CLI
```bash
env-ai chat -i "./src/**" -t "docs" -o "output.md"
```
### Library
```javascript
import { run } from 'env-ai';
run({
input: ['./src/**', 'https://example.com'],
theme: 'docs',
output: 'README.md',
});
```
### CLI With `js` config file
```bash
env-ai chat --config dovenv.config.js
```
```js
import { defineConfig } from 'env-ai';
export default defineConfig({
model: 'llama3.2:latest',
input: ['./src/**', 'https://example.com'],
theme: 'docs',
output: 'README.md',
});
```
### CLI With `json` config file
```bash
env-ai chat --config dovenv.config.json
```
```json
{
"theme": "custom",
"system": "./your-system-content.txt"
}
```
### CLI With `toml` config file
```bash
env-ai chat --config documentation-context.toml
```
```toml
theme = "docs"
input = ["./docs", "./src"]
system = """
You are a helpful assistant explaining how to use the provided code library and provide detailed documentation.
The content for the following code library:
{{content}}
"""
```
### CLI With `yaml` config file
```bash
env-ai chat --config dovenv.config.yaml
```
```yaml
theme: custom
system: ./your-system-content.md
```
### CLI - Input with excluded files
It includes all SRC files that are at the upper level.
```bash
env-ai chat -i 'src/*' '!src/../*' -t 'docs' -o 'output.md'
```
## 👨💻 Development
**env-ai** is an open-source project and its development is open to anyone who wants to participate.
[](./docs/todo/)
[](https://github.com/pigeonposse/env-ai/issues)
[](https://github.com/pigeonposse/env-ai/pulls)
[](https://env-ai.pigeonposse.com/)
## ☕ Donate
Help us to develop more interesting things.
[](https://pigeonposse.com/?popup=donate)
## 📜 License
This software is licensed with **[GPL-3.0](/LICENSE)**.
[](/LICENSE)
## 🐦 About us
*PigeonPosse* is a ✨ **code development collective** ✨ focused on creating practical and interesting tools that help developers and users enjoy a more agile and comfortable experience. Our projects cover various programming sectors and we do not have a thematic limitation in terms of projects.
[](https://github.com/pigeonposse)
### Collaborators
| | Name | Role | GitHub |
| ---------------------------------------------------------------------------------- | ----------- | ------------ | ---------------------------------------------- |
| <img src="https://github.com/angelespejo.png?size=72" alt="Angelo" style="border-radius:100%"/> | Angelo | Idea & Development & UI Design | [@angelespejo](https://github.com/angelespejo) |
| <img src="https://github.com/PigeonPosse.png?size=72" alt="PigeonPosse" style="border-radius:100%"/> | PigeonPosse | Collective | [@PigeonPosse](https://github.com/PigeonPosse) |
<br>
<p align="center">
[](https://pigeonposse.com)
[](https://pigeonposse.com?popup=about)
[](https://pigeonposse.com/?popup=donate)
[](https://github.com/pigeonposse)
[](https://twitter.com/pigeonposse_)
[](https://www.instagram.com/pigeon.posse/)
[](https://medium.com/@pigeonposse)
</p>