--- title: CLI Reference --- # CLI Reference This page documents the command-line options exposed by Koharu's desktop binary. Koharu uses the same binary for: - desktop startup - headless local Web UI - the local HTTP API - the built-in MCP server ## Common usage ```bash # macOS / Linux koharu [OPTIONS] # Windows koharu.exe [OPTIONS] ``` ## Options | Option | Meaning | | --- | --- | | `-d`, `--download` | Prefetch runtime libraries and the default vision and OCR stack, then exit | | `--cpu` | Force CPU mode even when a GPU is available | | `-p`, `--port ` | Bind the local HTTP server to a specific port instead of a random one | | `--host ` | Bind the HTTP service to a specific host instead of `127.0.0.1` | | `--headless` | Run without starting the desktop GUI | | `--debug` | Enable debug-oriented console output | ## Behavior notes Some flags affect more than startup appearance: - without `--port`, Koharu chooses a random local port - without `--host`, Koharu binds only to `127.0.0.1` so the API is reachable from the same machine only - with `--headless`, Koharu skips the Tauri window but still serves the Web UI and API - with `--download`, Koharu exits after dependency prefetch and does not stay running - with `--cpu`, both the vision stack and local LLM path avoid GPU acceleration When a fixed port is set, the main local endpoints are: - `http://localhost:/` - `http://localhost:/api/v1` - `http://localhost:/mcp` ## Common patterns Start headless Web UI on a stable port: ```bash koharu --port 4000 --headless ``` Start with CPU-only inference: ```bash koharu --cpu ``` Download runtime packages ahead of time: ```bash koharu --download ``` Run a local MCP endpoint on a stable port: ```bash koharu --port 9999 ``` Then connect your MCP client to: ```text http://localhost:9999/mcp ``` Start with explicit debug logging: ```bash koharu --debug ``` Bind to all interfaces so other machines on the local network can reach the Web UI and API: ```bash koharu --host 0.0.0.0 --port 4000 --headless ``` This is the practical pattern for running Koharu in a container or VM where the desktop client lives on a different host. Anything other than `127.0.0.1` reachable from the network deliberately, so only set `--host` when you actually want non-loopback access.