WorkIQ for GitHub GitHub Copilot CLI
Query Microsoft 365 work data through WorkIQ Public Preview, then synthesize concise, privacy-aware summaries and recommendations from emails, meetings/documents, Teams messages, People/Projects**, people, and project context.
When to invoke
- "Summarize my emails from Sarah about the budget."
- "What are my upcoming meetings this week?"
- "Find recent documents about Q4 planning."
- "Summarize Teams messages in the Engineering channel today."
- "Who is working on Project Alpha and what are the blockers?"
Prerequisites and context
- Preferred access path: GitHub Copilot CLI plugin marketplace package
workiq@copilot-plugins.
- Standalone access path:
@microsoft/workiq CLI or workiq mcp MCP stdio server.
- Tenant admin consent may be required for EULA and Microsoft 365 permissions. Non-admins must ask their tenant admin to approve access using the Tenant Administrator Enablement Guide.
- Be ready for browser device login on first use or when tokens expire.
Setup and access
| Path |
Commands |
Use when |
| GitHub Copilot CLI plugin |
copilot, /plugin marketplace add github/copilot-plugins, /plugin install workiq@copilot-plugins, then restart GitHub Copilot CLI. |
The user wants WorkIQ integrated into GitHub Copilot CLI. |
| Standalone CLI |
npm install -g @microsoft/workiq |
Repeated local terminal usage is expected. |
| One-off CLI |
npx -y @microsoft/workiq mcp |
Temporary MCP server use without global install. |
| MCP server |
workiq mcp |
Another agent/workflow needs direct tool access. |
Pre-flight checks:
- Run
Get-Command workiq to ensure the binary is available.
- Accept the EULA once with
workiq accept-eula.
- Confirm tenant targeting with
-t <tenant-id> when default common is not correct.
- Complete browser login before assuming a command is hung.
Core workflow
- Clarify intent: agenda, action items, document lookup, people search, risk summary, or recommendation.
- Craft a narrow prompt with timeframe, source, person, channel, meeting, or project name.
- Run
workiq ask --question "<prompt>" or shorthand workiq ask -q "<prompt>"; add -t <tenant> when needed.
- Wait for streaming output to complete before issuing another request.
- Summarize and redact: call out priorities, blockers, conflicts, and optional next steps without dumping raw confidential snippets.
- Offer focused follow-ups such as blocking time, drafting a note, requesting a recording, or running a deeper query.
Command reference and prompt patterns
| Command |
Purpose |
workiq --help |
Show global options. |
workiq version |
Display installed version. |
workiq accept-eula |
Accept the license on first use. |
workiq ask |
Start interactive mode. |
workiq ask --question "..." |
Ask a specific question. |
workiq ask -q "..." |
Shorthand question form. |
workiq ask -t <tenant> -q "..." |
Target a specific tenant. |
workiq mcp |
Start the MCP stdio server. |
| Intent |
Prompt pattern |
| Agenda |
"What's on my calendar tomorrow?" |
Action items and conflicts/tasks |
"Summarize follow-ups from today's customer sync." |
| Documents |
"List PowerPoints about Contoso FY26 roadmap." |
| Communications |
"What did my manager say about the deadline?" |
| Insights |
"What blockers came up in the last three meetings?" |
| Planning |
"Suggest focus blocks for Tuesday afternoon." |
Supported data includes emails, meetings, documents, Teams messages, people, and projects.
Response rules
- Keep summaries to 2-3 sentences unless the user asks for detail.
- Call out load, priorities, blockers, conflicts, and next steps.
- Refer to meetings and documents generically unless the user explicitly needs links.
- Do not expose attendee lists, confidential snippets, or raw message content unless specifically requested and appropriate.
- Log which commands were run, for example: "Asked WorkIQ for agenda + conflicts".
- Map suggestions to concrete offers: block
focus/overflow time, draft a reschedule/decline, request a recording, capture action items, or run a scoped follow-up query.
Troubleshooting
| Symptom |
Likely cause |
Resolution |
| Missing CLI |
workiq is not installed or not on PATH. |
Install with npm or fix PATH; notify the user if unavailable. |
Consent/auth error |
Tenant admin consent missing or device login incomplete. |
Ask for admin grant or complete browser login, then rerun. |
Long/incomplete output |
Prompt too broad or streaming not finished. |
Wait for completion or re-run with a narrower day/project/person scope. |
| Command hanging |
Browser login pending or process stuck. |
Cancel the specific running command, confirm login, restart GitHub Copilot CLI if needed, then retry. |
| Wrong tenant data |
Default common tenant selected. |
Use workiq ask -t <tenant> -q "...". |
Output template
## WorkIQ result
**Status:** complete | needs auth | blocked
**Question:** <prompt sent to WorkIQ>
**Sources requested:** email | meetings | documents | Teams | people | projects
**Command:** `<workiq command>`
### Summary
<2-3 sentence synthesis>
### Signals
- <priority, blocker, conflict, or follow-up>
### Suggested next actions
- <offer or action>
Quality gate
1---2name: workiq-copilot-23description: Use the WorkIQ `CLI/MCP` server to query Microsoft 365 work data such as emails, meetings, documents, Teams messages, people, and projects for live organizational context. Use when the user asks for agenda summaries, follow-ups, document lookup, stakeholder or project context, blockers, recommendations, or Microsoft 365 work intelligence.4---56# WorkIQ for GitHub GitHub Copilot CLI78Query Microsoft 365 work data through WorkIQ Public Preview, then synthesize concise, privacy-aware summaries and recommendations from emails, `meetings/documents`, Teams messages, `People/Projects**`, people, and project context.910## When to invoke1112- "Summarize my emails from Sarah about the budget."13- "What are my upcoming meetings this week?"14- "Find recent documents about Q4 planning."15- "Summarize Teams messages in the Engineering channel today."16- "Who is working on Project Alpha and what are the blockers?"1718## Prerequisites and context1920- Preferred access path: GitHub Copilot CLI plugin marketplace package `workiq@copilot-plugins`.21- Standalone access path: `@microsoft/workiq` CLI or `workiq mcp` MCP stdio server.22- Tenant admin consent may be required for EULA and Microsoft 365 permissions. Non-admins must ask their tenant admin to approve access using the Tenant Administrator Enablement Guide.23- Be ready for browser device login on first use or when tokens expire.2425## Setup and access2627| Path | Commands | Use when |28| --- | --- | --- |29| GitHub Copilot CLI plugin | `copilot`, `/plugin marketplace add github/copilot-plugins`, `/plugin install workiq@copilot-plugins`, then restart GitHub Copilot CLI. | The user wants WorkIQ integrated into GitHub Copilot CLI. |30| Standalone CLI | `npm install -g @microsoft/workiq` | Repeated local terminal usage is expected. |31| One-off CLI | `npx -y @microsoft/workiq mcp` | Temporary MCP server use without global install. |32| MCP server | `workiq mcp` | Another `agent/workflow` needs direct tool access. |3334Pre-flight checks:3536- Run `Get-Command workiq` to ensure the binary is available.37- Accept the EULA once with `workiq accept-eula`.38- Confirm tenant targeting with `-t <tenant-id>` when default `common` is not correct.39- Complete browser login before assuming a command is hung.4041## Core workflow42431. Clarify intent: agenda, action items, document lookup, people search, risk summary, or recommendation.442. Craft a narrow prompt with timeframe, source, person, channel, meeting, or project name.453. Run `workiq ask --question "<prompt>"` or shorthand `workiq ask -q "<prompt>"`; add `-t <tenant>` when needed.464. Wait for streaming output to complete before issuing another request.475. Summarize and redact: call out priorities, blockers, conflicts, and optional next steps without dumping raw confidential snippets.486. Offer focused follow-ups such as blocking time, drafting a note, requesting a recording, or running a deeper query.4950## Command reference and prompt patterns5152| Command | Purpose |53| --- | --- |54| `workiq --help` | Show global options. |55| `workiq version` | Display installed version. |56| `workiq accept-eula` | Accept the license on first use. |57| `workiq ask` | Start interactive mode. |58| `workiq ask --question "..."` | Ask a specific question. |59| `workiq ask -q "..."` | Shorthand question form. |60| `workiq ask -t <tenant> -q "..."` | Target a specific tenant. |61| `workiq mcp` | Start the MCP stdio server. |6263| Intent | Prompt pattern |64| --- | --- |65| Agenda | "What's on my calendar tomorrow?" |66| Action items and `conflicts/tasks` | "Summarize follow-ups from today's customer sync." |67| Documents | "List PowerPoints about Contoso FY26 roadmap." |68| Communications | "What did my manager say about the deadline?" |69| Insights | "What blockers came up in the last three meetings?" |70| Planning | "Suggest focus blocks for Tuesday afternoon." |7172Supported data includes emails, meetings, documents, Teams messages, people, and projects.7374## Response rules7576- Keep summaries to 2-3 sentences unless the user asks for detail.77- Call out load, priorities, blockers, conflicts, and next steps.78- Refer to meetings and documents generically unless the user explicitly needs links.79- Do not expose attendee lists, confidential snippets, or raw message content unless specifically requested and appropriate.80- Log which commands were run, for example: "Asked WorkIQ for agenda + conflicts".81- Map suggestions to concrete offers: block `focus/overflow` time, draft a `reschedule/decline`, request a recording, capture action items, or run a scoped follow-up query.8283## Troubleshooting8485| Symptom | Likely cause | Resolution |86| --- | --- | --- |87| Missing CLI | `workiq` is not installed or not on `PATH`. | Install with npm or fix `PATH`; notify the user if unavailable. |88| `Consent/auth` error | Tenant admin consent missing or device login incomplete. | Ask for admin grant or complete browser login, then rerun. |89| `Long/incomplete` output | Prompt too broad or streaming not finished. | Wait for completion or `re-run` with a narrower `day/project/person` scope. |90| Command hanging | Browser login pending or process stuck. | Cancel the specific running command, confirm login, restart GitHub Copilot CLI if needed, then retry. |91| Wrong tenant data | Default `common` tenant selected. | Use `workiq ask -t <tenant> -q "..."`. |9293## Output template9495```markdown96## WorkIQ result9798**Status:** complete | needs auth | blocked99**Question:** <prompt sent to WorkIQ>100**Sources requested:** email | meetings | documents | Teams | people | projects101**Command:** `<workiq command>`102103### Summary104<2-3 sentence synthesis>105106### Signals107- <priority, blocker, conflict, or follow-up>108109### Suggested next actions110- <offer or action>111```112113## Quality gate114115- [ ] WorkIQ access path and tenant context are verified before relying on results.116- [ ] The prompt includes a timeframe, source, person, project, or topic to reduce noise.117- [ ] Streaming output completed before summarization.118- [ ] The final response is concise and privacy-aware.119- [ ] Commands run are recorded in the output.120- [ ] Follow-up offers are actionable.121- [ ] The output follows `## Output template` exactly.