Documentation menu
Source

Configuration

For most setups, open Configure in install.sh. It stores shared settings in ~/.qwen-mm-plugins/config as KEY=VALUE lines with mode 600. Qwen-MM-Plugins components launched by any harness read that file. A process environment variable overrides the same key in the file.

Use QWEN_MM_CONFIG=/path/to/file to select another file, or QWEN_MM_CONFIG_DIR=/path/to/dir to change the directory containing the default config file. These bootstrap variables must be set in the process environment because they determine which file is read.

Model output mode

QWEN_MM_NATIVE_MODE=1 is the default. MCP tools return native image content blocks so a multimodal host model can inspect the original visual result directly.

Set QWEN_MM_NATIVE_MODE=0 when the host model is text-only. Every returned image block is replaced at the same position by a generated caption, while existing text blocks (file metadata, PDF text layers, video timestamps, and similar context) are preserved. The caption path uses DASHSCOPE_BASE_URL and QWEN_MM_API_VL_MODEL. Credentials are selected by endpoint: DashScope uses DASHSCOPE_API_KEY, OrcaRouter uses ORCAROUTER_API_KEY, and OpenRouter uses OPENROUTER_API_KEY. Authentication-free local endpoints need no key configuration. A failed caption call produces an explicit Visual content unavailable text block instead of exposing base64 or silently dropping the image.

Enabling text-only mode sends tool-result images—including local files and application or desktop screenshots—to the configured VL endpoint. Use it only when that data may be shared with the endpoint. Invalid mode values fail safe to native mode and do not trigger an upload.

Search selection

Leave QWEN_MM_SEARCH_BACKEND unset or set it to auto to select the first configured key in this fixed order: Serper, Tavily, Exa, Serply. Set it to serper, tavily, exa, or serply to pin one provider; a missing matching key then raises an error instead of falling back. image_search always uses Serper Lens and therefore always requires SERPER_API_KEY.

Configure catalog

This is the complete catalog shown by the installer's Configure action. Defaults and grouping come from CONFIG_FIELDS; means unset or disabled.

<!-- BEGIN GENERATED CONFIG CATALOG --> <!-- Generated by scripts/gen_env_docs.py from src/shared/env.py CONFIG_FIELDS. -->

Media APIs & endpoints

VariableDefaultPurpose
DASHSCOPE_API_KEYvision, OCR, grounding, text-only image captions, ASR, generation, memory builds (secret)
ORCAROUTER_API_KEYOpenAI-compatible calls to api.orcarouter.ai (secret)
OPENROUTER_API_KEYOpenAI-compatible calls to openrouter.ai (secret)
MINIMAX_API_KEYMiniMax text-to-speech generation (secret)
DASHSCOPE_BASE_URLDashScope compat URLoverride the DashScope OpenAI-compatible base URL
QWEN_MM_API_VL_MODELqwen3.7-plusdefault VL model for vision_chat, OCR, grounding, and text-only image captions
QWEN_MM_API_OMNI_MODELqwen3.5-omni-plusdefault Omni model for audio/video understanding tools, omni-memory, and Omni ChatCut
SAM3_SERVER_URLsegmentation SAM3 server URL
ASR_SERVER_URLSself-hosted ASR fallback URLs (comma-separated)

Omni ChatCut

VariableDefaultPurpose
QWEN_MM_OMNI_CHATCUT_MODEL_CONFIGpath to the shared Omni, image-provider, and video-provider connection JSON
QWEN_MM_DUBBING_SERVER_URLexternal IndexTTS2/Demucs/TEN-VAD service used by video translation

Search providers

VariableDefaultPurpose
QWEN_MM_SEARCH_BACKENDautotext search backend (auto: serper > tavily > exa > serply; or choose one)
SERPER_API_KEYSerper web_search / web_extractor and Serper-only image_search (secret)
TAVILY_API_KEYTavily web_search / web_extractor (secret)
EXA_API_KEYExa web_search / web_extractor (secret)
SERPLY_API_KEYSerply web_search / web_extractor (secret)

Runtime paths & limits

VariableDefaultPurpose
QWEN_MM_CACHEOS cache dircache dir for derived render artifacts
QWEN_MM_FFMPEG_TIMEOUT120ffmpeg/ffprobe timeout seconds
QWEN_MM_CHAT_TIMEOUTtool-specific (600; Omni 1800)OpenAI-compatible chat request timeout seconds
QWEN_MM_NATIVE_MODE11 returns MCP images; 0 sends images to the VL endpoint and returns captions
QWEN_MM_MAX_TOTAL_FRAMES600max frames sampled from a video

OSS storage (serve large media by URL)

VariableDefaultPurpose
OSS_AKOSS access key id (secret)
OSS_SKOSS access key secret (secret)
OSS_ENDPOINTOSS endpoint
OSS_BUCKETupload destination for build clips and oversized API media
OSS_VIDEO_CLIP_PREFIXtmp/video_clipskey prefix for uploaded video clips
OSS_URL_EXPIRY7200signed-URL TTL seconds

Video-memory

VariableDefaultPurpose
GRAPH_MEMORY_PATHgraph_memory.json path (overrides a passed video path)
EMBEDDINGS_PATHembeddings.npz path
CUTOFF_SECtime cutoff (seconds) for retrieval

Omni-memory

VariableDefaultPurpose
MEM_LOCAL_DIRvideo directoryoptional shared root for namespace memories; defaults beside the input video

Blender / FreeCAD hosts

VariableDefaultPurpose
BLENDER_BINARYpath to the Blender executable
BLENDER_HOSTlocalhostBlender addon host
BLENDER_PORT9876Blender addon port
FREECAD_BINARYpath to the FreeCAD executable
FREECAD_RPC_HOSTlocalhostFreeCAD RPC host
FREECAD_RPC_PORT9875FreeCAD RPC port
FREECAD_MOD_DIRFreeCAD Mod dir for the bundled addon

edu-agent (Node / headless Chromium)

VariableDefaultPurpose
NODE_PATHNode.js module resolution path
PUPPETEER_EXECUTABLE_PATHheadless Chromium executable for Puppeteer
<!-- END GENERATED CONFIG CATALOG -->

Advanced environment-only switches

These switches are intentionally not written by Configure. Set them only for the named compatibility or runtime behavior.

VariableDefaultPurpose
QWEN_MM_AUDIO_RAW_B64offSend Omni audio as raw base64 for OpenAI-spec servers such as vLLM; DashScope uses data:;base64,<payload>
QWEN_MM_AUTOLAUNCHoffLaunch a local Blender/FreeCAD application on the first tool call; plugin manifests may preset it
QWEN_MM_NO_AUTO_INSTALLoffDisable automatic Blender/FreeCAD binary downloads
FREECAD_ONLY_TEXT_FEEDBACKoffOmit screenshots normally attached to FreeCAD tool results
OSS_BUCKET_NAMELegacy video-memory alias; OSS_BUCKET takes precedence

Capability-specific context and prerequisites remain in each capability's Skill and cookbook.