Introduction to GitHub Copilot & Claude Code concepts
Press → or Space to begin
JBT Marel IP session March 10th
by Hermann Haraldsson
The feature parity between Claude and Copilot is fairly comparable with my personal preference being Claude Code.
AI agent extension to VS Code from GitHub, runs in a UI integrated in your IDE.
Anthropic's AI agent available as a CLI tool and also as a VS Code extension.
Follow the official getting started guide:
Follow the official quickstart guide:
Verify your agent understands instruction files in the most extreme way possible
Create a file called CLAUDE.md in your project root:
Always respond speaking like a pirate. Use pirate slang,
say "Arrr!" frequently, and refer to the user as "matey".
your-project/CLAUDE.md
Create a file at .github/copilot-instructions.md:
Always respond speaking like a pirate. Use pirate slang,
say "Arrr!" frequently, and refer to the user as "matey".
your-project/.github/copilot-instructions.md
Ask Copilot a simple question:
"Explain what a variable is in programming"
You should see a pirate-themed response. Something like:
Arrr, matey! A variable be like a treasure chest
where ye stash yer values for later use, savvy?
CLAUDE.md / copilot-instructions.md)
customize AI behavior per-project. They're read automatically at the start of every session.
Understand project-wide instructions vs path-scoped rules
Write your own based on your project — these are just examples.
Remove the pirate line and add real conventions to CLAUDE.md:
## Build & Test
- Always run `npm test` before committing
## Project Layout
- API handlers live in src/api/handlers/
- Shared types go in src/types/
## Conventions
- Error responses must use the format in src/api/errors.ts
Remove the pirate line and add real conventions to .github/copilot-instructions.md:
## Build & Test
- Always run `npm test` before committing
## Project Layout
- API handlers live in src/api/handlers/
- Shared types go in src/types/
## Conventions
- Error responses must use the format in src/api/errors.ts
Rules apply only to specific file paths — they're more targeted than instructions.
Create .claude/rules/api.md:
---
paths: "src/api/**/*.ts"
---
All API endpoints must include input validation.
Use the standard error response format from src/api/errors.ts.
Always log request duration using the logger in src/lib/logger.ts.
Create .github/instructions/api.instructions.md:
---
applyTo: "src/api/**/*.ts"
---
All API endpoints must include input validation.
Use the standard error response format from src/api/errors.ts.
Always log request duration using the logger in src/lib/logger.ts.
Ask Copilot to do something for you in your project, for example:
"Create a new GET endpoint in src/api/handlers/users.ts
that returns a list of users"
Verify the output follows your instructions and rules.
Connect Copilot to the Microsoft Playwright MCP server to control and automate the browser via your agent.
claude mcp add playwright -- npx @playwright/mcp@latest
This registers the server in your Claude Code config. Restart your session to load it.
Add to .vscode/mcp.json in your project:
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": ["@playwright/mcp@latest"]
}
}
}
Playwright MCP launches a browser automatically (headed mode by default).
What is MCP?
Model Context Protocol is an open standard for connecting AI agents to external services. Both Claude Code and GitHub Copilot support MCP — the same server works in both tools.
Optional flags:
--browser msedge — use Edge instead of Chromium--headless — run without a visible browser window--viewport-size 1280x720 — set browser dimensionsAsk Copilot:
"Navigate to https://example.com, take a screenshot,
and describe what you see on the page"
Try something more interactive:
"Go to https://en.wikipedia.org, search for 'Model Context Protocol',
and summarize the first paragraph"
@playwright/mcp server works in both Claude Code and Copilot —
MCP is a shared, open protocol.
Create a custom agent that handles your Azure DevOps work items for you
Create .claude/agents/sprint-manager.md:
---
name: sprint-manager
description: Manages Azure DevOps work items on the sprint board
---
You are a sprint board manager. You help the user:
- List work items in the current sprint
- Move items between states (New, Active, Resolved, Closed)
- Update assignments and priorities
- Summarize sprint progress
Always confirm before changing work item states.
Create .github/agents/sprint-manager.agent.md:
---
name: Sprint Manager
description: Manages Azure DevOps work items on the sprint board
---
You are a sprint board manager. You help the user:
- List work items in the current sprint
- Move items between states (New, Active, Resolved, Closed)
- Update assignments and priorities
- Summarize sprint progress
Always confirm before changing work item states.
claude mcp add azure-devops -- npx -y @azure-devops/mcp YOUR_ORG
Replace YOUR_ORG with your Azure DevOps organization name.
On first use, a browser window opens for Microsoft login.
Add to .vscode/mcp.json:
{
"mcpServers": {
"azure-devops": {
"command": "npx",
"args": ["-y", "@azure-devops/mcp", "YOUR_ORG"]
}
}
}
Replace YOUR_ORG with your Azure DevOps organization name.
Add the tools field to your agent file — this tells Copilot which MCP tools the sub-agent can use:
Add the tools line to the YAML front matter in .claude/agents/sprint-manager.md:
---
name: sprint-manager
description: Manages Azure DevOps work items on the sprint board
tools: Read, Grep, Glob, Bash, mcp__azure-devops__*
---
Add the tools field to the YAML front matter in .github/agents/sprint-manager.agent.md:
---
name: Sprint Manager
description: Manages Azure DevOps work items on the sprint board
tools:
- ado/*
---
Ask the sprint manager:
"Ask the sprint manager to show me my current
sprint items and move task #1234 to Active"
| Concept | Claude Code | GitHub Copilot |
|---|---|---|
| Instructions | CLAUDE.md |
.github/copilot-instructions.md |
| Scoped rules | .claude/rules/*.md |
.github/instructions/*.instructions.md |
| Custom agents | .claude/agents/*.md |
.github/agents/*.agent.md |
| MCP servers | .mcp.json |
.vscode/mcp.json |
| Skills | .claude/skills/ |
.claude/skills/
|
Thanks for attending!