Skip to main content

CLI Reference

The @DevilsDev/rag-pipeline-utils CLI provides a powerful command-line interface for managing RAG pipelines, ingesting documents, running queries, and evaluating performance. This comprehensive reference covers all available commands, options, and usage patterns.


📦 Installation & Setup

Global Installation

# Install globally for system-wide access
npm install -g @DevilsDev/rag-pipeline-utils

# Verify installation
rag-pipeline --version
rag-pipeline --help

# Check available commands
rag-pipeline --help

Project-Local Usage

# Run without global installation
npx @DevilsDev/rag-pipeline-utils <command>

# Or install as dev dependency
npm install --save-dev @DevilsDev/rag-pipeline-utils
npx rag-pipeline <command>

Shell Completion

# Enable bash completion
rag-pipeline completion bash >> ~/.bashrc
source ~/.bashrc

# Enable zsh completion
rag-pipeline completion zsh >> ~/.zshrc
source ~/.zshrc

# Enable fish completion
rag-pipeline completion fish > ~/.config/fish/completions/rag-pipeline.fish

🏗️ Project Management Commands

init - Initialize New Project

Create a new RAG project with scaffolding and configuration.

# Basic project initialization
rag-pipeline init my-rag-project

# Initialize in current directory
rag-pipeline init .

# Use specific template
rag-pipeline init my-project --template enterprise
rag-pipeline init my-project --template minimal
rag-pipeline init my-project --template research

# Initialize with specific plugins
rag-pipeline init my-project --plugins openai,pinecone,pdf-loader

# Skip interactive prompts
rag-pipeline init my-project --yes --template enterprise

Options:

  • --template <name>: Use predefined template (enterprise, minimal, research)
  • --plugins <list>: Comma-separated list of plugins to include
  • --yes, -y: Skip interactive prompts
  • --force, -f: Overwrite existing files
  • --git: Initialize git repository
  • --install: Run npm install after initialization

config - Configuration Management

Manage pipeline configuration settings.

# Initialize default configuration
rag-pipeline config init

# View current configuration
rag-pipeline config show
rag-pipeline config show --format json
rag-pipeline config show --format yaml

# Set configuration values
rag-pipeline config set openai.apiKey sk-your-key-here
rag-pipeline config set pinecone.environment us-west1-gcp
rag-pipeline config set pipeline.chunkSize 1500

# Get specific configuration value
rag-pipeline config get openai.model

# Unset configuration value
rag-pipeline config unset openai.temperature

# Validate configuration
rag-pipeline config validate
rag-pipeline config validate --strict

# Export configuration
rag-pipeline config export --output config-backup.json

# Import configuration
rag-pipeline config import config-backup.json

Options:

  • --format <type>: Output format (json, yaml, table)
  • --global, -g: Operate on global configuration
  • --local, -l: Operate on local project configuration
  • --strict: Enable strict validation mode
  • --output, -o <file>: Output file for export

📚 Document Management Commands

ingest - Document Ingestion

Load and index documents into the vector store.

# Ingest single file
rag-pipeline ingest ./document.pdf --loader pdf

# Ingest directory recursively
rag-pipeline ingest ./docs --loader markdown --recursive

# Ingest with glob patterns
rag-pipeline ingest "./docs/**/*.{md,txt,pdf}" --loader auto

# Ingest with custom chunk settings
rag-pipeline ingest ./docs \
--loader markdown \
--chunk-size 1500 \
--chunk-overlap 300 \
--embedder openai

# Batch ingestion with progress
rag-pipeline ingest ./large-docs \
--loader pdf \
--batch-size 10 \
--progress \
--parallel 3

# Ingest with metadata
rag-pipeline ingest ./docs \
--loader markdown \
--metadata '{"source": "documentation", "version": "2.1.8"}'

# Dry run (validate without ingesting)
rag-pipeline ingest ./docs --loader markdown --dry-run

Options:

  • --loader <name>: Document loader to use (pdf, markdown, html, docx, auto)
  • --embedder <name>: Embedding model to use (openai, cohere, sentence-transformers)
  • --chunk-size <number>: Size of text chunks (default: 1000)
  • --chunk-overlap <number>: Overlap between chunks (default: 200)
  • --batch-size <number>: Number of documents to process in parallel
  • --parallel <number>: Number of parallel processing threads
  • --recursive, -r: Process directories recursively
  • --progress, -p: Show progress bar
  • --metadata <json>: Additional metadata to attach
  • --dry-run: Validate without actually ingesting
  • --force, -f: Overwrite existing documents

status - Pipeline Status

View current pipeline status and statistics.

# Basic status
rag-pipeline status

# Detailed status with metrics
rag-pipeline status --detailed

# Status in JSON format
rag-pipeline status --format json

# Check specific component status
rag-pipeline status --component embedder
rag-pipeline status --component retriever
rag-pipeline status --component llm

Options:

  • --detailed, -d: Show detailed statistics
  • --format <type>: Output format (table, json, yaml)
  • --component <name>: Check specific component status
  • --refresh: Force refresh of cached status

🔍 Query & Interaction Commands

query - Interactive Querying

Query the RAG pipeline and get responses.

# Simple query
rag-pipeline query "What is the plugin architecture?"

# Query with specific LLM
rag-pipeline query "Explain embeddings" --llm openai-gpt-4

# Query with custom parameters
rag-pipeline query "How to optimize performance?" \
--max-tokens 2000 \
--temperature 0.3 \
--top-k 5 \
--include-sources

# Interactive query mode
rag-pipeline query --interactive

# Streaming response
rag-pipeline query "Explain RAG architecture" --stream

# Query with context filtering
rag-pipeline query "What is caching?" \
--filter '{"category": "performance"}' \
--min-confidence 0.7

# Save query results
rag-pipeline query "Plugin development guide" \
--output query-result.json \
--include-metadata

Options:

  • --llm <name>: Language model to use
  • --max-tokens <number>: Maximum response tokens
  • --temperature <number>: Response creativity (0.0-1.0)
  • --top-k <number>: Number of context chunks to retrieve
  • --include-sources: Include source documents in response
  • --include-metadata: Include processing metadata
  • --interactive, -i: Enter interactive query mode
  • --stream, -s: Stream response tokens
  • --filter <json>: Filter context by metadata
  • --min-confidence <number>: Minimum confidence threshold
  • --output, -o <file>: Save results to file
  • --format <type>: Output format (text, json, markdown)

chat - Interactive Chat Mode

Start an interactive chat session with the RAG pipeline.

# Start chat session
rag-pipeline chat

# Chat with specific configuration
rag-pipeline chat --llm openai-gpt-4 --temperature 0.7

# Chat with conversation history
rag-pipeline chat --history ./chat-history.json

# Chat with system prompt
rag-pipeline chat --system "You are a helpful RAG expert assistant."

Options:

  • --llm <name>: Language model for chat
  • --temperature <number>: Response creativity
  • --history <file>: Load/save conversation history
  • --system <prompt>: System prompt for the assistant
  • --max-history <number>: Maximum conversation history length

📊 Evaluation & Testing Commands

evaluate - Performance Evaluation

Run comprehensive evaluation on query sets.

# Basic evaluation
rag-pipeline evaluate ./test-queries.json

# Evaluation with specific metrics
rag-pipeline evaluate ./queries.json \
--metrics bleu,rouge,bertscore,semantic \
--output detailed-results.json

# Evaluation with custom configuration
rag-pipeline evaluate ./queries.json \
--llm openai-gpt-4 \
--embedder openai \
--batch-size 5 \
--parallel 2

# Comparative evaluation
rag-pipeline evaluate ./queries.json \
--compare-configs config1.json,config2.json \
--output comparison-results.csv

# Evaluation with ground truth
rag-pipeline evaluate ./queries.json \
--ground-truth ./expected-answers.json \
--metrics all \
--detailed

Options:

  • --metrics <list>: Evaluation metrics (bleu, rouge, bertscore, semantic, all)
  • --output, -o <file>: Output file for results
  • --format <type>: Output format (json, csv, xlsx)
  • --batch-size <number>: Queries to process in parallel
  • --parallel <number>: Number of parallel threads
  • --compare-configs <list>: Compare multiple configurations
  • --ground-truth <file>: Expected answers for comparison
  • --detailed, -d: Include detailed metrics and analysis
  • --timeout <seconds>: Query timeout in seconds

benchmark - Performance Benchmarking

Run performance benchmarks on pipeline components.

# Full pipeline benchmark
rag-pipeline benchmark

# Component-specific benchmarks
rag-pipeline benchmark --component embedder
rag-pipeline benchmark --component retriever
rag-pipeline benchmark --component llm

# Benchmark with custom load
rag-pipeline benchmark \
--queries 100 \
--concurrent 5 \
--duration 300

# Stress test
rag-pipeline benchmark --stress \
--max-concurrent 20 \
--ramp-up 60

Options:

  • --component <name>: Benchmark specific component
  • --queries <number>: Number of test queries
  • --concurrent <number>: Concurrent requests
  • --duration <seconds>: Benchmark duration
  • --stress: Run stress test
  • --max-concurrent <number>: Maximum concurrent requests
  • --ramp-up <seconds>: Gradual load increase duration

dashboard - Evaluation Dashboard

Start the interactive evaluation dashboard.

# Start dashboard on default port
rag-pipeline dashboard

# Start on specific port and host
rag-pipeline dashboard --port 3000 --host 0.0.0.0

# Dashboard with authentication
rag-pipeline dashboard --auth --username admin --password secret

# Dashboard with custom data
rag-pipeline dashboard --data ./evaluation-results.json

Options:

  • --port, -p <number>: Port number (default: 3000)
  • --host, -h <address>: Host address (default: localhost)
  • --auth: Enable authentication
  • --username <name>: Dashboard username
  • --password <pass>: Dashboard password
  • --data <file>: Load custom evaluation data
  • --open, -o: Automatically open browser

🔌 Plugin Management Commands

plugins - Plugin Operations

Manage pipeline plugins and extensions.

# List available plugins
rag-pipeline plugins list
rag-pipeline plugins list --type loader
rag-pipeline plugins list --installed

# Install plugins
rag-pipeline plugins install ./my-custom-plugin
rag-pipeline plugins install @company/rag-plugin-suite
rag-pipeline plugins install https://github.com/user/plugin.git

# Create new plugin
rag-pipeline plugins create my-loader --type loader
rag-pipeline plugins create my-embedder --type embedder --template typescript

# Validate plugin
rag-pipeline plugins validate ./my-plugin
rag-pipeline plugins validate ./my-plugin --strict

# Plugin information
rag-pipeline plugins info openai-embedder
rag-pipeline plugins info ./my-custom-plugin

# Uninstall plugin
rag-pipeline plugins uninstall my-custom-plugin

Options:

  • --type <name>: Filter by plugin type
  • --installed: Show only installed plugins
  • --template <name>: Plugin template (javascript, typescript)
  • --strict: Enable strict validation
  • --force, -f: Force installation/uninstallation

🛠️ Maintenance Commands

clear - Clear Data

Clear pipeline data and caches.

# Clear vector store
rag-pipeline clear --confirm

# Clear specific components
rag-pipeline clear --cache
rag-pipeline clear --embeddings
rag-pipeline clear --logs

# Clear all data
rag-pipeline clear --all --confirm

Options:

  • --cache: Clear cache only
  • --embeddings: Clear embeddings only
  • --logs: Clear log files
  • --all: Clear all data
  • --confirm: Skip confirmation prompt
  • --force, -f: Force clear without backup

rebuild - Rebuild Index

Rebuild the vector store index.

# Rebuild index
rag-pipeline rebuild

# Force rebuild
rag-pipeline rebuild --force

# Rebuild with new settings
rag-pipeline rebuild --chunk-size 1500 --embedder openai

Options:

  • --force, -f: Force rebuild without confirmation
  • --chunk-size <number>: New chunk size
  • --embedder <name>: New embedder to use
  • --parallel <number>: Parallel processing threads

export / import - Data Management

Export and import pipeline data.

# Export pipeline data
rag-pipeline export --output backup.json
rag-pipeline export --format json --compress

# Import pipeline data
rag-pipeline import backup.json
rag-pipeline import backup.json --merge

# Export specific components
rag-pipeline export --components embeddings,config --output partial-backup.json

Options:

  • --output, -o <file>: Output file
  • --format <type>: Export format (json, yaml)
  • --compress, -c: Compress export file
  • --components <list>: Specific components to export
  • --merge, -m: Merge with existing data on import

🔧 Global Options

These options are available for all commands:

  • --config, -c <file>: Use specific configuration file
  • --verbose, -v: Enable verbose output
  • --quiet, -q: Suppress non-error output
  • --debug: Enable debug mode
  • --no-color: Disable colored output
  • --help, -h: Show command help
  • --version, -V: Show version information

📝 Configuration File Integration

The CLI automatically reads configuration from .ragrc.json in the current directory or user home directory. You can override settings using command-line options:

# Use different config file
rag-pipeline query "test" --config ./custom-config.json

# Override config values
rag-pipeline query "test" --llm openai-gpt-4 --temperature 0.5

# Environment variable override
OPENAI_API_KEY=sk-new-key rag-pipeline query "test"

🚀 Advanced Usage Examples

Complete Workflow Example

# 1. Initialize project
rag-pipeline init my-knowledge-base --template enterprise
cd my-knowledge-base

# 2. Configure pipeline
rag-pipeline config set openai.apiKey $OPENAI_API_KEY
rag-pipeline config set pinecone.apiKey $PINECONE_API_KEY

# 3. Ingest documents
rag-pipeline ingest ./docs --loader markdown --recursive --progress

# 4. Test queries
rag-pipeline query "How does the system work?" --include-sources

# 5. Run evaluation
rag-pipeline evaluate ./test-queries.json --output results.csv

# 6. Start dashboard
rag-pipeline dashboard --port 3000 --open

Batch Processing Script

#!/bin/bash
# Batch process multiple document sets

for dir in ./datasets/*/; do
echo "Processing $dir"
rag-pipeline ingest "$dir" --loader auto --batch-size 20 --progress
done

# Run comprehensive evaluation
rag-pipeline evaluate ./all-queries.json --metrics all --detailed --output final-results.json

🏥 Enterprise Commands

doctor - System Diagnostics

Comprehensive system health checking and troubleshooting.

# Run full diagnostic suite
rag-pipeline doctor

# Check specific components
rag-pipeline doctor --check dependencies
rag-pipeline doctor --check configuration
rag-pipeline doctor --check plugins
rag-pipeline doctor --check external-services

# Generate diagnostic report
rag-pipeline doctor --report --output diagnostic-report.json

# Fix common issues automatically
rag-pipeline doctor --fix --auto

Options:

  • --check <component>: Check specific component
  • --report: Generate detailed diagnostic report
  • --output, -o <file>: Save report to file
  • --fix: Attempt to fix detected issues
  • --auto: Apply fixes automatically without prompts

slo - SLO Management

Manage Service Level Objectives and monitoring.

# List defined SLOs
rag-pipeline slo list

# Define new SLO
rag-pipeline slo define availability \
--objective 0.999 \
--window 30d \
--indicator "http_success_rate"

# Check SLO status
rag-pipeline slo status
rag-pipeline slo status --slo availability

# Generate SLO report
rag-pipeline slo report --period monthly --output slo-report.pdf

ai-ml - Advanced AI Operations

Manage advanced AI capabilities and model training.

# Multi-modal processing
rag-pipeline ai-ml process-multimodal ./mixed-content \
--text-weight 0.5 \
--image-weight 0.3 \
--table-weight 0.2

# Federated learning coordination
rag-pipeline ai-ml federated-train \
--participants ./nodes.json \
--rounds 10 \
--privacy-budget 1.0

# Adaptive retrieval optimization
rag-pipeline ai-ml optimize-retrieval \
--strategy performance-based \
--learning-rate 0.01

🔧 Enhanced Configuration

Enterprise .ragrc.json Schema

{
"pipeline": {
"loader": "markdown",
"embedder": "openai",
"retriever": "pinecone",
"llm": "openai-gpt-4",
"useReranker": true
},
"enterprise": {
"dependencyInjection": {
"enabled": true,
"container": "default"
},
"sloMonitoring": {
"enabled": true,
"storage": "prometheus",
"alerting": {
"webhook": "${SLACK_WEBHOOK_URL}",
"channels": ["#rag-alerts"]
}
},
"observability": {
"structuredLogging": true,
"correlationIds": true,
"tracing": {
"enabled": true,
"exporter": "jaeger",
"samplingRate": 0.1
},
"metrics": {
"enabled": true,
"prefix": "rag_pipeline",
"exporters": ["prometheus"]
}
},
"security": {
"authentication": {
"provider": "azure-ad",
"tenantId": "${AZURE_TENANT_ID}"
},
"auditLogging": {
"enabled": true,
"storage": "elasticsearch",
"retention": "7y"
}
}
},
"ai": {
"multiModal": {
"enabled": true,
"fusionStrategy": "weighted-average"
},
"federatedLearning": {
"enabled": false,
"privacyBudget": 1.0
},
"adaptiveRetrieval": {
"enabled": true,
"strategies": ["semantic", "keyword", "hybrid"]
}
},
"deployment": {
"kubernetes": {
"namespace": "rag-pipeline",
"replicas": 3,
"resources": {
"requests": { "memory": "512Mi", "cpu": "250m" },
"limits": { "memory": "1Gi", "cpu": "500m" }
}
},
"monitoring": {
"prometheus": true,
"grafana": true,
"alertManager": true
}
}
}

🐳 Enterprise Docker Usage

Production Deployment

# Build production image
docker build -t rag-pipeline:enterprise -f Dockerfile.enterprise .

# Run with enterprise features
docker run -d \
--name rag-pipeline-prod \
-p 3000:3000 \
-p 9090:9090 \
-e NODE_ENV=production \
-e OPENAI_API_KEY=${OPENAI_API_KEY} \
-e PINECONE_API_KEY=${PINECONE_API_KEY} \
-v ./config:/app/config \
-v ./logs:/app/logs \
rag-pipeline:enterprise

# Health check
docker exec rag-pipeline-prod rag-pipeline doctor --check all

Docker Compose Stack

# docker-compose.enterprise.yml
version: '3.8'
services:
rag-pipeline:
image: rag-pipeline:enterprise
ports:
- "3000:3000"
- "9090:9090"
environment:
- NODE_ENV=production
- PROMETHEUS_ENABLED=true
- JAEGER_ENDPOINT=http://jaeger:14268
depends_on:
- prometheus
- jaeger
- elasticsearch

prometheus:
image: prom/prometheus:latest
ports:
- "9091:9090"
volumes:
- ./deployment/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml

grafana:
image: grafana/grafana:latest
ports:
- "3001:3000"
volumes:
- ./deployment/grafana/dashboards:/var/lib/grafana/dashboards

🚀 CI/CD Integration

GitHub Actions Workflow

# .github/workflows/rag-pipeline-deploy.yml
name: RAG Pipeline Deploy
on:
push:
branches: [main]

jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '20'

- name: Install dependencies
run: npm ci

- name: Run diagnostics
run: npx rag-pipeline doctor --check all

- name: Run tests with mocking
run: npm test
env:
RAG_MOCK_EXTERNAL_APIS: true

deploy:
needs: test
runs-on: ubuntu-latest
steps:
- name: Deploy to Kubernetes
run: |
helm upgrade --install rag-pipeline ./deployment/helm/rag-pipeline \
--set image.tag=${{ github.sha }} \
--set config.openai.apiKey=${{ secrets.OPENAI_API_KEY }}

This comprehensive CLI reference covers all available commands and enterprise features in @DevilsDev/rag-pipeline-utils. For programmatic usage, see the Usage Guide, explore Enterprise Features for production deployments, or check Observability for monitoring and alerting.