Windows capabilities for AI agents — Outlook, Edge browser, desktop automation, and shell commands as structured JSON skills.
# List available skills
.\powerskills.ps1 list
# Get skill help
.\powerskills.ps1 outlook help
# Run actions
.\powerskills.ps1 outlook inbox --limit 10
.\powerskills.ps1 browser tabs
.\powerskills.ps1 desktop screenshot --out-file screen.png
.\powerskills.ps1 system exec --command "whoami"| Skill | Description |
|---|---|
outlook |
Email & calendar via Outlook COM |
browser |
Edge automation via CDP (Chrome DevTools Protocol) |
desktop |
Screenshots, window management, keystrokes |
system |
Shell commands, processes, system info |
All commands return JSON with consistent envelope:
{
"status": "success",
"exit_code": 0,
"data": { ... },
"timestamp": "2026-03-06T16:00:00+01:00"
}- Windows 10/11
- PowerShell 5.1+
- Microsoft Outlook (for
outlookskill) - Microsoft Edge with
--remote-debugging-port=9222(forbrowserskill)
If scripts are blocked (UnauthorizedAccess error), set the execution policy:
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSignedOr run one-off with bypass:
powershell -ExecutionPolicy Bypass -File .\powerskills.ps1 listEach skill can be called directly without powerskills.ps1:
.\skills\outlook\outlook.ps1 inbox --limit 5
.\skills\system\system.ps1 info
.\skills\browser\browser.ps1 tabsStandalone mode uses lib\bootstrap.ps1 for arg parsing and JSON output.
# Start Edge with debugging enabled
Start-Process "msedge" -ArgumentList "--remote-debugging-port=9222"Edit config.json:
{
"edge_debug_port": 9222,
"default_timeout": 30,
"outlook_body_max_chars": 5000,
"output_dir": ""
}Each skill has a SKILL.md with action documentation. Point your agent to skills/<name>/SKILL.md for structured capability discovery.
Add to your skills directory or reference directly:
# SKILL.md reference
skills:
- name: powerskills
description: Windows automation via PowerShell (Outlook, Edge, desktop)
location: /path/to/PowerSkills/PowerSkills/
├── powerskills.ps1 # CLI entry point / dispatcher
├── config.json # Configuration
├── lib/
│ └── bootstrap.ps1 # Shared arg parsing & JSON output helpers
├── assets/
│ └── powerskills-ai-agents-windows-powershell-automation.jpg
├── skills/
│ ├── outlook/
│ │ ├── SKILL.md # Agent-readable skill documentation
│ │ └── outlook.ps1 # Outlook COM automation
│ ├── browser/
│ │ ├── SKILL.md
│ │ └── browser.ps1 # Edge CDP automation
│ ├── desktop/
│ │ ├── SKILL.md
│ │ └── desktop.ps1 # Win32 window/screenshot/clipboard
│ └── system/
│ ├── SKILL.md
│ └── system.ps1 # System info, processes, exec
├── tests/
│ └── test-all.ps1 # Test suite (-SkipBrowser, -SkipOutlook)
├── SKILL.md # Root skill metadata
├── LICENSE # MIT
└── README.md
Contributions are welcome! Here's how you can help:
- Report bugs - open an issue with the Bug Report template
- Request features - suggest new actions or skills via Feature Request
- Add a skill - create a new folder under
skills/with a.ps1andSKILL.md - Improve existing skills - better error handling, new actions, documentation fixes
- Join the discussion - share ideas in Discussions
When adding or modifying skills, please follow the existing patterns:
- Use
lib\bootstrap.ps1for arg parsing and JSON output - Return results via
Write-SkillResult/Write-SkillError - Include a
SKILL.mdwith action documentation - Test both dispatcher and standalone modes
MIT
