Start here
Four things to know before you touch a setting
1. The app is a place to run agents, not a chat window. The Copilot desktop app is built for agent-driven work: you can run several agent sessions at once, each on its own branch, and pick the model and the level of autonomy per session.
2. You are billed by tokens now, not by "requests." On 1 June 2026 every Copilot plan moved to usage-based billing with GitHub AI Credits. One credit is one cent. Every model has a published per-million-token rate for input, output, and cached tokens.
3. Inline code completions are still free. Completions and next-edit suggestions are not billed in credits on paid plans. Only chat, agents, CLI, code review and similar features draw down credits.
4. Model choice is the single biggest cost lever you control. Cheapest to priciest on the menu is roughly 40× on output tokens. Everything else in this manual is downstream of that one habit.
Watch the meter
How the money actually works
A token is roughly three quarters of a word. Everything the model reads is input tokens, everything it writes is output tokens, and repeated context can be cached at a lower rate. Output is always the expensive side — usually 5–6× the input rate.
Your plan comes with a monthly allowance of credits. When it runs out, additional usage bills at the same published rates if your organization allows it, or stops if a budget cap is set.
| Plan | Monthly cost | Included AI credits | Notes |
|---|---|---|---|
| Pro | $10 | $15 | Unlimited completions; light chat and agent use. |
| Pro+ | $39 | $70 | For heavy individual agent use. |
| Max | $100 | $200 | Only worth it if agents run for hours daily. |
| Business | $19 / user | $19 / user, pooled | Most corporate seats. Credits pool across the org. |
| Enterprise | $39 / user | $39 / user, pooled | Adds SSO and admin controls. |
You are almost certainly on a company Business or Enterprise seat, so your credits come from a shared pool and your admin may have set a budget. Ask two questions before you build anything ambitious: what is our monthly credit budget per user, and is additional paid usage enabled or hard-capped? That answer sets the ceiling on how many scheduled agents you can responsibly run.
Pick a model
The cost dial
A shortlist of what you'll actually reach for, positioned by price per million output tokens — the number that moves your bill. Every model and every rate is in the Model catalog tab.
Input rates run roughly one fifth of output. Two promotions are live: GPT-5.6 Sol at half price through 3 Sep 2026, and Gemini 3.6 / 3.7 Flash at reduced rates through 31 Dec 2026.
Which one for which job
| Your task | Use | Why |
|---|---|---|
| Tidy notes, rename files, reformat a table, quick "what does this mean" | GPT-5.6 Luna GPT-5.4 nano | Lightweight work at a fraction of a cent. Never spend a frontier model on formatting. |
| Draft a status update, summarize a meeting, write a first-pass email | GPT-5 mini Claude Haiku 4.5 | Fast, competent prose. Good enough that you edit rather than rewrite. |
| Everyday agent runs: weekly digest, triage a list, follow a checklist | Claude Sonnet 5 GPT-5.6 Terra Grok 4.6 | All three are classed as general-purpose coding and agent models. Your workhorse tier. |
| Reading a long document set and pulling out the through-line | Gemini 3.1 Pro | Built for long context and technical analysis. Watch the long-context tier above 200K input tokens. |
| Writing or fixing Python, DAX, M, SQL | GPT-5.3-Codex Claude Sonnet 5 | Codex is tuned for agentic engineering work and lands complex changes without long instructions. |
| Hard thinking: a vendor comparison, an architecture call, a business case you'll defend | Claude Opus 5 GPT-5.6 Sol | Deep reasoning tier. Reach for it deliberately, on a fresh session, once you know what you're asking. |
| Long autonomous runs where you won't be watching | Claude Fable 5 | Built for first-attempt correctness over long horizons. Also the fastest way to burn a month of credits — set a session limit first. |
| Not sure | Auto | Copilot routes to a suitable model and paid plans get a discount on model cost for using it. The correct default. |
Start on Auto or a cheap model. Escalate only when the answer disappoints you. Most people do the reverse — pin the most powerful model and leave it there for a month. Escalating costs you one re-run; defaulting high costs you every run.
Steer the session
Modes, effort, and knowing when to stop
Each session has three dials: the model, the reasoning effort, and the autonomy mode. The modes matter as much as the model.
| Mode | What happens | Use it when |
|---|---|---|
| Quick chat | A conversation with no branch or workspace attached. | Scoping and questions. Cheapest way to think out loud. |
| Plan | The agent writes a plan and waits for approval before acting. | Anything unfamiliar or expensive. Catching a wrong plan costs one cheap turn. |
| Interactive | You and the agent work together, step by step. | Work where your judgment is part of the loop. |
| Autopilot | The agent runs to completion on its own. | Only for tasks you've already run manually and trust. Pair with a cheaper model and a credit limit. |
Three moves that save real money
- Start a fresh session when you switch tasks. Context carries forward and you pay to re-read it every turn.
- Let agents run to completion. Inside a run, the tool calls the agent makes on its own are part of the run — it's your prompts that start the meter. Ten interruptions cost more than one good brief.
- Run
/chronicle cost tipsweekly. The app will tell you where your own usage is expensive.
Set up the shop
Give yourself a workspace the agents can see
The Copilot app works on repositories — folders of files tracked by Git. It has no idea what your job is until something is written down in a folder it can read. So the first build is not an agent. It's a private repository that acts as your work brain.
work-brain/
├── AGENTS.md # who you are, how you want output written
├── context/
│ ├── portfolio.md # your initiatives, one section each
│ ├── stakeholders.md # who cares about what, and how they like it
│ └── glossary.md # your company's acronyms and systems
├── inbox/ # raw paste-ins: notes, exports, transcripts
├── log/ # your running work record
├── briefs/ # agent output: meeting prep, digests
└── .github/
└── agents/ # your agent definitions live here
├── meeting-prep.agent.md
├── weekly-digest.agent.md
└── intake.agent.md
The AGENTS.md file at the root is read by every agent, every session. Highest-leverage file you will write.
# Working context
I am a digital transformation advisor at an oil and gas operator.
My audience is a mix of operations leaders, engineers, and IT.
I am not a software engineer — explain technical choices in plain language.
## How to write for me
- Lead with the decision or the answer. No throat-clearing.
- Short paragraphs. Bullets only when the content is genuinely a list.
- Flag assumptions explicitly. If a source is missing, say so — never invent
a number, a date, a name, or a system of record.
- Use our terms from context/glossary.md. Spell out an acronym on first use.
## Standing rules
- Never write anything to files outside this repository.
- Never include personal data, credentials, or anything marked confidential
in generated output.
- When you summarize, cite the file in inbox/ or log/ you took it from.
## Files worth reading before you start
- context/portfolio.md — what I'm currently working on
- context/stakeholders.md — who I write for
- log/ — my running record, newest file is most relevant
Build the crew
Three agents that earn their keep
A custom agent is a markdown file with a short header. It gives Copilot a role, a limited set of tools, and a fixed model. Commit it to your default branch and it appears in the picker.
Restricting tools isn't fussiness — an agent that can't edit files can't wreck anything, and it costs less because it does less. The model line is how you stop a routine job from silently running on your most expensive model.
1. Intake — turns a mess into a usable note
---
name: intake
description: Cleans raw pasted notes, transcripts, and exports into a
structured note filed under log/, with decisions and actions pulled out.
tools: ["read", "search", "edit"]
model: GPT-5 mini
---
You normalize raw material into a consistent note. You never editorialize
and you never add facts that are not in the source.
When given a file in inbox/:
1. Read it in full before writing anything.
2. Produce a new file in log/ named YYYY-MM-DD-slug.md with this structure:
# <Title> — <date>
**Source:** <inbox filename> **Attendees / origin:** <if stated>
## What happened
Three to six sentences of plain summary.
## Decisions
- Decision — who made it — date if known
## Actions
- [ ] Action — owner — due date if known
## Open questions
- Question — who can answer it
## Unclear
- Anything ambiguous in the source. Do not resolve it yourself.
3. Leave the original file in inbox/ untouched.
If a section has no content, write "None recorded." Never guess an owner
or a date.
2. Meeting prep — the one you'll use every day
---
name: meeting-prep
description: Builds a one-page prep brief for a specific upcoming meeting
from the work log, the portfolio, and stakeholder notes.
tools: ["read", "search", "edit"]
model: Claude Sonnet 5
---
You prepare me to walk into a meeting without re-reading everything.
Ask for the meeting name and attendees if I have not given them. Then read
context/stakeholders.md, context/portfolio.md, and the three most recent
files in log/ that mention the same topic or people.
Write briefs/YYYY-MM-DD-<meeting-slug>.md, one page maximum:
## Where we left off
Three sentences. What was agreed last time and what has moved since.
## What each person walks in caring about
One line per attendee, drawn from stakeholders.md. If someone is not in
that file, say "no prior context on file" — do not speculate.
## What I owe them
Open commitments from log/ where I am the owner, with the date promised.
## What they owe me
Open commitments where someone else is the owner, and how overdue.
## Three questions worth asking
Specific to this meeting. Not generic.
## Risks I should be ready for
Only risks evidenced in the log. Name the file each one came from.
Hard rules: no filler, no restating the agenda back to me, every claim
traceable to a file. If the log is thin on this topic, say so in one line
at the top instead of padding the brief.
3. Weekly digest — the "what have I been doing" machine
---
name: weekly-digest
description: Compiles the week's log files into a status update written for
leadership, plus a short private list of what slipped.
tools: ["read", "search", "edit"]
model: Claude Sonnet 5
---
You compile, you do not embellish.
Read every file in log/ dated within the last seven days, plus
context/portfolio.md for initiative names and framing.
Write briefs/YYYY-Www-digest.md with two clearly separated parts.
PART ONE — Send-ready update (aim for 250 words)
Written for an operations leader who has fifteen seconds. Organized by
initiative, not chronologically. Each item: what moved, what it unblocks,
what happens next. Outcomes, not activity. No adjectives.
PART TWO — For my eyes only
- Commitments I made that I have not delivered, with days elapsed
- Items that appeared two weeks running with no movement
- Anything I flagged as a risk that no one has picked up
Never invent progress. If an initiative had no activity this week, list it
under a short "No movement" heading rather than dressing up old news.
Easiest path: in the app or on GitHub, open the agents view and choose Create an agent — it scaffolds a file in .github/agents/. Rename it, paste the content, commit to your default branch, and it shows up in the dropdown. Creating the files by hand works the same.
Put it on a timer
Automations: the agent runs without you
An automation is a saved prompt with a trigger — hourly, daily, weekly, or on a repository event. In the app: Automations tab, then New automation. You set the name, prompt, trigger, allowed tools, and model. Tokens bill to whoever created it, so a badly scoped daily automation is a standing order against your credit pool.
- The repository must be private or internal. Not available on public repos.
- Copilot cloud agent must be enabled for that repository.
- On a Business or Enterprise seat, an admin may need to enable it first.
Three worth setting up, in order
Using the weekly-digest agent, compile last week's log files into
briefs/ following the agent's format exactly. Open a pull request titled
"Weekly digest — week of <date>" so I can review it before it counts as
final. If fewer than two log files exist for the period, stop and open the
PR with a single line saying the log is empty for that week.
Check inbox/ for files added in the last 24 hours that have no matching
note in log/. For each one, run the intake agent to produce the structured
note. Do not modify anything already in log/. If inbox/ has nothing new,
do nothing and end the run.
Scan log/ for every unchecked action item where I am the owner. Produce
briefs/open-commitments.md as a single table: item, who I promised it to,
date promised, days elapsed, and the source file. Sort by days elapsed,
oldest first. Overwrite the previous version. Add no commentary.
Run each by hand three or four times before scheduling it. You will rewrite the prompt every one of those times. A scheduled automation producing mediocre output isn't neutral — it costs credits weekly and trains you to ignore its output.
Work around the wall
Feeding it your work without connectors
No MCP connectors means Copilot cannot reach into your mail, calendar, Teams, or SharePoint. The honest framing is a division of labor:
- Microsoft 365 Copilot is your retrieval layer. It already has sanctioned access to your mail, meetings, and documents. Use it to gather and summarize.
- The GitHub Copilot app is your production layer. It holds your accumulated context, runs the agents, keeps history, does the scheduled work.
The bridge is a copy-paste habit that takes about ten minutes a week.
The Friday ritual
- In M365 Copilot, ask for a summary of your meetings and mail for the week — decisions, commitments, open questions, with dates and owners.
- Paste it into
inbox/as a dated markdown file. Raw is fine; that's what intake is for. - Add what M365 can't see: hallway conversations, your judgment calls, what you think is actually going on.
- Run intake, then the digest. Read Part Two before Part One.
Summarize my meetings and email from the past 7 days as a plain markdown
list, grouped by topic rather than by day. For each topic give me:
- Decisions made, with who made them and the date
- Commitments, with the owner and the date promised
- Open questions and who can answer them
- Anything that changed from a previous week
Use only what's in my mail and meetings. Where something is ambiguous, say
so rather than resolving it. No summary paragraph, no recommendations —
just the structured list.
You're moving company content from one sanctioned system into another system's storage. In oil and gas that question has real answers attached — production data, JV terms, safety incidents, personal data, anything export-controlled.
- Confirm with IT or security that storing work content in a private GitHub repo under your company's organization is approved. Get it in writing.
- Use a repo owned by the company organization, not your personal account. Private or internal only.
- Keep names, credentials, and identifiable personal data out of what you paste.
- Ask whether content exclusion rules are configured for your org and whether they cover this repo.
If the answer is no, the approach still works on your own non-confidential material: your notes, plans, drafts, judgment. That's most of the value anyway.
Keep the meter honest
Cost discipline, condensed
- Default to Auto; it routes sensibly and paid plans get a discount for using it.
- Scope in a quick chat before opening a full session.
- Use Plan mode for anything you haven't done before.
- Pin a cheap model in every scheduled automation.
- Start a new session per task.
- Write one clear brief instead of ten corrections.
- Set a credit limit on long autonomous sessions.
- Run
/chronicle cost tipsevery Friday.
- Leave the most powerful model pinned as your default.
- Run a frontier model on formatting or renaming.
- Keep one giant session open all week.
- Schedule an automation you haven't run manually several times.
- Point a long-context model at a huge pile of files "just in case" — long-context tiers cost double.
- Turn on automatic code review across repos without knowing the per-run cost.
- Assume anything on this page is still accurate in three months.
A rough sense of scale
A meeting prep brief that reads ~15,000 tokens of context and writes ~1,200 tokens costs roughly 4 cents on Claude Sonnet 5 and roughly 9 cents on Claude Opus 5. Neither matters alone. Run it twice a day on the expensive model with a bloated session and you're at real money by month end — that's the actual failure mode. Use the estimator in the Model catalog tab to check your own numbers.
Four weeks
A ramp that doesn't overwhelm you
Learn the dials
Install the app. Do your normal work in quick chats only. Run the same question on a cheap model and an expensive one and notice where the difference actually shows up — for a lot of your work, it won't. Ask your admin about the credit budget.
Build the workspace
Create the private repo, write
AGENTS.mdandcontext/portfolio.mdby hand. Paste a week of raw notes intoinbox/. No agents yet.Add two agents
Commit
intakeandmeeting-prep. Run them manually before every meeting for a week. Edit the agent files as you go — fixing the prompt is the actual work.Schedule the boring parts
Add
weekly-digest. Schedule the two automations you've already proven by hand. Run/chronicle cost tips, look at your month's usage, decide what to cut. Then stop building and just use it.
Plain terms
Glossary
- Token
- A chunk of text, roughly ¾ of a word. Billing is measured in millions of them.
- Context
- Everything the model can see for one request: your prompt, the files it read, the conversation so far.
- AI credit
- GitHub's billing unit. One credit = one cent.
- Repository (repo)
- A tracked folder of files. Your workspace and your agents both live in one.
- Branch
- A parallel copy of the folder where work happens safely before it's accepted.
- Pull request (PR)
- A proposal to accept changes from a branch, with a review step. Your approval gate for agent output.
- Agent
- A model given a role, tools, and permission to act rather than just answer.
- Custom agent
- A markdown file in
.github/agents/defining one of those roles. - Automation
- A saved agent task with a trigger, so it runs on a schedule or an event.
- MCP
- Model Context Protocol — the standard way to plug an AI tool into an outside system. Blocked at your company, hence the manual bridge.
- Reasoning effort
- A per-session dial for how much internal deliberation the model does. More effort, better hard answers, more output tokens.