feat: restructure docs
|
Before Width: | Height: | Size: 119 KiB After Width: | Height: | Size: 119 KiB |
|
Before Width: | Height: | Size: 350 KiB After Width: | Height: | Size: 350 KiB |
|
Before Width: | Height: | Size: 1.5 MiB After Width: | Height: | Size: 1.5 MiB |
|
Before Width: | Height: | Size: 381 KiB After Width: | Height: | Size: 381 KiB |
|
Before Width: | Height: | Size: 126 KiB After Width: | Height: | Size: 126 KiB |
|
Before Width: | Height: | Size: 127 KiB After Width: | Height: | Size: 127 KiB |
|
Before Width: | Height: | Size: 128 KiB After Width: | Height: | Size: 128 KiB |
|
Before Width: | Height: | Size: 126 KiB After Width: | Height: | Size: 126 KiB |
|
Before Width: | Height: | Size: 128 KiB After Width: | Height: | Size: 128 KiB |
|
Before Width: | Height: | Size: 259 KiB After Width: | Height: | Size: 259 KiB |
|
Before Width: | Height: | Size: 125 KiB After Width: | Height: | Size: 125 KiB |
|
Before Width: | Height: | Size: 127 KiB After Width: | Height: | Size: 127 KiB |
|
Before Width: | Height: | Size: 128 KiB After Width: | Height: | Size: 128 KiB |
|
Before Width: | Height: | Size: 126 KiB After Width: | Height: | Size: 126 KiB |
|
Before Width: | Height: | Size: 128 KiB After Width: | Height: | Size: 128 KiB |
|
Before Width: | Height: | Size: 126 KiB After Width: | Height: | Size: 126 KiB |
|
Before Width: | Height: | Size: 125 KiB After Width: | Height: | Size: 125 KiB |
344
docs/index.md
@@ -1,344 +0,0 @@
|
|||||||
# Welcome to Qwen Code documentation
|
|
||||||
|
|
||||||
Qwen 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.
|
|
||||||
|
|
||||||
## 🚀 Why Choose Qwen Code?
|
|
||||||
|
|
||||||
- 🎯 **Free Tier:** Up to 60 requests/min and 2,000 requests/day with your [QwenChat](https://chat.qwen.ai/) account.
|
|
||||||
- 🧠 **Advanced Model:** Specially optimized for [Qwen3-Coder](https://github.com/QwenLM/Qwen3-Coder) for superior code understanding and assistance.
|
|
||||||
- 🏆 **Comprehensive Features:** Includes subagents, Plan Mode, TodoWrite, vision model support, and full OpenAI API compatibility—all seamlessly integrated.
|
|
||||||
- 🔧 **Built-in & Extensible Tools:** Includes file system operations, shell command execution, web fetch/search, and more—all easily extended via the Model Context Protocol (MCP) for custom integrations.
|
|
||||||
- 💻 **Developer-Centric:** Built for terminal-first workflows—perfect for command-line enthusiasts.
|
|
||||||
- 🛡️ **Open Source:** Apache 2.0 licensed for maximum freedom and transparency.
|
|
||||||
|
|
||||||
## Installation
|
|
||||||
|
|
||||||
### Prerequisites
|
|
||||||
|
|
||||||
Ensure you have [Node.js version 20](https://nodejs.org/en/download) or higher installed.
|
|
||||||
|
|
||||||
```bash
|
|
||||||
curl -qL https://www.npmjs.com/install.sh | sh
|
|
||||||
```
|
|
||||||
|
|
||||||
### Install from npm
|
|
||||||
|
|
||||||
```bash
|
|
||||||
npm install -g @qwen-code/qwen-code@latest
|
|
||||||
qwen --version
|
|
||||||
```
|
|
||||||
|
|
||||||
### Install from source
|
|
||||||
|
|
||||||
```bash
|
|
||||||
git clone https://github.com/QwenLM/qwen-code.git
|
|
||||||
cd qwen-code
|
|
||||||
npm install
|
|
||||||
npm install -g .
|
|
||||||
```
|
|
||||||
|
|
||||||
### Install globally with Homebrew (macOS/Linux)
|
|
||||||
|
|
||||||
```bash
|
|
||||||
brew install qwen-code
|
|
||||||
```
|
|
||||||
|
|
||||||
## Quick Start
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Start Qwen Code
|
|
||||||
qwen
|
|
||||||
|
|
||||||
# Example commands
|
|
||||||
> Explain this codebase structure
|
|
||||||
> Help me refactor this function
|
|
||||||
> Generate unit tests for this module
|
|
||||||
```
|
|
||||||
|
|
||||||
### Session Management
|
|
||||||
|
|
||||||
Control your token usage with configurable session limits to optimize costs and performance.
|
|
||||||
|
|
||||||
#### Configure Session Token Limit
|
|
||||||
|
|
||||||
Create or edit `.qwen/settings.json` in your home directory:
|
|
||||||
|
|
||||||
```json
|
|
||||||
{
|
|
||||||
"sessionTokenLimit": 32000
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Session Commands
|
|
||||||
|
|
||||||
- **`/compress`** - Compress conversation history to continue within token limits
|
|
||||||
- **`/clear`** (aliases: `/reset`, `/new`) - Clear conversation history, start a fresh session, and free up context
|
|
||||||
- **`/stats`** - Check current token usage and limits
|
|
||||||
|
|
||||||
> 📝 **Note**: Session token limit applies to a single conversation, not cumulative API calls.
|
|
||||||
|
|
||||||
### Vision Model Configuration
|
|
||||||
|
|
||||||
Qwen 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.
|
|
||||||
|
|
||||||
#### Skip the Switch Dialog (Optional)
|
|
||||||
|
|
||||||
If you don't want to see the interactive dialog each time, configure the default behavior in your `.qwen/settings.json`:
|
|
||||||
|
|
||||||
```json
|
|
||||||
{
|
|
||||||
"experimental": {
|
|
||||||
"vlmSwitchMode": "once"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
**Available modes:**
|
|
||||||
|
|
||||||
- **`"once"`** - Switch to vision model for this query only, then revert
|
|
||||||
- **`"session"`** - Switch to vision model for the entire session
|
|
||||||
- **`"persist"`** - Continue with current model (no switching)
|
|
||||||
- **Not set** - Show interactive dialog each time (default)
|
|
||||||
|
|
||||||
#### Command Line Override
|
|
||||||
|
|
||||||
You can also set the behavior via command line:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Switch once per query
|
|
||||||
qwen --vlm-switch-mode once
|
|
||||||
|
|
||||||
# Switch for entire session
|
|
||||||
qwen --vlm-switch-mode session
|
|
||||||
|
|
||||||
# Never switch automatically
|
|
||||||
qwen --vlm-switch-mode persist
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Disable Vision Models (Optional)
|
|
||||||
|
|
||||||
To completely disable vision model support, add to your `.qwen/settings.json`:
|
|
||||||
|
|
||||||
```json
|
|
||||||
{
|
|
||||||
"experimental": {
|
|
||||||
"visionModelPreview": false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
> 💡 **Tip**: In YOLO mode (`--yolo`), vision switching happens automatically without prompts when images are detected.
|
|
||||||
|
|
||||||
### Authorization
|
|
||||||
|
|
||||||
Choose your preferred authentication method based on your needs:
|
|
||||||
|
|
||||||
#### 1. Qwen OAuth (🚀 Recommended - Start in 30 seconds)
|
|
||||||
|
|
||||||
The easiest way to get started - completely free with generous quotas:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Just run this command and follow the browser authentication
|
|
||||||
qwen
|
|
||||||
```
|
|
||||||
|
|
||||||
**What happens:**
|
|
||||||
|
|
||||||
1. **Instant Setup**: CLI opens your browser automatically
|
|
||||||
2. **One-Click Login**: Authenticate with your qwen.ai account
|
|
||||||
3. **Automatic Management**: Credentials cached locally for future use
|
|
||||||
4. **No Configuration**: Zero setup required - just start coding!
|
|
||||||
|
|
||||||
**Free Tier Benefits:**
|
|
||||||
|
|
||||||
- ✅ **2,000 requests/day** (no token counting needed)
|
|
||||||
- ✅ **60 requests/minute** rate limit
|
|
||||||
- ✅ **Automatic credential refresh**
|
|
||||||
- ✅ **Zero cost** for individual users
|
|
||||||
- ℹ️ **Note**: Model fallback may occur to maintain service quality
|
|
||||||
|
|
||||||
#### 2. OpenAI-Compatible API
|
|
||||||
|
|
||||||
Use API keys for OpenAI or other compatible providers:
|
|
||||||
|
|
||||||
**Configuration Methods:**
|
|
||||||
|
|
||||||
1. **Environment Variables**
|
|
||||||
|
|
||||||
```bash
|
|
||||||
export OPENAI_API_KEY="your_api_key_here"
|
|
||||||
export OPENAI_BASE_URL="your_api_endpoint"
|
|
||||||
export OPENAI_MODEL="your_model_choice"
|
|
||||||
```
|
|
||||||
|
|
||||||
2. **Project `.env` File**
|
|
||||||
Create a `.env` file in your project root:
|
|
||||||
```env
|
|
||||||
OPENAI_API_KEY=your_api_key_here
|
|
||||||
OPENAI_BASE_URL=your_api_endpoint
|
|
||||||
OPENAI_MODEL=your_model_choice
|
|
||||||
```
|
|
||||||
|
|
||||||
**API Provider Options**
|
|
||||||
|
|
||||||
> ⚠️ **Regional Notice:**
|
|
||||||
>
|
|
||||||
> - **Mainland China**: Use Alibaba Cloud Bailian or ModelScope
|
|
||||||
> - **International**: Use Alibaba Cloud ModelStudio or OpenRouter
|
|
||||||
|
|
||||||
<details>
|
|
||||||
<summary><b>🇨🇳 For Users in Mainland China</b></summary>
|
|
||||||
|
|
||||||
**Option 1: Alibaba Cloud Bailian** ([Apply for API Key](https://bailian.console.aliyun.com/))
|
|
||||||
|
|
||||||
```bash
|
|
||||||
export OPENAI_API_KEY="your_api_key_here"
|
|
||||||
export OPENAI_BASE_URL="https://dashscope.aliyuncs.com/compatible-mode/v1"
|
|
||||||
export OPENAI_MODEL="qwen3-coder-plus"
|
|
||||||
```
|
|
||||||
|
|
||||||
**Option 2: ModelScope (Free Tier)** ([Apply for API Key](https://modelscope.cn/docs/model-service/API-Inference/intro))
|
|
||||||
|
|
||||||
- ✅ **2,000 free API calls per day**
|
|
||||||
- ⚠️ Connect your Aliyun account to avoid authentication errors
|
|
||||||
|
|
||||||
```bash
|
|
||||||
export OPENAI_API_KEY="your_api_key_here"
|
|
||||||
export OPENAI_BASE_URL="https://api-inference.modelscope.cn/v1"
|
|
||||||
export OPENAI_MODEL="Qwen/Qwen3-Coder-480B-A35B-Instruct"
|
|
||||||
```
|
|
||||||
|
|
||||||
</details>
|
|
||||||
|
|
||||||
<details>
|
|
||||||
<summary><b>🌍 For International Users</b></summary>
|
|
||||||
|
|
||||||
**Option 1: Alibaba Cloud ModelStudio** ([Apply for API Key](https://modelstudio.console.alibabacloud.com/))
|
|
||||||
|
|
||||||
```bash
|
|
||||||
export OPENAI_API_KEY="your_api_key_here"
|
|
||||||
export OPENAI_BASE_URL="https://dashscope-intl.aliyuncs.com/compatible-mode/v1"
|
|
||||||
export OPENAI_MODEL="qwen3-coder-plus"
|
|
||||||
```
|
|
||||||
|
|
||||||
**Option 2: OpenRouter (Free Tier Available)** ([Apply for API Key](https://openrouter.ai/))
|
|
||||||
|
|
||||||
```bash
|
|
||||||
export OPENAI_API_KEY="your_api_key_here"
|
|
||||||
export OPENAI_BASE_URL="https://openrouter.ai/api/v1"
|
|
||||||
export OPENAI_MODEL="qwen/qwen3-coder:free"
|
|
||||||
```
|
|
||||||
|
|
||||||
</details>
|
|
||||||
|
|
||||||
## Usage Examples
|
|
||||||
|
|
||||||
### 🔍 Explore Codebases
|
|
||||||
|
|
||||||
```bash
|
|
||||||
cd your-project/
|
|
||||||
qwen
|
|
||||||
|
|
||||||
# Architecture analysis
|
|
||||||
> Describe the main pieces of this system's architecture
|
|
||||||
> What are the key dependencies and how do they interact?
|
|
||||||
> Find all API endpoints and their authentication methods
|
|
||||||
```
|
|
||||||
|
|
||||||
### 💻 Code Development
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Refactoring
|
|
||||||
> Refactor this function to improve readability and performance
|
|
||||||
> Convert this class to use dependency injection
|
|
||||||
> Split this large module into smaller, focused components
|
|
||||||
|
|
||||||
# Code generation
|
|
||||||
> Create a REST API endpoint for user management
|
|
||||||
> Generate unit tests for the authentication module
|
|
||||||
> Add error handling to all database operations
|
|
||||||
```
|
|
||||||
|
|
||||||
### 🔄 Automate Workflows
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Git automation
|
|
||||||
> Analyze git commits from the last 7 days, grouped by feature
|
|
||||||
> Create a changelog from recent commits
|
|
||||||
> Find all TODO comments and create GitHub issues
|
|
||||||
|
|
||||||
# File operations
|
|
||||||
> Convert all images in this directory to PNG format
|
|
||||||
> Rename all test files to follow the *.test.ts pattern
|
|
||||||
> Find and remove all console.log statements
|
|
||||||
```
|
|
||||||
|
|
||||||
### 🐛 Debugging & Analysis
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Performance analysis
|
|
||||||
> Identify performance bottlenecks in this React component
|
|
||||||
> Find all N+1 query problems in the codebase
|
|
||||||
|
|
||||||
# Security audit
|
|
||||||
> Check for potential SQL injection vulnerabilities
|
|
||||||
> Find all hardcoded credentials or API keys
|
|
||||||
```
|
|
||||||
|
|
||||||
## Popular Tasks
|
|
||||||
|
|
||||||
### 📚 Understand New Codebases
|
|
||||||
|
|
||||||
```text
|
|
||||||
> What are the core business logic components?
|
|
||||||
> What security mechanisms are in place?
|
|
||||||
> How does the data flow through the system?
|
|
||||||
> What are the main design patterns used?
|
|
||||||
> Generate a dependency graph for this module
|
|
||||||
```
|
|
||||||
|
|
||||||
### 🔨 Code Refactoring & Optimization
|
|
||||||
|
|
||||||
```text
|
|
||||||
> What parts of this module can be optimized?
|
|
||||||
> Help me refactor this class to follow SOLID principles
|
|
||||||
> Add proper error handling and logging
|
|
||||||
> Convert callbacks to async/await pattern
|
|
||||||
> Implement caching for expensive operations
|
|
||||||
```
|
|
||||||
|
|
||||||
### 📝 Documentation & Testing
|
|
||||||
|
|
||||||
```text
|
|
||||||
> Generate comprehensive JSDoc comments for all public APIs
|
|
||||||
> Write unit tests with edge cases for this component
|
|
||||||
> Create API documentation in OpenAPI format
|
|
||||||
> Add inline comments explaining complex algorithms
|
|
||||||
> Generate a README for this module
|
|
||||||
```
|
|
||||||
|
|
||||||
### 🚀 Development Acceleration
|
|
||||||
|
|
||||||
```text
|
|
||||||
> Set up a new Express server with authentication
|
|
||||||
> Create a React component with TypeScript and tests
|
|
||||||
> Implement a rate limiter middleware
|
|
||||||
> Add database migrations for new schema
|
|
||||||
> Configure CI/CD pipeline for this project
|
|
||||||
```
|
|
||||||
|
|
||||||
## Commands & Shortcuts
|
|
||||||
|
|
||||||
### Session Commands
|
|
||||||
|
|
||||||
- `/help` - Display available commands
|
|
||||||
- `/clear` (aliases: `/reset`, `/new`) - Clear conversation history and start a fresh session
|
|
||||||
- `/compress` - Compress history to save tokens
|
|
||||||
- `/stats` - Show current session information
|
|
||||||
- `/exit` or `/quit` - Exit Qwen Code
|
|
||||||
|
|
||||||
### Keyboard Shortcuts
|
|
||||||
|
|
||||||
- `Ctrl+C` - Cancel current operation
|
|
||||||
- `Ctrl+D` - Exit (on empty line)
|
|
||||||
- `Up/Down` - Navigate command history
|
|
||||||
@@ -1,68 +0,0 @@
|
|||||||
[
|
|
||||||
{
|
|
||||||
"label": "Overview",
|
|
||||||
"items": [
|
|
||||||
{ "label": "Welcome", "slug": "docs" },
|
|
||||||
{ "label": "Execution and Deployment", "slug": "docs/deployment" },
|
|
||||||
{ "label": "Architecture Overview", "slug": "docs/architecture" }
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "CLI",
|
|
||||||
"items": [
|
|
||||||
{ "label": "Introduction", "slug": "docs/cli" },
|
|
||||||
{ "label": "Authentication", "slug": "docs/cli/authentication" },
|
|
||||||
{ "label": "Commands", "slug": "docs/cli/commands" },
|
|
||||||
{ "label": "Configuration", "slug": "docs/cli/configuration" },
|
|
||||||
{ "label": "Checkpointing", "slug": "docs/checkpointing" },
|
|
||||||
{ "label": "Extensions", "slug": "docs/extension" },
|
|
||||||
{ "label": "Headless Mode", "slug": "docs/headless" },
|
|
||||||
{ "label": "IDE Integration", "slug": "docs/ide-integration" },
|
|
||||||
{
|
|
||||||
"label": "IDE Companion Spec",
|
|
||||||
"slug": "docs/ide-companion-spec"
|
|
||||||
},
|
|
||||||
{ "label": "Telemetry", "slug": "docs/telemetry" },
|
|
||||||
{ "label": "Themes", "slug": "docs/cli/themes" },
|
|
||||||
{ "label": "Token Caching", "slug": "docs/cli/token-caching" },
|
|
||||||
{ "label": "Trusted Folders", "slug": "docs/trusted-folders" },
|
|
||||||
{ "label": "Tutorials", "slug": "docs/cli/tutorials" }
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "Core",
|
|
||||||
"items": [
|
|
||||||
{ "label": "Introduction", "slug": "docs/core" },
|
|
||||||
{ "label": "Tools API", "slug": "docs/core/tools-api" },
|
|
||||||
{ "label": "Memory Import Processor", "slug": "docs/core/memport" }
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "Tools",
|
|
||||||
"items": [
|
|
||||||
{ "label": "Overview", "slug": "docs/tools" },
|
|
||||||
{ "label": "File System", "slug": "docs/tools/file-system" },
|
|
||||||
{ "label": "Multi-File Read", "slug": "docs/tools/multi-file" },
|
|
||||||
{ "label": "Shell", "slug": "docs/tools/shell" },
|
|
||||||
{ "label": "Web Fetch", "slug": "docs/tools/web-fetch" },
|
|
||||||
{ "label": "Web Search", "slug": "docs/tools/web-search" },
|
|
||||||
{ "label": "Memory", "slug": "docs/tools/memory" },
|
|
||||||
{ "label": "MCP Servers", "slug": "docs/tools/mcp-server" },
|
|
||||||
{ "label": "Sandboxing", "slug": "docs/sandbox" }
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "Development",
|
|
||||||
"items": [
|
|
||||||
{ "label": "NPM", "slug": "docs/npm" },
|
|
||||||
{ "label": "Releases", "slug": "docs/releases" }
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "Support",
|
|
||||||
"items": [
|
|
||||||
{ "label": "Troubleshooting", "slug": "docs/troubleshooting" },
|
|
||||||
{ "label": "Terms of Service", "slug": "docs/tos-privacy" }
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||