"Piping Hot Intelligence" - Fresh, ready-to-use AI straight from your terminal via Unix pipes.
Central Theme: Software = Instructions + Tools
Slide: A terminal with a single command
$ ma task.copilot.mdSay this:
"What if your markdown files could run AI? Not just document it. Not just describe it. Actually execute it."
Pause. Let it land.
Reveal the real magic:
$ git diff | copilot -p "review this"The hook:
"Data goes in. Intelligence comes out. That fifty-year-old pipe operator now carries something entirely new. But first... let me show you the problems this solves."
Slide: Developer frustration - waiting for prompts, clicking through menus
The Pain:
# This is interactive - can't script it
$ copilot
? What would you like help with?
> (typing... waiting... more typing...)- Can't automate
- Can't pipe data
- Can't batch process
- Human has to babysit every request
SOLUTION: Non-Interactive Mode
# The -p flag changes everything
$ copilot -p "explain this error"The before/after:
# BEFORE: Interactive, manual, slow
copilot
→ Type question
→ Wait for response
→ Manually copy output
→ Paste elsewhere
# AFTER: Non-interactive, scriptable, fast
copilot -p "explain this error" > analysis.txtKey flags:
-p "prompt"- Non-interactive mode with prompt-s- Silent mode (removes spinners, pure output)
Demo 1:
# Now you can script it
cat error.log | copilot -p "What went wrong here?" -s
# Chain it
npm test 2>&1 | copilot -p "Why is this failing?" -s
# Save it
git diff | copilot -p "Review for bugs" -s > review.md"One flag.
-p. That's all it takes to turn interactive AI into scriptable AI."
Slide: Price comparison chart - showing API costs
The Pain:
- Using the most powerful model for every request
- Simple yes/no questions cost the same as deep analysis
- No way to match task complexity to model capability
- Budget evaporates on trivial classification
SOLUTION: Model Selection with --model
# Fast and cheap for simple tasks
copilot -p "Is this a bug or a feature request?" -s --model claude-haiku-4.5
# Balanced for most work
copilot -p "Review this function" -s --model claude-sonnet-4
# Maximum power for complex analysis
copilot -p "Architect this system" -s --model claude-opus-4.5The Model Ladder:
| Model | Speed | Cost | Use Case |
|---|---|---|---|
claude-haiku-4.5 |
Fast | Low | Triage, classification, simple Q&A |
claude-sonnet-4 |
Balanced | Medium | Code review, debugging, daily tasks |
claude-opus-4.5 |
Thorough | High | Architecture, security audits, deep analysis |
Demo 2: Smart Escalation
# Use Haiku to decide if you need Opus
COMPLEXITY=$(echo "$TASK" | copilot -p "SIMPLE or COMPLEX? One word." -s --model claude-haiku-4.5)
if [ "$COMPLEXITY" = "COMPLEX" ]; then
copilot -p "$TASK" -s --model claude-opus-4.5
else
copilot -p "$TASK" -s --model claude-haiku-4.5
fi"Haiku is 10x cheaper and 5x faster. Use the lightweight model to decide if you need the heavyweight."
Slide: Security lock icons, permission boundaries
The Pain:
- AI agents want to run arbitrary commands
- No visibility into what tools get accessed
- All-or-nothing permission models
- Can't scope access to specific domains
SOLUTION: Permission Boundaries with --allow-tool
# Read-only: AI can only look, not touch
copilot -p "Analyze this code" -s --allow-tool 'Read'
# Git-scoped: Can run git commands, nothing else
copilot -p "Summarize recent commits" -s --allow-tool 'shell(git:*)'
# Npm-scoped: Can run npm, but not arbitrary shell
copilot -p "Fix linting errors" -s --allow-tool 'shell(npm:*)'The Trust Ladder:
Level 1: Pure pipes (safest)
cat code.ts | copilot -p "find bugs" -s
→ No tool access, just text in/out
Level 2: Scoped tools (controlled)
copilot -p "check status" -s --allow-tool 'shell(git:*)'
→ Only git commands allowed
Level 3: Full autonomy (supervised)
copilot -p "refactor auth" -s --allow-all-tools
→ Use sparingly, monitor closely
Demo 3:
# Safe code review - read-only
git diff | copilot -p "Security review" -s --allow-tool 'Read'
# Safe git operations - can't touch files directly
copilot -p "Create a branch from main for feature-x" -s --allow-tool 'shell(git:*)'"The pipe doesn't grant permissions. You do. Every boundary is explicit."
Slide: Terminal history scrolling away, lost commands
The Pain:
- Complex flag combinations hard to remember
- Copy-pasting from Slack/docs every time
- No version control for prompts
- Can't share patterns with team
- Reinventing the wheel on every project
This leads to the resolution...
Slide: A markdown file icon with a play button
$ ma review.copilot.mdHow it reads:
review= your task name.copilot= run with copilot.md= it's just markdown
SOLUTION: Capture Patterns as Files
---
model: claude-sonnet-4
allow-tool:
- 'shell(git:*)'
- Read
silent: true
---
Review these code changes for:
1. Bug risks
2. Performance issues
3. Security concerns
Prioritize by severity.Usage:
git diff | ma review.copilot.md---
model: claude-sonnet-4
args:
- base_branch
- focus_area
---
## Changes to Review
!`git diff {{ base_branch | default: "main" }}..HEAD`
## Focus
Review with emphasis on {{ focus_area | default: "all areas" }}.
For each change:
- Risk level (low/medium/high)
- Category (bug fix, feature, refactor)
- Concerns if anyRun with arguments:
ma pr-review.copilot.md --base_branch develop --focus_area securityBEFORE (The Four Problems):
Problem 1: Interactive only → Can't automate
Problem 2: One model fits all → Wasting money
Problem 3: No permission control → Security risk
Problem 4: Ephemeral commands → Lost knowledge
AFTER (The Solutions):
Solution 1: -p flag → Scriptable AI
Solution 2: --model flag → Right-sized intelligence
Solution 3: --allow-tool flag → Explicit boundaries
Solution 4: markdown-agent → Version-controlled prompts
The paradigm shift:
Old: Software = Code + Data
New: Software = Instructions + Tools
Your prompts are code now.
Version them. Test them. Ship them.
Your four steps today:
- First pipe:
git diff | copilot -p "review" -s - First escalation: Try
--model claude-haiku-4.5for triage - First boundary: Add
--allow-tool 'shell(git:*)' - First file: Create one
.copilot.mdfor a task you repeat
- GitHub Copilot CLI:
gh copilot - markdown-agent:
github.com/johnlindquist/agents - This outline: [gist link]
Slide: A pipe symbol | with data flowing in, intelligence flowing out
"Four problems. Four flags. One new way of thinking. The pipe carried data for 50 years. Now it carries intelligence. Start piping."
| Section | Time | Cumulative |
|---|---|---|
| Hook: Mystery command + pipe reveal | 2 min | 2 min |
Problem 1: Interactive mode → -p flag |
3 min | 5 min |
Problem 2: Overpaying → --model flag |
3 min | 8 min |
Problem 3: Trust issues → --allow-tool |
3 min | 11 min |
| Problem 4: Lost commands → Setup for resolution | 2 min | 13 min |
| Resolution: markdown-agent reveal | 4 min | 17 min |
| Closing: Call to action | 2 min | 19 min |
| Problem | Flag/Solution | Result |
|---|---|---|
| Can't script | -p "prompt" |
Automation unlocked |
| Overpaying | --model |
Right-sized cost |
| No trust | --allow-tool |
Explicit boundaries |
| Lost patterns | .copilot.md files |
Version-controlled AI |
The equation: Software = Instructions + Tools
- Terminal with large font (24pt minimum)
- Git repo with staged changes for
git diffdemos - Sample error.log file with realistic errors
- Pre-written
.copilot.mdrecipe files - Test all pipes before talk
- Backup: screenshots of each demo
- Verify
copilotCLI is installed and authenticated - Have fallback commands ready if live demo fails
---
model: claude-sonnet-4
allow-tool:
- 'shell(git:*)'
- Read
silent: true
---
Review this code for bugs, security issues, and performance concerns.
Prioritize findings by severity.---
model: claude-haiku-4.5
silent: true
args:
- task
---
Classify this task as SIMPLE, MODERATE, or COMPLEX.
Respond with ONLY one word.
Task: {{ task }}---
model: claude-sonnet-4
silent: true
args:
- base
---
Generate a PR description from these changes:
!`git diff {{ base | default: "main" }}..HEAD`
## Summary
[2-3 sentences]
## Changes
[Bullet list]
## Risk Assessment
[low/medium/high with explanation]"One flag.
-p. That's all it takes to turn interactive AI into scriptable AI."
"Haiku is 10x cheaper and 5x faster. Use the lightweight model to decide if you need the heavyweight."
"The pipe doesn't grant permissions. You do. Every boundary is explicit."
"Your prompts are code now. Version them. Test them. Ship them."
"Four problems. Four flags. One new way of thinking."
"The pipe carried data for 50 years. Now it carries intelligence. Start piping."
- Terminal prompt with pipe symbol
- "Scripting Copilot: Piping Hot Intelligence"
- Subtitle: "Real Problems, Elegant Solutions"
- Grid of 4 icons with pain points
- Interactive lock, dollar signs, warning shield, disappearing text
- Clean table showing each problem/flag/result
- Visual before/after
- Three levels visualized as steps
- Pure pipes → Scoped tools → Full autonomy
- Three tiers: Haiku, Sonnet, Opus
- Speed/Cost/Power indicators
- Markdown file with play button
- "Your prompts, in git, forever"
- Four numbered steps
- Clear, actionable items
Talk outline for Microsoft AI Dev Days Theme: Piping Hot Intelligence - Real Problems, Elegant Solutions Duration: 15-20 minutes Structure: Problem → Solution throughout