Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 35 additions & 0 deletions .agents/plugins/marketplace.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
{
"name": "armorcopilot",
"owner": {
"name": "ArmorIQ",
"email": "license@armoriq.io",
"url": "https://armoriq.ai"
},
"metadata": {
"description": "ArmorIQ marketplace: intent-based security enforcement for GitHub Copilot CLI (ArmorCopilot) and other agentic harnesses.",
"version": "0.1.0"
},
"interface": {
"displayName": "ArmorIQ"
},
"plugins": [
{
"name": "armorcopilot",
"source": "./plugins/armorcopilot",
"description": "Intent-based security enforcement for GitHub Copilot CLI: declared plans, policy rules, intent-drift blocking, optional CSRG cryptographic proofs, and audit logging.",
"version": "0.1.0",
"category": "Security",
"tags": ["security", "policy", "audit", "intent", "armoriq", "mcp", "hooks", "github-copilot"],
"homepage": "https://armoriq.ai",
"license": "MIT",
"author": {
"name": "ArmorIQ",
"email": "license@armoriq.io"
},
"policy": {
"installation": "AVAILABLE",
"authentication": "ON_INSTALL"
}
}
]
}
35 changes: 35 additions & 0 deletions .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
{
"name": "armorcopilot",
"owner": {
"name": "ArmorIQ",
"email": "license@armoriq.io",
"url": "https://armoriq.ai"
},
"metadata": {
"description": "ArmorIQ marketplace: intent-based security enforcement for GitHub Copilot CLI (ArmorCopilot) and other agentic harnesses.",
"version": "0.1.0"
},
"interface": {
"displayName": "ArmorIQ"
},
"plugins": [
{
"name": "armorcopilot",
"source": "./plugins/armorcopilot",
"description": "Intent-based security enforcement for GitHub Copilot CLI: declared plans, policy rules, intent-drift blocking, optional CSRG cryptographic proofs, and audit logging.",
"version": "0.1.0",
"category": "Security",
"tags": ["security", "policy", "audit", "intent", "armoriq", "mcp", "hooks", "github-copilot"],
"homepage": "https://armoriq.ai",
"license": "MIT",
"author": {
"name": "ArmorIQ",
"email": "license@armoriq.io"
},
"policy": {
"installation": "AVAILABLE",
"authentication": "ON_INSTALL"
}
}
]
}
52 changes: 51 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,52 @@
# armorCopilot
ArmorIQ enforcement for Microsoft Copilot Studio (and later GitHub Copilot) — intent-based tool-call interception, audit, and policy enforcement.

ArmorIQ intent-based security enforcement for **GitHub Copilot CLI** — pre-tool guardrails, intent verification, optional cryptographic proofs, audit logging.

Counterpart of ArmorClaude (Claude Code) and ArmorCodex (OpenAI Codex). Same wedge, different harness.

## Install

```bash
copilot plugin install armoriq/armorCopilot
```

The plugin runtime auto-discovers `.claude-plugin/plugin.json` inside `plugins/armorcopilot/` and registers hooks + MCP servers.
Comment on lines +7 to +13

## Configure

After install, paste your ArmorIQ API key into the plugin's userConfig in Copilot CLI. Get one at https://armoriq.ai. Leave blank for local-only mode (no backend audit, policies stored on disk).

## What it does

| Surface | Plugin behavior |
|---|---|
| `sessionStart` / `userPromptSubmitted` | Injects directive telling Copilot to register its intent plan first |
| `preToolUse` | Verifies the tool against the registered plan + policy. Blocks via `{"permissionDecision":"deny",...}` if out-of-plan or policy-denied |
| `postToolUse` | Async audit row to ArmorIQ backend (fire-and-forget WAL) |
| `permissionRequest` | Honors policy decisions before user is prompted |
| MCP tools | `register_intent_plan`, `policy_update` (natural-language), `policy_read` |

## Layout

```
armorCopilot/
├── .claude-plugin/marketplace.json repo-level marketplace manifest
├── .agents/plugins/marketplace.json mirror (for non-Copilot agent runtimes)
├── plugins/armorcopilot/ the plugin itself
│ ├── .claude-plugin/plugin.json plugin manifest
│ ├── .mcp.json MCP server config
│ ├── hooks/hooks.json 5 hook events wired
│ ├── package.json npm deps
│ ├── README.md plugin-level docs
│ ├── assets/ logo + icons
│ └── scripts/ bootstrap + hook-router + policy-mcp + 12 lib modules
└── README.md this file
```

## Refs

- ArmorClaude: https://github.com/armoriq/armorClaude
- ArmorCodex: https://github.com/armoriq/armorCodex
- GitHub Copilot CLI plugin docs: https://docs.github.com/copilot/concepts/agents/copilot-cli/about-cli-plugins
- GitHub Copilot CLI hooks reference: https://docs.github.com/en/copilot/reference/hooks-configuration
- ArmorIQ platform: https://armoriq.ai
Loading