The concept of giving an AI agent a "partner"
On April 6, 2026, GitHub announced "Rubber Duck" mode as an experimental new feature for GitHub Copilot CLI. On the same day, Japanese tech news site Publickey covered it in detail, sparking widespread discussion across the developer community.
The name originates from "rubber duck debugging"—the well-known programmer lore that simply explaining a problem to a rubber duck toy helps you find the bug. Copilot CLI's Rubber Duck mode adapts this metaphor by replacing the toy with another AI model.
In this article, we examine the design philosophy, usage, and comparisons of Rubber Duck mode against other AI coding tools.
What is Rubber Duck mode?
In a nutshell
It is a feature where a second AI model provides a second opinion on the answer generated by your primary AI model. When requesting command or code suggestions in GitHub Copilot CLI with Rubber Duck mode enabled, the same query is sent behind the scenes to a separate model, and the results are cross-referenced.
Concrete use cases
| Scenario | Benefit |
|---|---|
| Shell command generation | A second model warns against dangerous options (such as rm -rf) |
| Code refactoring | A second model highlights introduced bugs or type mismatches |
| Error resolution | Different models suggest different approaches |
| Shell script review | Cross-checking for security vulnerabilities |
Why call it "Rubber Duck"?
GitHub does not view this feature as mere multi-agent orchestration, but positions it as a "partner" feature paying homage to debugging culture. Instead of a human explaining things to a toy duck to gain insights, having a second model explain things sparks insights—that is the essence of the naming.
Technical architecture
Combining model families
Copilot CLI allows you to independently select the primary model (Claude Sonnet, GPT-5 family, Gemini 2.5 family, etc.) and the Rubber Duck model. You can pair different sizes within the same family (e.g., Sonnet + Opus) or combine models from completely different vendors (e.g., GPT + Claude).
Internal flow
# ユーザーの入力
$ gh copilot suggest "nginxの設定を再読込する方法"
# Rubber Duckモード有効時の内部処理
# 1. メインモデル(Claude Sonnet)に問い合わせ
# 2. サブモデル(GPT-5 mini)に同じクエリを投げる
# 3. 両方の回答を差分解析
# 4. 一致 or 差分をユーザーに提示
When differences arise, Copilot CLI does not hastily judge "which one is more likely correct," but instead presents both to the user. The design philosophy leaves the ultimate judgment to humans.
Configuration
Configuration is managed via gh copilot config.
# Rubber Duckモードを有効化
$ gh copilot config set rubberDuck.enabled true
# セカンドオピニオン用モデルを選択
$ gh copilot config set rubberDuck.model claude-sonnet-4-6
# 差分しきい値(信頼度低下時のみ表示)
$ gh copilot config set rubberDuck.threshold 0.7
Comparison with existing tools
Differences from Claude Code
While Claude Code is an autonomous execution tool powered by a single model (Claude), Copilot CLI's Rubber Duck takes the approach of overlaying perspectives from different models. Rather than competitors, they should be seen as differing philosophies. A detailed comparison is also covered in In-Depth Comparison: Cursor 3 vs Claude Code.
| Item | Copilot CLI (Rubber Duck) | Claude Code | Cursor 3 |
|---|---|---|---|
| Model configuration | Multi-model | Single (Claude) | Single (user selection) |
| Ensuring response reliability | Second opinion | Tool execution + evaluation | Human review |
| Execution autonomy | Low to medium | High | Medium |
| Core strengths | Shell operations / investigation | Large-scale refactoring | Daily coding |
Differences from OpenCrew
While the multi-agent trajectory is similar to OpenCrew's multi-agent OS, the difference is that OpenCrew aims for division of roles, whereas Copilot CLI's Rubber Duck focuses on providing alternative perspectives on the same prompt.
Problems solved by Rubber Duck mode
1. The "confident mistakes" of LLMs
The greatest weakness of AI coding with a single model has been confident mistakes (confident hallucinations). As long as the output is natural Japanese or natural-looking code, users find it hard to question. Rubber Duck uses the perspective of a different model to break through cognitive bias.
2. Advance warning for dangerous commands
Shell command generation carries particularly high risks; if a single model outputs a disastrous command like sudo rm -rf /, it can easily slip past detection. Having another model check it against different safety standards allows such commands to be blocked before execution.
3. Mitigating vendor lock-in
Relying on a single model increases the risk of vendor lock-in. Rubber Duck mode creates a routine of concurrently using models from multiple vendors, bringing the secondary benefit of expanding options for users.
Adoption patterns in practice
Pattern 1: Review pipeline
# CIでシェルスクリプトをRubber Duck経由でレビュー
$ gh copilot review --rubber-duck ./deploy.sh
Reviewing deployment scripts or IaC code via Rubber Duck helps catch risks that a single model might have overlooked.
Pattern 2: Pair debugging
During production incident response, comparing hypotheses from two models via Rubber Duck mode increases the speed of root-cause isolation. If one model points to a "DB connection issue" while the other suggests a "load balancer issue," both can be investigated simultaneously.
Pattern 3: Learning support
When junior engineers use Copilot CLI for learning, Rubber Duck mode functions as learning material offering diverse perspectives. Showing that "while it can be written this way, another model would write it like this" effectively broadens their horizons.
Caveats and limitations
1. Increased latency
Because queries are dispatched to two models, response latency generally increases by 1.5x to 2x. In situations where conversational immediacy is critical, keeping it constantly enabled is not recommended.
2. Higher costs
Calling two models simply doubles the API usage cost to 2x. At present, detailed pricing plans have not been disclosed in Publickey's reporting, but in practice it is advisable to reserve Rubber Duck strictly for high-risk tasks.
3. Status as an experimental feature
GitHub explicitly designates this as an "experimental feature," and it is being rolled out gradually starting with select Copilot Pro users. Caution is necessary if you intend to rely on it continuously in production.
Conclusion
GitHub Copilot CLI's "Rubber Duck" mode introduces the novel concept of a "partner" to the AI coding landscape.
- Design philosophy: Shattering confident mistakes through the perspective of a second model
- Target scenarios: Dangerous commands, IaC reviews, pair debugging, and learning support
- Practical usage: Triggered selectively for high-risk operations rather than left permanently on
- Differentiation: While Claude Code focuses on "autonomous execution" and Cursor 3 on "GUI assistance," Copilot CLI delivers a "second opinion"
In 2026, as the risks of single-model dependency have surfaced, Rubber Duck mode may establish a standard pattern for multi-model workflows. For those considering practical implementation of AI coding, please also refer to the Claude Code Practical Workflow.
References








