Command-Line Options for the ODS Installer: Complete Flag Reference

The ODS installer supports over 30 command-line flags—including --dry-run, --tier, --cloud, and service toggles like --voice and --rag—parsed in ods/install-core.sh to customize hardware detection, external LLM integration, and optional service deployment.

The ODS (Open Data Science) stack from the Osmantic/ODS repository provides a Bash-based installation orchestrator that transforms a bare-metal or cloud instance into a fully configured AI inference platform. All command-line options for the ODS installer are defined and processed in the main orchestration script, allowing you to automate deployments, force specific hardware tiers, or integrate existing external LLM endpoints without interactive prompts.

How the Installer Parses Command-Line Arguments

According to the Osmantic/ODS source code, argument parsing is implemented in the "Command Line Args" section of ods/install-core.sh (lines 49‑71). The script uses a standard while loop to iterate over $@, setting global environment variables that downstream installation phases consume.

Each flag updates a specific variable—for example, --dry-run sets DRY_RUN=true, while --tier 3 assigns TIER=3. Later modular phases under installers/phases/ (such as 05-docker or 09-offline.sh) read these variables to determine which Docker images to pull and which configuration files to generate.

General Behavior and System Configuration Flags

Installation Control and Safety

These flags modify how the installer interacts with the host system:

  • --dry-run – Simulates the entire installation without modifying the system. Sets DRY_RUN=true, causing subsequent phases to print actions rather than execute them.
  • --skip-docker – Assumes Docker is pre-installed, bypassing the 05-docker phase entirely.
  • --force – Overwrites an existing ODS installation directory without prompting for confirmation.
  • --no-bootstrap – Disables the fast-start bootstrap model download, forcing a full model download in the foreground instead.

Hardware and Deployment Modes

Control hardware detection and network binding with these options:

  • --tier N – Forces a specific hardware tier (1‑4) instead of auto-detecting via installers/lib/tier-map.sh.
  • --cloud – Enables cloud mode (ODS_MODE="cloud"), which disables local GPU detection and configures LiteLLM with remote APIs.
  • --offline – Activates fully offline mode for Apple Silicon (OFFLINE_MODE=true), disabling external downloads during model selection.
  • --lan – Binds all services to 0.0.0.0 for LAN access by overriding BIND_ADDRESS and setting BIND_ADDRESS_EXPLICIT.

Output and Interaction Management

  • --summary-json <path> – Writes a machine-readable JSON summary of the installation to the specified file path, stored in SUMMARY_JSON_FILE for downstream automation.
  • --non-interactive – Runs without user prompts, using defaults or supplied flags exclusively (INTERACTIVE=false).
  • -h, --help – Displays the usage text and exits immediately.

External LLM Integration Options

The installer can connect to existing OpenAI-compatible endpoints rather than deploying local inference engines. These flags populate variables consumed by the LiteLLM configuration phase:

  • --external-llm-url <url> – Specifies the endpoint URL (e.g., http://localhost:11434 for Ollama). Sets EXTERNAL_LLM_URL.
  • --external-llm-provider <provider> – Declares the provider type: auto, ollama, or lmstudio. Sets EXTERNAL_LLM_PROVIDER.
  • --external-llm-model <model> – Defines the exact model ID exposed by the external provider. Sets EXTERNAL_LLM_MODEL.
  • --reuse-external-llm – Allows non-interactive reuse of a previously configured external model on subsequent runs (EXTERNAL_LLM_AUTO_REUSE=true).
  • --no-external-llm – Explicitly disables any persisted external LLM selection for the current run (EXTERNAL_LLM_DISABLE=true).

AMD Lemonade SDK Support

For AMD hardware deployments, the installer supports integration with the Lemonade SDK server:

  • --use-existing-lemonade – Connects to a pre-existing Lemonade SDK server instead of installing one locally. Sets LEMONADE_EXTERNAL=true and forces ODS_MODE="lemonade".
  • --lemonade-url <url> – Specifies the Lemonade server URL (defaults to localhost:13305 if omitted).
  • --lemonade-api-key <key> – Provides an API key for LiteLLM to authenticate with the Lemonade server, exported as LEMONADE_API_KEY.

Optional Service Toggles

The installer exposes granular flags for enabling or disabling specific microservices. Each flag controls a corresponding ENABLE_* variable:

  • --voice / --no-voice – Toggles Whisper and Kokoro voice services (ENABLE_VOICE).
  • --workflows / --no-workflows – Controls the n8n workflow automation service (ENABLE_WORKFLOWS).
  • --rag / --no-rag – Enables or disables the Qdrant vector-database RAG pipeline (ENABLE_RAG).
  • --recommended / --no-recommended – Activates the "recommended" service set: LiteLLM, SearXNG, and Token Spy (ENABLE_RECOMMENDED).
  • --hermes / --no-hermes – Toggles the Hermes agent (enabled by default as of May 2026) (ENABLE_HERMES).
  • --openclaw / --no-openclaw – Controls the deprecated OpenClaw agent (ENABLE_OPENCLAW).
  • --comfyui / --no-comfyui – Enables or disables the ComfyUI image-generation service. Disabling this saves approximately 34 GB of storage (ENABLE_COMFYUI).
  • --langfuse / --no-langfuse – Toggles the Langfuse observability stack (off by default) (ENABLE_LANGFUSE).

Use --all to enable every optional service simultaneously, including Langfuse. This sets the entire bundle of ENABLE_* flags in one operation (lines 64‑65 of install-core.sh). Deprecated flags like --odsforge are accepted for backward compatibility but emit warnings, as the ODSForge component was removed.

Practical Usage Examples


# Basic interactive install with auto-detected hardware tier

./install-core.sh

# Force tier 2, enable voice services, assume Docker is pre-installed

./install-core.sh --tier 2 --voice --skip-docker

# Fully automated CI deployment with all services enabled

./install-core.sh --all --non-interactive

# Connect to existing AMD Lemonade SDK server

./install-core.sh --use-existing-lemonade \
  --lemonade-url http://localhost:13305 \
  --lemonade-api-key secret123

# Use remote Ollama endpoint instead of local inference

./install-core.sh --external-llm-url http://my-ollama:11434 \
  --external-llm-provider ollama \
  --external-llm-model phi4

# Generate JSON summary for downstream automation tools

./install-core.sh --summary-json /tmp/ods-install-summary.json

Summary

  • The installer script ods/install-core.sh processes all command-line options between lines 49‑71, setting global variables consumed by modular phases in installers/phases/.
  • General flags like --dry-run, --tier, and --cloud control installation safety, hardware detection, and deployment mode.
  • External LLM flags (--external-llm-url, --external-llm-provider) allow integration with existing Ollama or LM Studio endpoints.
  • AMD-specific options (--use-existing-lemonade, --lemonade-url) configure Lemonade SDK server connectivity.
  • Service toggles (--voice, --rag, --comfyui, --all) selectively enable or disable microservices, with --all activating every optional component.
  • The --summary-json and --non-interactive flags support automated, machine-readable deployments in CI/CD pipelines.

Frequently Asked Questions

What is the main script that handles ODS installer command-line options?

The file ods/install-core.sh serves as the main orchestrator. It parses all flags in a while loop (lines 49‑71), sets corresponding environment variables, and then invokes modular installation phases located in installers/phases/. A thin wrapper script, ods/install.sh, simply forwards arguments to this core script.

How do I run the ODS installer without any user interaction?

Use the --non-interactive flag to disable all prompts, combined with explicit flags for any choices you would normally make manually. For fully automated deployments, pair this with --all to enable all services or specific toggles like --voice or --rag, and specify hardware tier with --tier N to bypass auto-detection.

Can I use an existing Ollama installation instead of deploying local models?

Yes. Pass --external-llm-url with your Ollama endpoint (e.g., http://localhost:11434), set --external-llm-provider ollama, and specify the model with --external-llm-model. The installer configures LiteLLM to route requests to this existing instance rather than pulling and running new containerized models.

How do I enable every optional service at once?

The --all flag sets the complete bundle of ENABLE_* variables in install-core.sh (lines 64‑65), activating ComfyUI, voice services, RAG, Langfuse, workflows, and all other optional components in a single command. You can subsequently disable specific services by adding their negative flags (e.g., --all --no-langfuse).

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →