{"_id":"qwen-code","_rev":"8-96360bb079b7e5abfd0e17a165b9f9f5","name":"qwen-code","dist-tags":{"latest":"0.0.5"},"versions":{"0.0.4":{"name":"qwen-code","version":"0.0.4","_id":"qwen-code@0.0.4","maintainers":[{"name":"liangshuai","email":"509856256@qq.com"}],"homepage":"https://github.com/google-gemini/gemini-cli#readme","bugs":{"url":"https://github.com/google-gemini/gemini-cli/issues"},"bin":{"gemini":"bundle/gemini.js"},"dist":{"shasum":"672a2cf5482cf66dccfe30c1832c5027aba70a19","tarball":"https://registry.npmjs.org/qwen-code/-/qwen-code-0.0.4.tgz","fileCount":11,"integrity":"sha512-EQSnfYQ+0XrmMptimqyaKhOJFMomn3B1mnDIZKxIXjr5Plk+OQqBA041p7slNSvgeUYcjkQE7ktq9Olpziva2A==","signatures":[{"sig":"MEUCIQD3aDk1xWNaLruaVSTvk8wcREOp53pckttmM/i4s01xXgIgd6st/2NLsECYDFcIoHsqUSQzu0cS1kn9Nx50+++NWwY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":17584015},"type":"module","config":{"sandboxImageUri":"us-docker.pkg.dev/gemini-code-dev/gemini-cli/sandbox:0.7.0-nightly.20250918.2722473a"},"engines":{"node":">=20.0.0"},"gitHead":"018c6efb96b5a2536f4a1b328503e945c0ecb619","scripts":{"auth":"npm run auth:npm && npm run auth:docker","lint":"eslint . --ext .ts,.tsx && eslint integration-tests","test":"npm run test --workspaces --if-present --parallel","build":"node scripts/build.js","clean":"node scripts/clean.js","debug":"cross-env DEBUG=1 node --inspect-brk scripts/start.js","start":"cross-env node scripts/start.js","bundle":"npm run generate && node esbuild.config.js && node scripts/copy_bundle_assets.js","format":"prettier --experimental-cli --write .","lint:ci":"eslint . --ext .ts,.tsx --max-warnings 0 && eslint integration-tests --max-warnings 0","prepare":"husky && npm run bundle","test:ci":"npm run test:ci --workspaces --if-present --parallel && npm run test:scripts","auth:npm":"npx google-artifactregistry-auth","generate":"node scripts/generate-git-commit-info.js","lint:all":"node scripts/lint.js","lint:fix":"eslint . --fix && eslint integration-tests --fix","test:e2e":"cross-env VERBOSE=true KEEP_OUTPUT=true npm run test:integration:sandbox:none","build:all":"npm run build && npm run build:sandbox && npm run build:vscode","preflight":"npm run clean && npm ci && npm run format && npm run lint:ci && npm run build && npm run typecheck && npm run test:ci","telemetry":"node scripts/telemetry.js","typecheck":"npm run typecheck --workspaces --if-present","pre-commit":"lint-staged","auth:docker":"gcloud auth configure-docker us-west1-docker.pkg.dev","build:vscode":"node scripts/build_vscode_companion.js","test:scripts":"vitest run --config ./scripts/tests/vitest.config.ts","build:sandbox":"node scripts/build_sandbox.js --skip-npm-install-build","build:packages":"npm run build --workspaces","check:lockfile":"node scripts/check-lockfile.js","build-and-start":"npm run build && npm run start","prepare:package":"node scripts/prepare-package.js","release:version":"node scripts/version.js","start:a2a-server":"CODER_AGENT_PORT=41242 npm run start --workspace @google/gemini-cli-a2a-server","test:integration:all":"npm run test:integration:sandbox:none && npm run test:integration:sandbox:docker && npm run test:integration:sandbox:podman","test:integration:sandbox:none":"cross-env GEMINI_SANDBOX=false vitest run --root ./integration-tests","test:integration:sandbox:docker":"cross-env GEMINI_SANDBOX=docker npm run build:sandbox && cross-env GEMINI_SANDBOX=docker vitest run --root ./integration-tests","test:integration:sandbox:podman":"cross-env GEMINI_SANDBOX=podman vitest run --root ./integration-tests"},"_npmUser":{"name":"liangshuai","email":"509856256@qq.com"},"overrides":{"wrap-ansi":"9.0.2"},"repository":{"url":"git+https://github.com/google-gemini/gemini-cli.git","type":"git"},"workspaces":["packages/*"],"_npmVersion":"11.4.2","description":"[![Gemini CLI CI](https://github.com/google-gemini/gemini-cli/actions/workflows/ci.yml/badge.svg)](https://github.com/google-gemini/gemini-cli/actions/workflows/ci.yml) [![Gemini CLI E2E](https://github.com/google-gemini/gemini-cli/actions/workflows/e2e.y","directories":{},"lint-staged":{"*.{json,md}":["prettier --write"],"*.{js,jsx,ts,tsx}":["prettier --write","eslint --fix --max-warnings 0"]},"_nodeVersion":"24.2.0","dependencies":{"sm-crypto":"^0.3.13","simple-git":"^3.28.0"},"_hasShrinkwrap":false,"devDependencies":{"msw":"^2.10.4","tsx":"^4.20.3","glob":"^10.4.5","json":"^11.0.0","husky":"^9.1.7","memfs":"^4.42.0","yargs":"^17.7.2","eslint":"^9.24.0","vitest":"^3.2.4","esbuild":"^0.25.0","globals":"^16.0.0","mock-fs":"^5.5.0","prettier":"^3.5.3","cross-env":"^7.0.3","mnemonist":"^0.40.3","lint-staged":"^16.1.6","npm-run-all":"^4.1.5","gensign-node":"^0.1.6","@types/marked":"^5.0.2","@types/mock-fs":"^4.13.4","@types/minimatch":"^5.1.2","@types/mime-types":"^3.0.1","typescript-eslint":"^8.30.1","@types/shell-quote":"^1.7.5","@vitest/coverage-v8":"^3.1.1","esbuild-plugin-copy":"^2.1.1","eslint-plugin-react":"^7.37.5","react-devtools-core":"^4.28.5","eslint-plugin-import":"^2.31.0","@vitest/eslint-plugin":"^1.3.4","eslint-config-prettier":"^10.1.2","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-license-header":"^0.8.0","google-artifactregistry-auth":"^3.4.0"},"optionalDependencies":{"node-pty":"^1.0.0","@lydell/node-pty":"1.1.0","@lydell/node-pty-linux-x64":"1.1.0","@lydell/node-pty-win32-x64":"1.1.0","@lydell/node-pty-darwin-x64":"1.1.0","@lydell/node-pty-win32-arm64":"1.1.0","@lydell/node-pty-darwin-arm64":"1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/qwen-code_0.0.4_1758595916428_0.8432870998918394","host":"s3://npm-registry-packages-npm-production"}},"0.0.5":{"name":"qwen-code","version":"0.0.5","engines":{"node":">=20.0.0"},"type":"module","workspaces":["packages/*"],"repository":{"type":"git","url":"git+https://github.com/QwenLM/qwen-code.git"},"config":{"sandboxImageUri":"ghcr.io/qwenlm/qwen-code:0.0.13"},"scripts":{"start":"node scripts/start.js","debug":"cross-env DEBUG=1 node --inspect-brk scripts/start.js","auth:npm":"npx google-artifactregistry-auth","auth:docker":"gcloud auth configure-docker us-west1-docker.pkg.dev","auth":"npm run auth:npm && npm run auth:docker","generate":"node scripts/generate-git-commit-info.js","build":"node scripts/build.js","build-and-start":"npm run build && npm run start","build:vscode":"node scripts/build_vscode_companion.js","build:all":"npm run build && npm run build:sandbox && npm run build:vscode","build:packages":"npm run build --workspaces","build:sandbox":"node scripts/build_sandbox.js --skip-npm-install-build","bundle":"npm run generate && node esbuild.config.js && node scripts/copy_bundle_assets.js","test":"npm run test --workspaces --if-present","test:ci":"npm run test:ci --workspaces --if-present && npm run test:scripts","test:scripts":"vitest run --config ./scripts/tests/vitest.config.ts","test:e2e":"cross-env VERBOSE=true KEEP_OUTPUT=true npm run test:integration:sandbox:none","test:integration:all":"npm run test:integration:sandbox:none && npm run test:integration:sandbox:docker && npm run test:integration:sandbox:podman","test:integration:sandbox:none":"GEMINI_SANDBOX=false vitest run --root ./integration-tests","test:integration:sandbox:docker":"GEMINI_SANDBOX=docker npm run build:sandbox && GEMINI_SANDBOX=docker vitest run --root ./integration-tests","test:integration:sandbox:podman":"GEMINI_SANDBOX=podman vitest run --root ./integration-tests","test:terminal-bench":"cross-env VERBOSE=true KEEP_OUTPUT=true vitest run --config ./vitest.terminal-bench.config.ts --root ./integration-tests","test:terminal-bench:oracle":"cross-env VERBOSE=true KEEP_OUTPUT=true vitest run --config ./vitest.terminal-bench.config.ts --root ./integration-tests -t 'oracle'","test:terminal-bench:qwen":"cross-env VERBOSE=true KEEP_OUTPUT=true vitest run --config ./vitest.terminal-bench.config.ts --root ./integration-tests -t 'qwen'","lint":"eslint . --ext .ts,.tsx && eslint integration-tests","lint:fix":"eslint . --fix && eslint integration-tests --fix","lint:ci":"eslint . --ext .ts,.tsx --max-warnings 0 && eslint integration-tests --max-warnings 0","format":"prettier --experimental-cli --write .","typecheck":"npm run typecheck --workspaces --if-present","preflight":"npm run clean && npm ci && npm run format && npm run lint:ci && npm run build && npm run typecheck && npm run test:ci","prepare":"npm run bundle","prepare:package":"node scripts/prepare-package.js","release:version":"node scripts/version.js","telemetry":"node scripts/telemetry.js","clean":"node scripts/clean.js"},"bin":{"qwen":"bundle/gemini.js"},"devDependencies":{"@types/marked":"^5.0.2","@types/mime-types":"^3.0.1","@types/minimatch":"^5.1.2","@types/mock-fs":"^4.13.4","@types/qrcode-terminal":"^0.12.2","@types/shell-quote":"^1.7.5","@types/uuid":"^10.0.0","@vitest/coverage-v8":"^3.1.1","@vitest/eslint-plugin":"^1.3.4","concurrently":"^9.2.0","cross-env":"^7.0.3","esbuild":"^0.25.0","esbuild-plugin-copy":"^2.1.1","eslint":"^9.24.0","eslint-config-prettier":"^10.1.2","eslint-plugin-import":"^2.31.0","eslint-plugin-license-header":"^0.8.0","eslint-plugin-react":"^7.37.5","eslint-plugin-react-hooks":"^5.2.0","glob":"^10.4.5","globals":"^16.0.0","json":"^11.0.0","lodash":"^4.17.21","memfs":"^4.17.2","mnemonist":"^0.40.3","mock-fs":"^5.5.0","msw":"^2.10.4","prettier":"^3.5.3","react-devtools-core":"^4.28.5","tsx":"^4.20.3","typescript-eslint":"^8.30.1","vitest":"^3.2.4","yargs":"^17.7.2"},"dependencies":{"@lvce-editor/ripgrep":"^1.6.0","gensign-node":"^0.1.8","simple-git":"^3.28.0","strip-ansi":"^7.1.0"},"optionalDependencies":{"@lydell/node-pty":"1.1.0","@lydell/node-pty-darwin-arm64":"1.1.0","@lydell/node-pty-darwin-x64":"1.1.0","@lydell/node-pty-linux-x64":"1.1.0","@lydell/node-pty-win32-arm64":"1.1.0","@lydell/node-pty-win32-x64":"1.1.0","node-pty":"^1.0.0"},"_id":"qwen-code@0.0.5","gitHead":"2d7e5e9c25b7a74b44dd267d50cba007b0385c9e","description":"<div align=\"center\">","bugs":{"url":"https://github.com/QwenLM/qwen-code/issues"},"homepage":"https://github.com/QwenLM/qwen-code#readme","_nodeVersion":"24.2.0","_npmVersion":"11.4.2","dist":{"integrity":"sha512-EuUc2Q1yipIbjhT5aCc6NpmjeTyMqXHWmEmCNfnnCjsmCBi+MdTspTDOZ6wsqwUKXAC2cN2wSey94QAp3BIrKQ==","shasum":"62921a48b3bce18ccdc34a56618fba2249f3307f","tarball":"https://registry.npmjs.org/qwen-code/-/qwen-code-0.0.5.tgz","fileCount":11,"unpackedSize":13627045,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQD+vAqZ29JLI2qZSLHaqO261ltfUduJ+Eo6kmZ4emXTowIgZNyP+4EPqWgZgDkUh0tVSvOTnxUvjxQut1C+xIs9qpY="}]},"_npmUser":{"name":"liangshuai","email":"509856256@qq.com"},"directories":{},"maintainers":[{"name":"liangshuai","email":"509856256@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/qwen-code_0.0.5_1759191886321_0.2113663818625784"},"_hasShrinkwrap":false}},"time":{"created":"2025-09-22T10:44:53.376Z","modified":"2025-09-30T00:24:47.133Z","0.0.1":"2025-09-22T10:44:53.619Z","0.0.2":"2025-09-22T10:58:04.220Z","0.0.3":"2025-09-23T02:38:23.386Z","0.0.4":"2025-09-23T02:51:56.692Z","0.0.5":"2025-09-30T00:24:46.633Z"},"bugs":{"url":"https://github.com/QwenLM/qwen-code/issues"},"homepage":"https://github.com/QwenLM/qwen-code#readme","repository":{"type":"git","url":"git+https://github.com/QwenLM/qwen-code.git"},"description":"<div align=\"center\">","maintainers":[{"name":"liangshuai","email":"509856256@qq.com"}],"readme":"# Qwen Code\n\n<div align=\"center\">\n\n![Qwen Code Screenshot](./docs/assets/qwen-screenshot.png)\n\n[![npm version](https://img.shields.io/npm/v/@qwen-code/qwen-code.svg)](https://www.npmjs.com/package/@qwen-code/qwen-code)\n[![License](https://img.shields.io/github/license/QwenLM/qwen-code.svg)](./LICENSE)\n[![Node.js Version](https://img.shields.io/badge/node-%3E%3D20.0.0-brightgreen.svg)](https://nodejs.org/)\n[![Downloads](https://img.shields.io/npm/dm/@qwen-code/qwen-code.svg)](https://www.npmjs.com/package/@qwen-code/qwen-code)\n\n**AI-powered command-line workflow tool for developers**\n\n[Installation](#installation) • [Quick Start](#quick-start) • [Features](#key-features) • [Documentation](./docs/) • [Contributing](./CONTRIBUTING.md)\n\n</div>\n\n<div align=\"center\">\n  \n  <a href=\"https://qwenlm.github.io/qwen-code-docs/de/\">Deutsch</a> | \n  <a href=\"https://qwenlm.github.io/qwen-code-docs/fr\">français</a> | \n  <a href=\"https://qwenlm.github.io/qwen-code-docs/ja/\">日本語</a> | \n  <a href=\"https://qwenlm.github.io/qwen-code-docs/ru\">Русский</a> | \n  <a href=\"https://qwenlm.github.io/qwen-code-docs/zh/\">中文</a>\n  \n</div>\n\nQwen Code is a powerful command-line AI workflow tool adapted from [**Gemini CLI**](https://github.com/google-gemini/gemini-cli) ([details](./README.gemini.md)), specifically optimized for [Qwen3-Coder](https://github.com/QwenLM/Qwen3-Coder) models. It enhances your development workflow with advanced code understanding, automated tasks, and intelligent assistance.\n\n## 💡 Free Options Available\n\nGet started with Qwen Code at no cost using any of these free options:\n\n### 🔥 Qwen OAuth (Recommended)\n\n- **2,000 requests per day** with no token limits\n- **60 requests per minute** rate limit\n- Simply run `qwen` and authenticate with your qwen.ai account\n- Automatic credential management and refresh\n- Use `/auth` command to switch to Qwen OAuth if you have initialized with OpenAI compatible mode\n\n### 🌏 Regional Free Tiers\n\n- **Mainland China**: ModelScope offers **2,000 free API calls per day**\n- **International**: OpenRouter provides **up to 1,000 free API calls per day** worldwide\n\nFor detailed setup instructions, see [Authorization](#authorization).\n\n> [!WARNING]\n> **Token Usage Notice**: Qwen Code may issue multiple API calls per cycle, resulting in higher token usage (similar to Claude Code). We're actively optimizing API efficiency.\n\n## Key Features\n\n- **Code Understanding & Editing** - Query and edit large codebases beyond traditional context window limits\n- **Workflow Automation** - Automate operational tasks like handling pull requests and complex rebases\n- **Enhanced Parser** - Adapted parser specifically optimized for Qwen-Coder models\n- **Vision Model Support** - Automatically detect images in your input and seamlessly switch to vision-capable models for multimodal analysis\n\n## Installation\n\n### Prerequisites\n\nEnsure you have [Node.js version 20](https://nodejs.org/en/download) or higher installed.\n\n```bash\ncurl -qL https://www.npmjs.com/install.sh | sh\n```\n\n### Install from npm\n\n```bash\nnpm install -g @qwen-code/qwen-code@latest\nqwen --version\n```\n\n### Install from source\n\n```bash\ngit clone https://github.com/QwenLM/qwen-code.git\ncd qwen-code\nnpm install\nnpm install -g .\n```\n\n### Install globally with Homebrew (macOS/Linux)\n\n```bash\nbrew install qwen-code\n```\n\n## Quick Start\n\n```bash\n# Start Qwen Code\nqwen\n\n# Example commands\n> Explain this codebase structure\n> Help me refactor this function\n> Generate unit tests for this module\n```\n\n### Session Management\n\nControl your token usage with configurable session limits to optimize costs and performance.\n\n#### Configure Session Token Limit\n\nCreate or edit `.qwen/settings.json` in your home directory:\n\n```json\n{\n  \"sessionTokenLimit\": 32000\n}\n```\n\n#### Session Commands\n\n- **`/compress`** - Compress conversation history to continue within token limits\n- **`/clear`** - Clear all conversation history and start fresh\n- **`/stats`** - Check current token usage and limits\n\n> 📝 **Note**: Session token limit applies to a single conversation, not cumulative API calls.\n\n### Vision Model Configuration\n\nQwen Code includes intelligent vision model auto-switching that detects images in your input and can automatically switch to vision-capable models for multimodal analysis. **This feature is enabled by default** - when you include images in your queries, you'll see a dialog asking how you'd like to handle the vision model switch.\n\n#### Skip the Switch Dialog (Optional)\n\nIf you don't want to see the interactive dialog each time, configure the default behavior in your `.qwen/settings.json`:\n\n```json\n{\n  \"experimental\": {\n    \"vlmSwitchMode\": \"once\"\n  }\n}\n```\n\n**Available modes:**\n\n- **`\"once\"`** - Switch to vision model for this query only, then revert\n- **`\"session\"`** - Switch to vision model for the entire session\n- **`\"persist\"`** - Continue with current model (no switching)\n- **Not set** - Show interactive dialog each time (default)\n\n#### Command Line Override\n\nYou can also set the behavior via command line:\n\n```bash\n# Switch once per query\nqwen --vlm-switch-mode once\n\n# Switch for entire session\nqwen --vlm-switch-mode session\n\n# Never switch automatically\nqwen --vlm-switch-mode persist\n```\n\n#### Disable Vision Models (Optional)\n\nTo completely disable vision model support, add to your `.qwen/settings.json`:\n\n```json\n{\n  \"experimental\": {\n    \"visionModelPreview\": false\n  }\n}\n```\n\n> 💡 **Tip**: In YOLO mode (`--yolo`), vision switching happens automatically without prompts when images are detected.\n\n### Authorization\n\nChoose your preferred authentication method based on your needs:\n\n#### 1. Qwen OAuth (🚀 Recommended - Start in 30 seconds)\n\nThe easiest way to get started - completely free with generous quotas:\n\n```bash\n# Just run this command and follow the browser authentication\nqwen\n```\n\n**What happens:**\n\n1. **Instant Setup**: CLI opens your browser automatically\n2. **One-Click Login**: Authenticate with your qwen.ai account\n3. **Automatic Management**: Credentials cached locally for future use\n4. **No Configuration**: Zero setup required - just start coding!\n\n**Free Tier Benefits:**\n\n- ✅ **2,000 requests/day** (no token counting needed)\n- ✅ **60 requests/minute** rate limit\n- ✅ **Automatic credential refresh**\n- ✅ **Zero cost** for individual users\n- ℹ️ **Note**: Model fallback may occur to maintain service quality\n\n#### 2. OpenAI-Compatible API\n\nUse API keys for OpenAI or other compatible providers:\n\n**Configuration Methods:**\n\n1. **Environment Variables**\n\n   ```bash\n   export OPENAI_API_KEY=\"your_api_key_here\"\n   export OPENAI_BASE_URL=\"your_api_endpoint\"\n   export OPENAI_MODEL=\"your_model_choice\"\n   ```\n\n2. **Project `.env` File**\n   Create a `.env` file in your project root:\n   ```env\n   OPENAI_API_KEY=your_api_key_here\n   OPENAI_BASE_URL=your_api_endpoint\n   OPENAI_MODEL=your_model_choice\n   ```\n\n**API Provider Options**\n\n> ⚠️ **Regional Notice:**\n>\n> - **Mainland China**: Use Alibaba Cloud Bailian or ModelScope\n> - **International**: Use Alibaba Cloud ModelStudio or OpenRouter\n\n<details>\n<summary><b>🇨🇳 For Users in Mainland China</b></summary>\n\n**Option 1: Alibaba Cloud Bailian** ([Apply for API Key](https://bailian.console.aliyun.com/))\n\n```bash\nexport OPENAI_API_KEY=\"your_api_key_here\"\nexport OPENAI_BASE_URL=\"https://dashscope.aliyuncs.com/compatible-mode/v1\"\nexport OPENAI_MODEL=\"qwen3-coder-plus\"\n```\n\n**Option 2: ModelScope (Free Tier)** ([Apply for API Key](https://modelscope.cn/docs/model-service/API-Inference/intro))\n\n- ✅ **2,000 free API calls per day**\n- ⚠️ Connect your Aliyun account to avoid authentication errors\n\n```bash\nexport OPENAI_API_KEY=\"your_api_key_here\"\nexport OPENAI_BASE_URL=\"https://api-inference.modelscope.cn/v1\"\nexport OPENAI_MODEL=\"Qwen/Qwen3-Coder-480B-A35B-Instruct\"\n```\n\n</details>\n\n<details>\n<summary><b>🌍 For International Users</b></summary>\n\n**Option 1: Alibaba Cloud ModelStudio** ([Apply for API Key](https://modelstudio.console.alibabacloud.com/))\n\n```bash\nexport OPENAI_API_KEY=\"your_api_key_here\"\nexport OPENAI_BASE_URL=\"https://dashscope-intl.aliyuncs.com/compatible-mode/v1\"\nexport OPENAI_MODEL=\"qwen3-coder-plus\"\n```\n\n**Option 2: OpenRouter (Free Tier Available)** ([Apply for API Key](https://openrouter.ai/))\n\n```bash\nexport OPENAI_API_KEY=\"your_api_key_here\"\nexport OPENAI_BASE_URL=\"https://openrouter.ai/api/v1\"\nexport OPENAI_MODEL=\"qwen/qwen3-coder:free\"\n```\n\n</details>\n\n## Usage Examples\n\n### 🔍 Explore Codebases\n\n```bash\ncd your-project/\nqwen\n\n# Architecture analysis\n> Describe the main pieces of this system's architecture\n> What are the key dependencies and how do they interact?\n> Find all API endpoints and their authentication methods\n```\n\n### 💻 Code Development\n\n```bash\n# Refactoring\n> Refactor this function to improve readability and performance\n> Convert this class to use dependency injection\n> Split this large module into smaller, focused components\n\n# Code generation\n> Create a REST API endpoint for user management\n> Generate unit tests for the authentication module\n> Add error handling to all database operations\n```\n\n### 🔄 Automate Workflows\n\n```bash\n# Git automation\n> Analyze git commits from the last 7 days, grouped by feature\n> Create a changelog from recent commits\n> Find all TODO comments and create GitHub issues\n\n# File operations\n> Convert all images in this directory to PNG format\n> Rename all test files to follow the *.test.ts pattern\n> Find and remove all console.log statements\n```\n\n### 🐛 Debugging & Analysis\n\n```bash\n# Performance analysis\n> Identify performance bottlenecks in this React component\n> Find all N+1 query problems in the codebase\n\n# Security audit\n> Check for potential SQL injection vulnerabilities\n> Find all hardcoded credentials or API keys\n```\n\n## Popular Tasks\n\n### 📚 Understand New Codebases\n\n```text\n> What are the core business logic components?\n> What security mechanisms are in place?\n> How does the data flow through the system?\n> What are the main design patterns used?\n> Generate a dependency graph for this module\n```\n\n### 🔨 Code Refactoring & Optimization\n\n```text\n> What parts of this module can be optimized?\n> Help me refactor this class to follow SOLID principles\n> Add proper error handling and logging\n> Convert callbacks to async/await pattern\n> Implement caching for expensive operations\n```\n\n### 📝 Documentation & Testing\n\n```text\n> Generate comprehensive JSDoc comments for all public APIs\n> Write unit tests with edge cases for this component\n> Create API documentation in OpenAPI format\n> Add inline comments explaining complex algorithms\n> Generate a README for this module\n```\n\n### 🚀 Development Acceleration\n\n```text\n> Set up a new Express server with authentication\n> Create a React component with TypeScript and tests\n> Implement a rate limiter middleware\n> Add database migrations for new schema\n> Configure CI/CD pipeline for this project\n```\n\n## Commands & Shortcuts\n\n### Session Commands\n\n- `/help` - Display available commands\n- `/clear` - Clear conversation history\n- `/compress` - Compress history to save tokens\n- `/stats` - Show current session information\n- `/exit` or `/quit` - Exit Qwen Code\n\n### Keyboard Shortcuts\n\n- `Ctrl+C` - Cancel current operation\n- `Ctrl+D` - Exit (on empty line)\n- `Up/Down` - Navigate command history\n\n## Benchmark Results\n\n### Terminal-Bench Performance\n\n| Agent     | Model              | Accuracy |\n| --------- | ------------------ | -------- |\n| Qwen Code | Qwen3-Coder-480A35 | 37.5%    |\n| Qwen Code | Qwen3-Coder-30BA3B | 31.3%    |\n\n## Development & Contributing\n\nSee [CONTRIBUTING.md](./CONTRIBUTING.md) to learn how to contribute to the project.\n\nFor detailed authentication setup, see the [authentication guide](./docs/cli/authentication.md).\n\n## Troubleshooting\n\nIf you encounter issues, check the [troubleshooting guide](docs/troubleshooting.md).\n\n## Acknowledgments\n\nThis project is based on [Google Gemini CLI](https://github.com/google-gemini/gemini-cli). We acknowledge and appreciate the excellent work of the Gemini CLI team. Our main contribution focuses on parser-level adaptations to better support Qwen-Coder models.\n\n## License\n\n[LICENSE](./LICENSE)\n\n## Star History\n\n[![Star History Chart](https://api.star-history.com/svg?repos=QwenLM/qwen-code&type=Date)](https://www.star-history.com/#QwenLM/qwen-code&Date)\n","readmeFilename":"README.md"}