oorb-cli


Nameoorb-cli JSON
Version 1.0.10 PyPI version JSON
download
home_pageNone
SummaryIntelligent CLI assistant for ROS and ROS2 questions
upload_time2025-08-28 12:49:55
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseMIT
keywords ros ros2 chatbot cli robotics ai assistant
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # OORB CLI – Robotics coding Assistant

**OORB** (Open Organic Robotics Benchmark) is an open-source initiative focused on advancing robotics through AI-powered tools and benchmarks. 

**OORB CLI** is a command-line assistant designed to answer questions and assist with tasks related to **ROS2** (Robot Operating System 2). Powered by modern language models and enhanced with vector search and retrieval-augmented generation, it serves as an intelligent tool for roboticists and developers working with ROS2.

---

## Features

* Focused exclusively on **ROS2**
* Interactive and one-shot Q&A modes
* Backend support for **OpenAI**, **Azure OpenAI**, and **Ollama**
* Local inference support with Ollama
* Retrieval-augmented answers with Milvus vector store
* **Configurable ROS distro support** - Specify your target ROS2 distribution
* **Custom retrieval endpoint support** - Use your own vector database or API
* Configurable model, temperature, and backend preferences
* **Tool calling capabilities** with access to:
  - `read_file` - Read and analyze files
  - `write_file` - Create and modify files
  - `search_in_files` - Search across file contents
  - `run_command` - Execute system commands
  - `list_directory` - Browse directory structures
  - `edit_file_lines` - Make precise file edits

### Recent Enhancements

* **ROS Distro Selection**: Set your preferred ROS2 distribution (humble, jazzy, rolling, etc.)
* **Custom Retrieval Endpoints**: Connect to your own vector database or knowledge API
* **Enhanced Configuration**: Multiple ways to configure settings via environment variables or CLI options
* **Endpoint Testing**: Built-in tools to test and validate retrieval API connectivity

### Note: 
You can find a quick demo of the CLI on the following link : [link](https://youtu.be/6o50YBeWZ04)


---


## Installation

### Option 1: Install from PyPI (Recommended)

```bash
pip install oorb-cli
```

The CLI is available on [PyPI](https://pypi.org/project/oorb-cli/) and can be installed directly via pip.

### Option 2: Development Installation

#### 1. Clone the repository

```bash
git clone https://github.com/OORB-Open-Organic-Robotics/oorb-cli
cd oorb-cli
```

#### 2. Create virtual environment and install dependencies using `uv`

```bash
uv venv
source .venv/bin/activate
uv pip install -e .
```

This installs the CLI in *editable mode*, allowing you to make changes to the source code without reinstalling.

> **Note:** `uv pip install -e .` is functionally equivalent to `pip install -e .`, but uses `uv` for faster dependency resolution and isolated builds.

---

## Configuration

Set the appropriate API key depending on the backend you intend to use.

### OpenAI

```bash
export OPENAI_API_KEY="your-key"
```

### Azure OpenAI

```bash
export AZURE_OPENAI_API_KEY="your-key"
export AZURE_OPENAI_ENDPOINT="your-endpoint"
```

### ROS Distro Configuration

Specify your target ROS2 distribution for enhanced retrieval and distro-specific answers:

```bash
# Set default ROS distro (overrides auto-detection)
export OORB_ROS_DISTRO=humble

# Or use the standard ROS environment variable
export ROS_DISTRO=humble
```

**Supported ROS2 Distributions:**
- `humble` (LTS) - Ubuntu 20.04, 22.04
- `iron` - Ubuntu 22.04
- `jazzy` (LTS) - Ubuntu 24.04
- `rolling` - Latest development version
- Legacy ROS1: `noetic`, `melodic`

### Custom Retrieval Endpoint

Configure your own vector database or retrieval API:

```bash
# Use custom retrieval endpoint
export OORB_RETRIEVAL_ENDPOINT="http://your-server:8000"

# Or use the standard configuration
export RETRIEVAL_API_BASE_URL="http://your-server:8000"
```
---

## Usage

Once installed, the CLI becomes available via the `oorb` command (or `python oorb_cli.py` if unlinked).

### Main Commands

#### `chat` - Interactive ROS2 Assistant

Start an interactive chat session or ask a single question with full customization options.

**Basic Usage:**
```bash
# Interactive mode
oorb chat

# Single question mode
oorb chat -p "How do I create a custom message type in ROS2?"

# With specific ROS distro
oorb chat --distro humble -p "create a publisher node"
oorb chat -d jazzy

# With custom retrieval endpoint
oorb chat --retrieval-endpoint http://localhost:9000 -p "setup navigation stack"
```

**Available Options:**
- `-b, --backend` - Choose LLM backend: `azure`, `openai`, or `ollama`
- `-m, --model` - Specify model name (e.g., `gpt-4o-mini`, `gpt-3.5-turbo`)
- `-t, --temperature` - Set response creativity (0.0-1.0, default: 0.3)
- `-d, --distro` - ROS distro to use (e.g., humble, jazzy, rolling)
- `-r, --retrieval-endpoint` - Custom retrieval API endpoint URL
- `-p, --prompt` - Single prompt for non-interactive mode
- `--use-tools/--no-tools` - Enable/disable tool calling (default: auto-detect)

**Examples:**
```bash
# Use specific backend and model with ROS distro
oorb chat -b openai -m gpt-4o-mini -d humble -t 0.7

# Quick question with custom settings
oorb chat -b azure -m gpt-3.5-turbo -d jazzy -p "Create a ROS2 launch file for navigation"

# Use custom retrieval endpoint
oorb chat -r http://my-vector-db:8000 -d rolling -p "Setup SLAM toolbox"

# Disable tools for faster responses
oorb chat --no-tools -d humble -p "What is a ROS2 node?"
```

#### `list-distros` - View Supported ROS Distributions

Display all supported ROS distributions with detailed information.

**Basic Usage:**
```bash
oorb list-distros
```

**What it shows:**
- All supported ROS/ROS2 distributions
- LTS (Long Term Support) status
- Compatible Ubuntu versions
- Current vs. available distros
- Configuration instructions

#### `test-retrieval` - Test Retrieval Endpoint

Test connectivity and features of retrieval API endpoints.

**Basic Usage:**
```bash
# Test current configured endpoint
oorb test-retrieval

# Test specific endpoint
oorb test-retrieval --endpoint http://localhost:9000
```

**Available Options:**
- `-e, --endpoint` - Specific endpoint URL to test

**What it shows:**
- Endpoint accessibility status
- Available API endpoints (e.g., /retrieve, /health, /docs)
- Configuration suggestions
- Connection diagnostics

#### `list-models` - View Available Models

Display all available models for different backends.

**Basic Usage:**
```bash
oorb list-models
```

**Available Options:**
- `-b, --backend` - Filter by specific backend: `azure`, `openai`, or `ollama`

**Examples:**
```bash
# List all models
oorb list-models

# List only OpenAI models
oorb list-models -b openai

# List only local Ollama models
oorb list-models -b ollama
```

#### `status` - System Health Check

Check system configuration, API keys, and service availability.

**Basic Usage:**
```bash
oorb status
```

**What it shows:**
- API key configuration status
- Ollama service status and available models
- Retrieval API connectivity and endpoint information
- Current ROS distro detection
- Available backends
- Configuration warnings and errors
- Quick setup recommendations

---

## Advanced Configuration

### Priority Order for Settings

OORB CLI uses the following priority order for configuration:

**ROS Distro Selection:**
1. `--distro` command line parameter
2. `OORB_ROS_DISTRO` environment variable
3. `ROS_DISTRO` environment variable (standard ROS)
4. Auto-detection from installed ROS distributions

**Retrieval Endpoint Selection:**
1. `--retrieval-endpoint` command line parameter
2. `OORB_RETRIEVAL_ENDPOINT` environment variable
3. `RETRIEVAL_API_BASE_URL` environment variable
4. Default: `http://localhost:8000`

### Configuration Examples

```bash
# Set persistent defaults via environment
export OORB_ROS_DISTRO=humble
export OORB_RETRIEVAL_ENDPOINT=http://my-vector-db:8000
export OPENAI_API_KEY=your-api-key

# Override defaults for specific commands
oorb chat -d jazzy -r http://localhost:9000 -p "your question"

# Test your configuration
oorb status
oorb test-retrieval
oorb list-distros
```

---

## Contributing

We welcome contributions to the OORB CLI project! Please see our [CONTRIBUTING.md](CONTRIBUTING.md) file for detailed guidelines on how to contribute to the project.

---

## License

This project is open-source and available under the appropriate license. Please check the LICENSE file for details.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "oorb-cli",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": "Fayez Zouari <fayez.zouari@insat.ucar.tn>, Ousswa Chouchane <ousswachouchane@aucegypt.edu>",
    "keywords": "ros, ros2, chatbot, cli, robotics, ai, assistant",
    "author": null,
    "author_email": "Fayez Zouari <fayez.zouari@insat.ucar.tn>, Ousswa Chouchane <ousswachouchane@aucegypt.edu>",
    "download_url": "https://files.pythonhosted.org/packages/a5/24/d6f1ce501e7f1cc7612ffaa2b515292b048a033d857d3264d63148409a4d/oorb_cli-1.0.10.tar.gz",
    "platform": null,
    "description": "# OORB CLI \u2013 Robotics coding Assistant\n\n**OORB** (Open Organic Robotics Benchmark) is an open-source initiative focused on advancing robotics through AI-powered tools and benchmarks. \n\n**OORB CLI** is a command-line assistant designed to answer questions and assist with tasks related to **ROS2** (Robot Operating System 2). Powered by modern language models and enhanced with vector search and retrieval-augmented generation, it serves as an intelligent tool for roboticists and developers working with ROS2.\n\n---\n\n## Features\n\n* Focused exclusively on **ROS2**\n* Interactive and one-shot Q&A modes\n* Backend support for **OpenAI**, **Azure OpenAI**, and **Ollama**\n* Local inference support with Ollama\n* Retrieval-augmented answers with Milvus vector store\n* **Configurable ROS distro support** - Specify your target ROS2 distribution\n* **Custom retrieval endpoint support** - Use your own vector database or API\n* Configurable model, temperature, and backend preferences\n* **Tool calling capabilities** with access to:\n  - `read_file` - Read and analyze files\n  - `write_file` - Create and modify files\n  - `search_in_files` - Search across file contents\n  - `run_command` - Execute system commands\n  - `list_directory` - Browse directory structures\n  - `edit_file_lines` - Make precise file edits\n\n### Recent Enhancements\n\n* **ROS Distro Selection**: Set your preferred ROS2 distribution (humble, jazzy, rolling, etc.)\n* **Custom Retrieval Endpoints**: Connect to your own vector database or knowledge API\n* **Enhanced Configuration**: Multiple ways to configure settings via environment variables or CLI options\n* **Endpoint Testing**: Built-in tools to test and validate retrieval API connectivity\n\n### Note: \nYou can find a quick demo of the CLI on the following link : [link](https://youtu.be/6o50YBeWZ04)\n\n\n---\n\n\n## Installation\n\n### Option 1: Install from PyPI (Recommended)\n\n```bash\npip install oorb-cli\n```\n\nThe CLI is available on [PyPI](https://pypi.org/project/oorb-cli/) and can be installed directly via pip.\n\n### Option 2: Development Installation\n\n#### 1. Clone the repository\n\n```bash\ngit clone https://github.com/OORB-Open-Organic-Robotics/oorb-cli\ncd oorb-cli\n```\n\n#### 2. Create virtual environment and install dependencies using `uv`\n\n```bash\nuv venv\nsource .venv/bin/activate\nuv pip install -e .\n```\n\nThis installs the CLI in *editable mode*, allowing you to make changes to the source code without reinstalling.\n\n> **Note:** `uv pip install -e .` is functionally equivalent to `pip install -e .`, but uses `uv` for faster dependency resolution and isolated builds.\n\n---\n\n## Configuration\n\nSet the appropriate API key depending on the backend you intend to use.\n\n### OpenAI\n\n```bash\nexport OPENAI_API_KEY=\"your-key\"\n```\n\n### Azure OpenAI\n\n```bash\nexport AZURE_OPENAI_API_KEY=\"your-key\"\nexport AZURE_OPENAI_ENDPOINT=\"your-endpoint\"\n```\n\n### ROS Distro Configuration\n\nSpecify your target ROS2 distribution for enhanced retrieval and distro-specific answers:\n\n```bash\n# Set default ROS distro (overrides auto-detection)\nexport OORB_ROS_DISTRO=humble\n\n# Or use the standard ROS environment variable\nexport ROS_DISTRO=humble\n```\n\n**Supported ROS2 Distributions:**\n- `humble` (LTS) - Ubuntu 20.04, 22.04\n- `iron` - Ubuntu 22.04\n- `jazzy` (LTS) - Ubuntu 24.04\n- `rolling` - Latest development version\n- Legacy ROS1: `noetic`, `melodic`\n\n### Custom Retrieval Endpoint\n\nConfigure your own vector database or retrieval API:\n\n```bash\n# Use custom retrieval endpoint\nexport OORB_RETRIEVAL_ENDPOINT=\"http://your-server:8000\"\n\n# Or use the standard configuration\nexport RETRIEVAL_API_BASE_URL=\"http://your-server:8000\"\n```\n---\n\n## Usage\n\nOnce installed, the CLI becomes available via the `oorb` command (or `python oorb_cli.py` if unlinked).\n\n### Main Commands\n\n#### `chat` - Interactive ROS2 Assistant\n\nStart an interactive chat session or ask a single question with full customization options.\n\n**Basic Usage:**\n```bash\n# Interactive mode\noorb chat\n\n# Single question mode\noorb chat -p \"How do I create a custom message type in ROS2?\"\n\n# With specific ROS distro\noorb chat --distro humble -p \"create a publisher node\"\noorb chat -d jazzy\n\n# With custom retrieval endpoint\noorb chat --retrieval-endpoint http://localhost:9000 -p \"setup navigation stack\"\n```\n\n**Available Options:**\n- `-b, --backend` - Choose LLM backend: `azure`, `openai`, or `ollama`\n- `-m, --model` - Specify model name (e.g., `gpt-4o-mini`, `gpt-3.5-turbo`)\n- `-t, --temperature` - Set response creativity (0.0-1.0, default: 0.3)\n- `-d, --distro` - ROS distro to use (e.g., humble, jazzy, rolling)\n- `-r, --retrieval-endpoint` - Custom retrieval API endpoint URL\n- `-p, --prompt` - Single prompt for non-interactive mode\n- `--use-tools/--no-tools` - Enable/disable tool calling (default: auto-detect)\n\n**Examples:**\n```bash\n# Use specific backend and model with ROS distro\noorb chat -b openai -m gpt-4o-mini -d humble -t 0.7\n\n# Quick question with custom settings\noorb chat -b azure -m gpt-3.5-turbo -d jazzy -p \"Create a ROS2 launch file for navigation\"\n\n# Use custom retrieval endpoint\noorb chat -r http://my-vector-db:8000 -d rolling -p \"Setup SLAM toolbox\"\n\n# Disable tools for faster responses\noorb chat --no-tools -d humble -p \"What is a ROS2 node?\"\n```\n\n#### `list-distros` - View Supported ROS Distributions\n\nDisplay all supported ROS distributions with detailed information.\n\n**Basic Usage:**\n```bash\noorb list-distros\n```\n\n**What it shows:**\n- All supported ROS/ROS2 distributions\n- LTS (Long Term Support) status\n- Compatible Ubuntu versions\n- Current vs. available distros\n- Configuration instructions\n\n#### `test-retrieval` - Test Retrieval Endpoint\n\nTest connectivity and features of retrieval API endpoints.\n\n**Basic Usage:**\n```bash\n# Test current configured endpoint\noorb test-retrieval\n\n# Test specific endpoint\noorb test-retrieval --endpoint http://localhost:9000\n```\n\n**Available Options:**\n- `-e, --endpoint` - Specific endpoint URL to test\n\n**What it shows:**\n- Endpoint accessibility status\n- Available API endpoints (e.g., /retrieve, /health, /docs)\n- Configuration suggestions\n- Connection diagnostics\n\n#### `list-models` - View Available Models\n\nDisplay all available models for different backends.\n\n**Basic Usage:**\n```bash\noorb list-models\n```\n\n**Available Options:**\n- `-b, --backend` - Filter by specific backend: `azure`, `openai`, or `ollama`\n\n**Examples:**\n```bash\n# List all models\noorb list-models\n\n# List only OpenAI models\noorb list-models -b openai\n\n# List only local Ollama models\noorb list-models -b ollama\n```\n\n#### `status` - System Health Check\n\nCheck system configuration, API keys, and service availability.\n\n**Basic Usage:**\n```bash\noorb status\n```\n\n**What it shows:**\n- API key configuration status\n- Ollama service status and available models\n- Retrieval API connectivity and endpoint information\n- Current ROS distro detection\n- Available backends\n- Configuration warnings and errors\n- Quick setup recommendations\n\n---\n\n## Advanced Configuration\n\n### Priority Order for Settings\n\nOORB CLI uses the following priority order for configuration:\n\n**ROS Distro Selection:**\n1. `--distro` command line parameter\n2. `OORB_ROS_DISTRO` environment variable\n3. `ROS_DISTRO` environment variable (standard ROS)\n4. Auto-detection from installed ROS distributions\n\n**Retrieval Endpoint Selection:**\n1. `--retrieval-endpoint` command line parameter\n2. `OORB_RETRIEVAL_ENDPOINT` environment variable\n3. `RETRIEVAL_API_BASE_URL` environment variable\n4. Default: `http://localhost:8000`\n\n### Configuration Examples\n\n```bash\n# Set persistent defaults via environment\nexport OORB_ROS_DISTRO=humble\nexport OORB_RETRIEVAL_ENDPOINT=http://my-vector-db:8000\nexport OPENAI_API_KEY=your-api-key\n\n# Override defaults for specific commands\noorb chat -d jazzy -r http://localhost:9000 -p \"your question\"\n\n# Test your configuration\noorb status\noorb test-retrieval\noorb list-distros\n```\n\n---\n\n## Contributing\n\nWe welcome contributions to the OORB CLI project! Please see our [CONTRIBUTING.md](CONTRIBUTING.md) file for detailed guidelines on how to contribute to the project.\n\n---\n\n## License\n\nThis project is open-source and available under the appropriate license. Please check the LICENSE file for details.\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Intelligent CLI assistant for ROS and ROS2 questions",
    "version": "1.0.10",
    "project_urls": null,
    "split_keywords": [
        "ros",
        " ros2",
        " chatbot",
        " cli",
        " robotics",
        " ai",
        " assistant"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "ca66ac5f934df2fd824b17c5a894135efd9448050e876d2e071b00329a313ab2",
                "md5": "daa8576d4251ab350531ed1806417103",
                "sha256": "76ff83114021b3310acae2e2442855281ee99bd7a1bfdc380140285847e383e4"
            },
            "downloads": -1,
            "filename": "oorb_cli-1.0.10-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "daa8576d4251ab350531ed1806417103",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 38372,
            "upload_time": "2025-08-28T12:49:54",
            "upload_time_iso_8601": "2025-08-28T12:49:54.731732Z",
            "url": "https://files.pythonhosted.org/packages/ca/66/ac5f934df2fd824b17c5a894135efd9448050e876d2e071b00329a313ab2/oorb_cli-1.0.10-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "a524d6f1ce501e7f1cc7612ffaa2b515292b048a033d857d3264d63148409a4d",
                "md5": "6f35d075909348633d5dc6436127cb6a",
                "sha256": "b5311bc2bb6ddff560c0e17dc824a4136260eadbc11d1754c45d1f8e7195486e"
            },
            "downloads": -1,
            "filename": "oorb_cli-1.0.10.tar.gz",
            "has_sig": false,
            "md5_digest": "6f35d075909348633d5dc6436127cb6a",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 43104,
            "upload_time": "2025-08-28T12:49:55",
            "upload_time_iso_8601": "2025-08-28T12:49:55.582886Z",
            "url": "https://files.pythonhosted.org/packages/a5/24/d6f1ce501e7f1cc7612ffaa2b515292b048a033d857d3264d63148409a4d/oorb_cli-1.0.10.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-28 12:49:55",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "oorb-cli"
}
        
Elapsed time: 2.23165s