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. SetsDRY_RUN=true, causing subsequent phases to print actions rather than execute them.--skip-docker– Assumes Docker is pre-installed, bypassing the05-dockerphase 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 viainstallers/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 to0.0.0.0for LAN access by overridingBIND_ADDRESSand settingBIND_ADDRESS_EXPLICIT.
Output and Interaction Management
--summary-json <path>– Writes a machine-readable JSON summary of the installation to the specified file path, stored inSUMMARY_JSON_FILEfor 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:11434for Ollama). SetsEXTERNAL_LLM_URL.--external-llm-provider <provider>– Declares the provider type:auto,ollama, orlmstudio. SetsEXTERNAL_LLM_PROVIDER.--external-llm-model <model>– Defines the exact model ID exposed by the external provider. SetsEXTERNAL_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. SetsLEMONADE_EXTERNAL=trueand forcesODS_MODE="lemonade".--lemonade-url <url>– Specifies the Lemonade server URL (defaults tolocalhost:13305if omitted).--lemonade-api-key <key>– Provides an API key for LiteLLM to authenticate with the Lemonade server, exported asLEMONADE_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.shprocesses all command-line options between lines 49‑71, setting global variables consumed by modular phases ininstallers/phases/. - General flags like
--dry-run,--tier, and--cloudcontrol 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--allactivating every optional component. - The
--summary-jsonand--non-interactiveflags 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:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →