microsoft/copilot-cli-modes
Comprehensive guide to all Copilot CLI running modes: Interactive, Plan, Autopilot, Fleet, Research, Chronicle, and Delegate. Use when asked about CLI modes, workflows, or how to use Copilot CLI effectively.
npx skills add https://github.com/microsoft/haste --skill copilot-cli-modes
Copilot CLI provides 7 distinct running modes, each optimized for different tasks. Understanding when to use each mode is the key to effective AI-assisted development. Modes can be combined — for example, Plan → Autopilot + Fleet is a common power workflow.
| Mode | Trigger | Autonomy | Modifies Code? | Best For |
|------|---------|----------|----------------|----------|
| Interactive | Default | Low — asks at every step | Yes (with permission) | Day-to-day coding, Q&A, small changes |
| Plan | Shift+Tab or /plan | Low — creates plan, waits for approval | No (planning only) | Complex features, multi-file refactors |
| Autopilot | Shift+Tab (cycle) or --autopilot | High — works until done | Yes (needs --allow-all) | Well-defined tasks, CI, batch ops |
| Fleet | /fleet prefix | High — parallel subagents | Yes | Large parallelizable tasks |
| Research | /research | High — autonomous research | No (report only) | Deep technical investigation |
| Chronicle | /chronicle | N/A — reads history | No | Standups, tips, self-improvement |
| Delegate | /delegate | Full — runs in cloud | Yes (creates PR) | Async work, other repos |
The standard back-and-forth mode. You prompt, Copilot responds, you guide the next step. Copilot asks for permission before making changes and checks in with you at decision points.
Codebase onboarding:
How is logging configured in this project?
What's the pattern for adding a new API endpoint?
Explain the authentication flow
Quick fix:
The login form doesn't validate email format. Fix the validation in src/components/LoginForm.tsx
Git operations:
Create a PR for this branch with a detailed description
Rebase this branch against main
Shift+Tab to cycle to other modes/model to switch AI models mid-session/clear or /new to start fresh between unrelated tasks/clear between unrelated tasks/context to see how much context window you've usedcopilot-instructions.md automaticallyA structured planning mode where Copilot analyzes your request, asks clarifying questions, and produces a detailed implementation plan with tasks and checkboxes — before writing any code. Plans are saved to plan.md in your session folder.
Shift+Tab to toggle into plan mode (prompts show "plan" indicator)/plan command from normal modeFeature planning:
/plan Add OAuth2 authentication with Google and GitHub providers
Refactoring:
/plan Migrate all class components to functional components with hooks
Architecture change:
/plan Extract the payment processing logic into a separate microservice
plan.mdProceed with the planCtrl+Y — open plan in your default Markdown editor/session plan — view current plan in CLI1. Explore: "Read the authentication files but don't write code yet"
2. Plan: /plan Implement password reset flow
3. Review: Check the plan, suggest modifications
4. Build: "Proceed with the plan" (or autopilot)
5. Verify: "Run the tests and fix any failures"
6. Commit: "Commit these changes with a descriptive message"
Hands-off autonomous mode. Copilot works through a task without waiting for your input after each step, continuing until the task is complete, a problem occurs, or you press Ctrl+C.
Shift+Tab to cycle to autopilot mode--autopilot flag from command lineImplement a reviewed plan:
# After creating a plan in plan mode:
"Accept plan and build on autopilot"
Programmatic usage (CI/scripts):
copilot --autopilot --yolo --max-autopilot-continues 10 -p "Write unit tests for all functions in src/utils/"
Batch linting:
copilot --autopilot --allow-all -p "Run the linter, fix all errors, and commit the changes"
When entering autopilot, you're prompted:
--allow-all / --yoloUse /allow-all or /yolo mid-session to grant full permissions later.
--max-autopilot-continues N — cap the number of autonomous steps (prevents runaway loops)Ctrl+C — stop the agent at any timeContinuing autonomously (3 premium requests)| Flag | What It Does | Autonomy Level |
|------|-------------|----------------|
| --allow-all / --yolo | Auto-approves all tool permissions | Still interactive (asks at decision points) |
| --no-ask-user | Suppresses clarifying questions | Semi-autonomous (no extra premium requests) |
| --autopilot | Full autonomous execution | Fully autonomous (continues until done) |
/fleet)Parallel task execution. The main agent acts as orchestrator, breaking a large task into independent subtasks and assigning them to subagents that run simultaneously. Each subagent has its own context window.
Prefix your prompt with /fleet:
/fleet Write comprehensive unit tests for all controllers in src/controllers/
Parallel test writing:
/fleet Write unit tests for UserService, OrderService, and PaymentService. Each test file should cover happy paths, error cases, and edge cases.
Multi-file refactoring:
/fleet Rename all instances of "userId" to "accountId" across the following directories: src/models/, src/services/, src/controllers/
Documentation generation:
/fleet Generate JSDoc comments for all exported functions in src/utils/, src/helpers/, and src/lib/
Using specific agents per subtask:
/fleet Use @tester to create tests for src/auth/. Use @technical-writer to update the API docs in docs/. Use @security-auditor to review src/payments/.
Using specific models per subtask:
/fleet Use Claude Opus 4.5 to refactor the database layer. Use GPT-5.3-Codex to generate the migration scripts.
The most powerful workflow: Plan → Autopilot + Fleet
Shift+Tab into plan modeFleet spawns multiple subagents, each consuming premium requests independently. A /fleet task may use more total premium requests than the same task done sequentially. Use /model to check your current model's multiplier.
/research)A specialized deep-research agent that produces comprehensive Markdown reports with citations. Unlike normal chat (optimized for quick answers), /research is optimized for thoroughness — reports can be hundreds of lines with architecture diagrams, code snippets, and citations.
/research TOPIC
Codebase architecture:
/research What is the architecture of this codebase?
→ Produces architecture diagrams, component breakdowns, data flow descriptions
Technology comparison:
/research What's the difference between JWT and session-based authentication? Include pros, cons, and when to use each.
→ Narrative explanation with trade-off tables
Internal patterns:
/research How are feature flags implemented at our organization?
→ Searches org repos first, maps internal patterns
Deep-dive into a component:
/research How is the session management system implemented in this repo? Trace the full flow from login to token refresh.
→ Walks through actual code, follows imports, traces call chains
How a technology works:
/research How does React implement concurrent rendering? Show the actual source code and internal architecture.
→ Fetches real source from GitHub, prioritizes code over docs
Ctrl+Y — open the latest report in your editor/share gist research — save as a GitHub gist/share file research [PATH] — save to a local file~/.copilot/session-state/SESSION-ID/research/The agent adapts its output format based on query type:
| Query Type | Format | Example |
|-----------|--------|---------|
| Process/how-to | Step-by-step guide | "How do I add an endpoint?" |
| Conceptual | Narrative + trade-offs | "What's the difference between X and Y?" |
| Technical deep-dive | Architecture diagrams + code | "How is X implemented?" |
Tip: Be explicit about the report type you want. "Give me a technical deep-dive into X with architecture diagrams" produces better results than "What is X?"
/chronicle)A session history analysis tool. Copilot records every session locally (prompts, responses, tools used, files modified) in a SQLite database. Chronicle reads this history to generate standups, tips, and self-improving custom instructions.
> Note: Chronicle is experimental. Enable with /experimental on or --experimental.
Standup report:
/chronicle standup
/chronicle standup last 3 days
→ Summarizes recent work: branch names, PR links, status checks
Personalized tips:
/chronicle tips
→ Analyzes your usage patterns and suggests features/workflows you're underusing
Self-improving instructions:
/chronicle improve
→ Analyzes sessions where Copilot misunderstood you or there was lots of back-and-forth, then generates custom instructions to fix the patterns
Rebuild session index:
/chronicle reindex
→ Rebuilds the session store from disk (after deletion, migration, or corruption)
Monday morning standup:
/chronicle standup last 3 days
→ "Last Friday you worked on the auth refactor (branch: feat/oauth2), created PR #42, and fixed 3 test failures. Thursday you debugged the payment timeout issue..."
Discovering unused features:
/chronicle tips
→ "You rarely use plan mode before complex tasks. Try /plan for multi-file changes — models achieve higher success rates with a concrete plan."
Fixing recurring miscommunication:
/chronicle improve
→ Generates a custom instruction like: "When I say 'fix the tests', I mean fix failing tests only — do not refactor passing tests or add new ones."
~/.copilot/session-state/{session-id}/
├── events.jsonl # Full session history
├── workspace.yaml # Metadata
├── plan.md # Plans (if created)
└── research/ # Research reports
~/.copilot/session-store.db # SQLite index for chronicle
/session — view current session info/session checkpoints — view compaction checkpoints/session plan — view current plancopilot --continue — resume last sessioncopilot --resume — pick a session to resume/delegate)Offloads a task to Copilot cloud agent, which runs asynchronously and creates a pull request with the results. You can continue working locally while the cloud agent works in the background.
/delegate PROMPT
Tangential task:
/delegate Add dark mode support to the settings page
→ Cloud agent creates a PR while you keep coding locally
Documentation:
/delegate Update the API documentation to reflect the new authentication endpoints
Cross-repo work:
/delegate In the frontend repo, update the API client to use the new /v2/users endpoint
| Scenario | Mode Combination | Command |
|----------|-----------------|---------|
| Quick fix | Interactive | Just type the prompt |
| Complex feature | Plan → Autopilot | Shift+Tab to plan, then "Accept plan and build on autopilot" |
| Large parallelizable task | Plan → Autopilot + Fleet | Plan, then "Accept plan and build on autopilot + /fleet" |
| Deep investigation | Research | /research How does X work? |
| CI automation | Autopilot (programmatic) | copilot --autopilot --yolo --max-autopilot-continues 10 -p "..." |
| Background work | Delegate | /delegate Update the docs |
| Morning ritual | Chronicle | /chronicle standup last 3 days |
| Productivity review | Chronicle | /chronicle tips then /chronicle improve |
Is the task well-defined?
├── No → Is it a question?
│ ├── Quick question → Interactive mode
│ └── Deep investigation → /research
└── Yes → Is it complex (multi-file)?
├── No → Interactive mode
└── Yes → Plan mode first
└── Plan approved?
├── Parallelizable? → Autopilot + /fleet
├── Sequential? → Autopilot
└── Tangential? → /delegate
Take microsoft/copilot-cli-modes from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.