Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file not shown.
34 changes: 23 additions & 11 deletions content/admin/concepts/identity-and-access-management/setup-user.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: Setup user
intro: 'The setup user is used to configure authentication and provisioning for {% data variables.product.prodname_emus %}.'
intro: 'The setup user is used only to configure authentication and provisioning for {% data variables.product.prodname_emus %}.'
versions:
ghec: '*'
topics:
Expand All @@ -11,25 +11,37 @@ topics:

## How should I use the setup user?

The setup user is **only** intended to be used for:
The setup user is an administrative account. It is **only** intended to be used for:

* Configuring authentication and provisioning
* SCIM provisioning via its {% data variables.product.pat_generic %}
* Regaining access to your enterprise in the event of an issue with your identity provider, by utilizing the enterprise's recovery codes
* Regaining access to your enterprise in the event of an issue with your identity provider

For other enterprise administration tasks, such as creating organizations, use a provisioned managed user account with the appropriate administrative role.
For other enterprise administration tasks, such as creating organizations, use a **provisioned managed user account** with the appropriate administrative role.

## How do I sign in as the setup user?
## What is the setup user's username?

If you use **{% data variables.product.prodname_dotcom_the_website %}**, the username is your enterprise's shortcode, suffixed with `_admin`. For example: `fabrikam_admin`.

After we create your enterprise, you will receive an **email** inviting you to choose a password for the setup user.
If you use **{% data variables.enterprise.data_residency_site %}**, the username is a randomly generated shortcode, suffixed with `_admin`.

## How do I sign in as the setup user?

When you create the password, you should enable two-factor authentication (2FA) for the account.
After we create your enterprise, you will receive an **email** inviting you to choose a password for the setup user.

Unlike provisioned managed users, the setup user cannot sign in via SSO. Instead, the following applies:
When you create the password, we strongly recommend that you **enable two-factor authentication (2FA)** for the account and **save your recovery codes**.

* **With 2FA enabled**: All subsequent login attempts for the setup user account will require a successful 2FA challenge response. After completing the 2FA challenge, you will be prompted for a recovery code. You can skip this prompt and navigate directly to {% data variables.product.prodname_dotcom_the_website %} to access the setup user account. However, accessing your enterprise settings will always require a recovery code.
* **Without 2FA enabled**: You must provide a recovery code every time you sign in.
Unlike provisioned managed users, the setup user cannot sign in via SSO.

We strongly recommend enabling 2FA on the setup user to avoid needing a recovery code for every sign-in attempt. To avoid being locked out of your account, after enabling single sign-on, **save your recovery codes**. See [AUTOTITLE](/admin/managing-iam/managing-recovery-codes-for-your-enterprise/downloading-your-enterprise-accounts-single-sign-on-recovery-codes#downloading-codes-for-an-enterprise-with-enterprise-managed-users).
- **Without 2FA enabled**, you must provide a recovery code **every** time you sign in.
- If **2FA is enabled**, you can sign in with a successful 2FA challenge response. You only need to provide a recovery code to access enterprise settings.

{% data reusables.enterprise-accounts.emu-password-reset-session %}

## Can I delete the setup user?

The setup user **cannot** be deleted, because it is essential for maintaining authentication and provisioning. The only way to remove the setup user is to delete your enterprise account. See [AUTOTITLE](/admin/managing-your-enterprise-account/deleting-an-enterprise-account).

## Further reading

- [AUTOTITLE](/admin/managing-iam/managing-recovery-codes-for-your-enterprise/downloading-your-enterprise-accounts-single-sign-on-recovery-codes#downloading-codes-for-an-enterprise-with-enterprise-managed-users)
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,6 @@ The command-line interface (CLI) for {% data variables.product.prodname_copilot

{% data variables.copilot.copilot_cli %} gives you quick access to a powerful AI agent, without having to leave your terminal. It can help you complete tasks more quickly by working on your behalf, and you can work iteratively with {% data variables.copilot.copilot_cli %} to build the code you need.

{% data reusables.cli.preview-note-cli %}

## Supported operating systems

* Linux
Expand Down
15 changes: 8 additions & 7 deletions content/copilot/concepts/agents/copilot-cli/autopilot.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,14 +30,14 @@ In autopilot mode, {% data variables.product.prodname_copilot_short %} keeps on

To switch into autopilot mode during an interactive session, press <kbd>Shift</kbd>+<kbd>Tab</kbd> and cycle through the available modes until you reach autopilot mode, then enter your prompt. Use the same keypress to switch from autopilot mode back to the standard interactive mode.

### Benefits of autopilot mode
## Benefits of autopilot mode

* **Hands-off automation:** {% data variables.product.prodname_copilot_short %} completes tasks without needing your input after the initial instruction.
* **Efficiency:** Ideal for well-defined tasks like writing tests, refactoring files, or fixing CI failures. Autopilot is particularly suited for large tasks that require long-running, multi-step sessions.
* **Batch operations:** Useful for scripting and CI workflows where you want {% data variables.product.prodname_copilot_short %} to run to completion.
* **Safety:** Autopilot mode allows {% data variables.product.prodname_copilot_short %} to take multiple self-directed steps to finish your task. `--max-autopilot-continues` limits how many steps it can take before stopping, to avoid infinite loops. Also, in autopilot mode, {% data variables.product.prodname_copilot_short %} cannot carry out any actions that require permission unless you explicitly grant it full permissions.

### Things to consider
## Things to consider

* **Task suitability:** Autopilot mode is best for well-defined tasks. It is not ideal for open-ended exploration, feature development without a clear goal, or tasks where you want to guide the ongoing work.

Expand All @@ -47,11 +47,11 @@ To switch into autopilot mode during an interactive session, press <kbd>Shift</k

* **Cost:** Autopilot mode uses premium requests in the same way that these are used when you are working in the standard interactive interface. In the standard mode, one premium request is used when you submit your initial prompt, and then an additional premium request is used each time you reply to a question in the CLI and the agent uses your response to interact with the AI model. The same applies in autopilot mode, except that you are not involved in initiating the next step, so the use of additional premium requests happens without your direct involvement.

The billable premium request usage is determined using a multiplier. The multiplier varies, depending on which model you use. Use the `/model` slash command to see the currently selected model and its multiplier, and change the model if required. For more information, see [AUTOTITLE](/copilot/concepts/billing/copilot-requests) and [AUTOTITLE](/copilot/concepts/billing/billing-for-individuals#about-premium-requests).
{% data reusables.cli.billable-prus %}

Each time the agent continues autonomously it will display a message in the CLI telling you how many premium requests have been used by that continuation step—taking account of the model multiplier—for example: `Continuing autonomously (3 premium requests)`.

### Permissions
## Permissions

When entering autopilot mode, if you have not already granted {% data variables.product.prodname_copilot_short %} all permissions, a message is displayed prompting you to choose between three options:

Expand All @@ -63,7 +63,7 @@ When entering autopilot mode, if you have not already granted {% data variables.

You will get the best results from autopilot mode if you enable all permissions. If you choose to continue with limited permissions, {% data variables.product.prodname_copilot_short %} will automatically deny any tool requests that require approval, which may prevent it from completing certain tasks. You can change your mind later and grant full permissions, during an autopilot session, by using the `/allow-all` command (or its alias `/yolo`).

### Comparing autopilot mode, `--allow-all`, and `--no-ask-user`
## Comparing autopilot mode, `--allow-all`, and `--no-ask-user`

`--allow-all`, and its alias `--yolo`, are permissions-related options that you can pass to the `copilot` command when you start an interactive session. For a full list of available options, see [AUTOTITLE](/copilot/reference/cli-command-reference#command-line-options).

Expand All @@ -82,7 +82,7 @@ Autopilot mode is ideal for implementing a large, detailed plan of work. Often y

For example:

* Ctart an interactive {% data variables.copilot.copilot_cli_short %} session.
* Start an interactive {% data variables.copilot.copilot_cli_short %} session.

Optionally, you can include the `--allow-all` option to grant permissions, and the `--max-autopilot-continues` option to set a maximum continuation limit for autopilot mode during the session. For example, you could start the session with `copilot --allow-all --max-autopilot-continues 10` to give the agent permission to use all tools, paths, and URLs, and set a maximum continuation limit for autopilot to 10.

Expand All @@ -104,10 +104,11 @@ Example usage:
{% data reusables.cli.autopilot-programmatic-prompt %}
```

### Summary
## Summary

Use autopilot mode when you want {% data variables.product.prodname_copilot_short %} to take over a task and work to completion without your involvement. It's best for clear, well-defined tasks where you trust {% data variables.product.prodname_copilot_short %} to make reasonable decisions.

## Further reading

* [AUTOTITLE](/copilot/how-tos/copilot-cli/use-copilot-cli#get-copilot-to-work-autonomously)
* [AUTOTITLE](/copilot/concepts/agents/copilot-cli/fleet)
72 changes: 72 additions & 0 deletions content/copilot/concepts/agents/copilot-cli/fleet.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
---
title: Running tasks in parallel with the `/fleet` command
shortTitle: Parallel task execution
allowTitleToDifferFromFilename: true
intro: 'The `/fleet` slash command lets {% data variables.copilot.copilot_cli_short %} break down a complex request into smaller tasks and run them in parallel, maximizing efficiency and throughput.'
versions:
feature: copilot
topics:
- CLI
contentType: concepts
category:
- Learn about Copilot CLI
---

## Introduction

The `/fleet` slash command in {% data variables.copilot.copilot_cli_short %} is designed to take an implementation plan and break it down into smaller, independent tasks that can be executed in parallel by subagents. This allows for faster completion of complex requests that involve multiple steps.

This article gives an overview of the `/fleet` slash command. For details of how to use it, see [AUTOTITLE](/copilot/how-tos/copilot-cli/speeding-up-task-completion).

## How `/fleet` works

When you use the `/fleet` command, the main {% data variables.product.prodname_copilot_short %} agent analyzes the prompt and determines whether it can be divided into smaller subtasks. It will assess, based on the nature of the subtasks and their dependencies, whether these can be efficiently executed by subagents. If it decides to assign some or all of the subtasks to subagents, it will act as orchestrator, managing the workflow and dependencies between the subtasks. Where possible, the orchestrator agent will run the subagents in parallel, allowing the whole task to be completed more quickly.

## Benefits of using `/fleet`

* **Speed of task completion**: The main benefit of using the `/fleet` command is that a large, multi-part task can be completed more quickly by running subtasks in parallel. Whether parts of a large task can be worked on in parallel will be determined by the dependencies between the subtasks. Some tasks, such as creating a suite of tests for a new feature, are well suited to parallelization and will typically complete faster when you use the `/fleet` slash command.

* **Specialization**: If you've defined custom agents that are specialized for certain types of work, these may be used by the subagents. This allows for specialization, with the subagents using the custom agents best suited to the specific subtask they are working on.

By default, subagents use a low-cost AI model. However, you can tell {% data variables.product.prodname_copilot_short %} to use a specific model for part of the work. For example, within a larger prompt, you could specify `... Use GPT-5.3-Codex, to create ... Use Claude Opus 4.5, to analyze ...`. If a subagent uses a custom agent profile that specifies a particular AI model, then that model will be used by the subagent. Using a specific model may produce better quality results for particular types of subtask.

If custom agents are available, {% data variables.product.prodname_copilot_short %} will decide whether to use one to complete a particular subtask. However, if you know that a specific custom agent is well-suited to a particular subtask, you can specify this in your prompt by using `@CUSTOM-AGENT-NAME`. For example, within a larger prompt: `... Use @test-writer to create comprehensive unit tests for ...`.

For more information, see [AUTOTITLE](/copilot/how-tos/copilot-cli/customize-copilot/create-custom-agents-for-cli).

* **Context window**: Each subagent has its own context window, separate from the main agent and other subagents. This allows each subagent to focus on its specific task without being overwhelmed by the full context of the larger task.

## When should you use `/fleet`?

* **Large or complex tasks**: When your request involves multiple independent steps, such as refactoring several files, updating dependencies, or running tests across modules.
* **Parallelizable work**: If your task can be split into subtasks that don’t depend on each other.
* **Automated workflows**: When you want the quickest possible completion of a large task—for example, when you're using autopilot mode to allow {% data variables.product.prodname_copilot_short %} to work autonomously.

## Points to consider

* **Premium request usage**: When you submit a prompt in the CLI and {% data variables.product.prodname_copilot_short %} interacts with the selected large language model (LLM) to generate a response, this consumes premium requests. The number of premium requests consumed depends on the model that's currently selected. More interactions with the LLM result in more premium requests being consumed.

Each subagent can interact with the LLM independently of the main agent, so splitting work up into smaller tasks that are run by subagents may result in more LLM interactions than if the work was handled by the main agent. Using `/fleet` in a prompt may therefore cause more premium requests to be consumed.

{% data reusables.cli.billable-prus %}

* **Task composition**: Work is best suited to execution by multiple subagents if it can be decomposed into independent subtasks. If your request is inherently sequential, using the `/fleet` slash command mode may not provide any benefit.

## Relationship between `/fleet` and autopilot mode

The `/fleet` slash command is often used in autopilot mode, but these are distinct features that can be used independently:

* **Autopilot mode** allows {% data variables.product.prodname_copilot_short %} to continue working autonomously until a task is complete, auto-responding to requests that would otherwise require user intervention.
* **`/fleet`** is all about using subagents to execute tasks in parallel, while the main agent manages the overall workflow. You can use the `/fleet` slash command in interactive sessions independently of autopilot mode.

A typical workflow for using `/fleet` in autopilot mode might look like this:

1. Press <kbd>Shift</kbd>+<kbd>Tab</kbd> to switch into plan mode and work with {% data variables.copilot.copilot_cli_short %} to create an implementation plan.
1. Recognize that the completed plan contains multiple elements and looks like a good candidate for `/fleet`.
1. Select the **Accept plan and build on autopilot + /fleet** option that's displayed when the plan is complete.

For more information about autopilot mode, see [AUTOTITLE](/copilot/concepts/agents/copilot-cli/autopilot).

## Further reading

* [AUTOTITLE](/copilot/how-tos/copilot-cli/speeding-up-task-completion)
1 change: 1 addition & 0 deletions content/copilot/concepts/agents/copilot-cli/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,6 @@ children:
- /about-cli-plugins
- /comparing-cli-features
- /autopilot
- /fleet
contentType: concepts
---
2 changes: 1 addition & 1 deletion content/copilot/get-started/features.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ An autonomous AI agent that can make code changes for you. You can assign a {% d

You can use third-party coding agents alongside {% data variables.copilot.copilot_coding_agent %}. See [AUTOTITLE](/free-pro-team@latest/copilot/concepts/agents/about-third-party-agents).

### {% data variables.copilot.copilot_cli_short %} ({% data variables.release-phases.public_preview %})
### {% data variables.copilot.copilot_cli_short %}

A command line interface that lets you use {% data variables.product.prodname_copilot_short %} from within the terminal. You can get answers to questions, or you can ask {% data variables.product.prodname_copilot_short %} to make changes to your local files. You can also use {% data variables.copilot.copilot_cli_short %} to interact with {% data variables.product.prodname_dotcom_the_website %}—for example, listing your open pull requests, or asking {% data variables.product.prodname_copilot_short %} to create an issue. See [AUTOTITLE](/copilot/concepts/agents/about-copilot-cli).

Expand Down
6 changes: 6 additions & 0 deletions content/copilot/how-tos/copilot-cli/cli-best-practices.md
Original file line number Diff line number Diff line change
Expand Up @@ -414,6 +414,12 @@ Run the linter and write all errors to `migration-checklist.md` as a checklist.
Then fix each issue one by one, checking them off as you go.
```

### Autonomous task completion

Switch into autopilot mode to allow {% data variables.product.prodname_copilot_short %} to work autonomously on a task until it is complete. This is ideal for long-running tasks that don't require constant supervision. For more information, see [AUTOTITLE](/copilot/concepts/agents/copilot-cli/autopilot).

Optionally, you can usually speed up large tasks by using the `/fleet` slash command at the start of your prompt to allow {% data variables.product.prodname_copilot_short %} to break the task into parallel subtasks that are run by subagents. For more information, see [AUTOTITLE](/copilot/concepts/agents/copilot-cli/fleet).

## 7. Team guidelines

### Recommended repository setup
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -75,10 +75,7 @@ You can also set the `COPILOT_CUSTOM_INSTRUCTIONS_DIRS` environment variable to

{% data reusables.copilot.custom-instructions-note %}

{% data variables.copilot.copilot_cli_short %} caches instructions after they have been read. If you edit an instructions file, and you want to ensure that the changes are used, you must do one of the following:

* Restart {% data variables.copilot.copilot_cli_short %}.
* Use `/resume SESSION-ID`. You can use the `/session` command to find the ID of the current session.
If you make changes to your custom instructions during a CLI session, your changes are available for use by {% data variables.product.prodname_copilot_short %} the next time you submit a prompt in the current, or future, sessions.

## Further reading

Expand Down
Loading