# R Vibe Tool

## Overview

R Vibe Tool is a powerful Command-Line Interface (CLI) utility designed for Linux environments, offering advanced AI-assisted development capabilities with elegant markdown output.

## Features

- **Flexible AI Integration**: Support for multiple AI models including:
  - OpenAI GPT-3.5-turbo (default, if you did not set API key)
  - Ollama
  - Anthropic Claude
  - Grok

- **Customizable Behavior**: Configure tool behavior through `~/.rcontext.txt`
- **Agent Support**: Intelligent context-aware assistance
- **Markdown Output**: Clean, readable documentation generation

## Prerequisites

- Linux operating system
- Configured AI model access

## Configuration

### Environment Variables

TIP: create bash files containg these variables and make them easily accessable. For example by symlinking them to `~/.bash_aliases` or `~/.bash_profile`. Or even easier, make them executable and put them in /usr/local/bin.

#### Ollama Configuration
```bash
export R_MODEL="qwen2.5:3b"
export R_BASE_URL="https://ollama.molodetz.nl"
./r
```

#### Claude Configuration
```bash
export R_MODEL="claude-3-5-haiku-20241022"
export R_BASE_URL="https://api.anthropic.com"
export R_KEY="sk-ant-[your-key]"
./r
```

#### OpenAI Configuration
```bash
export R_MODEL="gpt-4o-mini"
export R_BASE_URL="https://api.openai.com"
export R_KEY="sk-[your-key]"
./r 
```

#### Grok Configuration
```bash
export R_MODEL="grok-2"
export R_BASE_URL="https://api.x.ai"
export R_USE_STRICT=false
export R_KEY="xai-gfh"
./r
```

## Best Practices

1. Use `~/.rcontext.txt` to define specific behavioral instructions
2. Include file saving steps in your context instructions
3. Use the `index` tool to initialize only source files, excluding environment and node_modules

## Example Project

For a comprehensive example of R Vibe Tool in action, visit: 
[Streamii Project](https://molodetz.nl/projects/streamii/README.md.html)

## Limitations

- OpenAI key usage is temporary and limited
- Performance may vary depending on the selected AI model

## Support

For issues or contributions, please refer to the project repository.


