id = "qwen-code" name = "Qwen Code" homepage = "https://github.com/QwenLM/qwen-code" description = "Qwen Code is an open-source terminal agent for coding workflows." executables = ["qwen"] [dotfiles] # https://github.com/QwenLM/qwen-code/blob/main/docs/users/configuration/settings.md # documents the global user settings file ~/.qwen/settings.json. The same # official docs document user-level ~/.qwen/.env for API keys and # qwen-serve's ~/.qwen/oauth_creds.json for shared OAuth credentials. User # language packs and extensions are also under ~/.qwen but are user data rather # than stable configuration paths, so they are not included here. paths = ["~/.qwen/settings.json"] secret = [ "~/.qwen/.env", "~/.qwen/oauth_creds.json", ] side_effect = false # API credentials may also be written to settings.json by older auth flows. # The current model-provider flow references environment variables instead; # these two documented legacy/current fields are withheld when present. [[dotfiles.secret_paths]] file = "~/.qwen/settings.json" format = "json" match = { key_path = ["env.*", "security.auth.apiKey"] } [commands] format = 1 label = "Run Qwen Code" description = "Start an interactive session or run a one-shot prompt. Telemetry, ACP, extension and logging flags are left out." quality = "ai-draft" parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false } [[commands.source]] id = "docs" kind = "manual" url = "https://github.com/QwenLM/qwen-code/blob/main/docs/users/configuration/settings.md" revision = "2026-10-27" evidence = """ | `--model` | `-m` | Specifies the Qwen model to use for this session. | `--prompt` | `-p` | Used to pass a prompt directly to the command. This invokes Qwen Code in a non-interactive mode. | `--prompt-interactive` | `-i` | Starts an interactive session with the provided prompt as the initial input. | `--output-format` | `-o` | Specifies the format of the CLI output for non-interactive mode. | `text`, `json`, `stream-json` | `--sandbox` | `-s` | Enables sandbox mode for this session. | `--debug` | `-d` | Enables debug mode for this session, providing more verbose output. | `--yolo` | | Enables YOLO mode, which automatically approves all tool calls. | `--approval-mode` | | Sets the approval mode for tool calls. | `plan`, `default`, `auto-edit`, `auto`, `yolo` | `--allowed-tools` | | A comma-separated list of tool names that will bypass the confirmation dialog. | `--include-directories` | | Includes additional directories in the workspace for multi-directory support. """ [[commands.field]] id = "prompt" label = "Prompt (non-interactive)" description = "Runs once and prints the answer." type = "string" option = ["--prompt", "-p"] sources = ["docs"] [[commands.field]] id = "prompt_interactive" label = "Initial prompt (interactive)" type = "string" option = ["--prompt-interactive", "-i"] sources = ["docs"] [[commands.field]] id = "model" label = "Model" type = "string" option = ["--model", "-m"] suggestions = [{ value = "qwen3-coder-plus", label = "qwen3-coder-plus" }] sources = ["docs"] [[commands.field]] id = "approval_mode" label = "Approval mode" type = "enum" option = ["--approval-mode"] choices = [ { value = "plan", label = "Plan (analyze only)" }, { value = "default", label = "Default" }, { value = "auto-edit", label = "Auto-edit" }, { value = "auto", label = "Auto" }, { value = "yolo", label = "YOLO" }, ] sources = ["docs"] [[commands.field]] id = "yolo" label = "YOLO (approve all tool calls)" type = "boolean" option = ["--yolo"] effect = "exec" sources = ["docs"] [[commands.field]] id = "sandbox" label = "Sandbox" type = "boolean" option = ["--sandbox", "-s"] sources = ["docs"] [[commands.field]] id = "output_format" label = "Output format" type = "enum" option = ["--output-format", "-o"] choices = [{ value = "text", label = "Text" }, { value = "json", label = "JSON" }, { value = "stream-json", label = "Streaming JSON" }] sources = ["docs"] [[commands.field]] id = "allowed_tools" label = "Allowed tools" description = "Comma-separated tool names that skip confirmation." type = "string" option = ["--allowed-tools"] sources = ["docs"] [[commands.field]] id = "include_directories" label = "Extra workspace directories" type = "path" option = ["--include-directories"] multiple = true path = { kind = "directory", role = "input", must_exist = true } sources = ["docs"] [[commands.field]] id = "debug" label = "Debug" type = "boolean" option = ["--debug", "-d"] sources = ["docs"] [[commands.task]] id = "interactive" label = "Interactive session" fields = ["prompt_interactive", "model", "approval_mode", "sandbox"] required = [] [[commands.task]] id = "one-shot" label = "One-shot prompt" fields = ["prompt", "model", "output_format", "approval_mode"] required = ["prompt"] [[commands.group]] id = "basic" label = "Basic" fields = ["prompt", "prompt_interactive", "model", "approval_mode", "output_format"] [[commands.group]] id = "advanced" label = "Advanced" fields = ["yolo", "sandbox", "allowed_tools", "include_directories", "debug"]