GitHub Copilot
GitHub Copilot
Section titled “GitHub Copilot”LNAI exports unified configuration to GitHub Copilot’s native formats, including repository instructions, path-specific rules, and MCP servers.
Output Structure
Section titled “Output Structure”.github/├── copilot-instructions.md # Symlink → ../.ai/AGENTS.md├── instructions/<name>.instructions.md # Transformed from .ai/rules/<name>.md├── skills/<name>/ # Symlinks → ../../.ai/skills/<name>/└── <overrides> # Symlinks from .ai/.copilot/.vscode/└── mcp.json # Generated MCP serversFile Mapping
Section titled “File Mapping”| Source | Output | Type |
|---|---|---|
.ai/AGENTS.md | .github/copilot-instructions.md | Symlink |
.ai/rules/<name>.md | .github/instructions/<name>.instructions.md | Transformed |
.ai/skills/<name>/ | .github/skills/<name>/ | Symlink |
.ai/settings.json | .vscode/mcp.json | Generated |
.ai/.copilot/<path> | .github/<path> | Symlink |
Generated mcp.json
Section titled “Generated mcp.json”MCP servers are exported to .vscode/mcp.json with transformations:
// Input (LNAI format){ "mcpServers": { "database": { "command": "npx", "args": ["-y", "@example/db"], "env": { "DB_URL": "${DB_URL}" } } }}
// Output (Copilot format in .vscode/mcp.json){ "inputs": [], "servers": { "database": { "type": "stdio", "command": "npx", "args": ["-y", "@example/db"], "env": { "DB_URL": "${env:DB_URL}" } } }}Stdio Servers
Section titled “Stdio Servers”| LNAI | Copilot |
|---|---|
${VAR} | ${env:VAR} |
| Stdio implicit | type: "stdio" explicit |
HTTP/SSE Servers
Section titled “HTTP/SSE Servers”// Input (LNAI format){ "mcpServers": { "api": { "type": "http", "url": "https://api.example.com/mcp", "headers": { "Authorization": "Bearer ${TOKEN}" } } }}
// Output (Copilot format){ "inputs": [], "servers": { "api": { "url": "https://api.example.com/mcp", "requestInit": { "headers": { "Authorization": "Bearer ${env:TOKEN}" } } } }}| LNAI | Copilot |
|---|---|
type: "http" | url field only (no type) |
type: "sse" | url field only (no type) |
headers: {} | requestInit: { headers: {} } |
Rules Transformation
Section titled “Rules Transformation”Rules are transformed from .md to .instructions.md format with YAML frontmatter:
paths:
- "\*_/_.ts"- "\*_/_.tsx"
---
# TypeScript Guidelines
Use strict TypeScript...applyTo: "**/\*.ts,**/\*.tsx"description: "TypeScript Guidelines"
---
# TypeScript Guidelines
Use strict TypeScript...| LNAI Field | Copilot Field | Notes |
|---|---|---|
paths | applyTo | Joined with comma |
| (first H1) | description | Extracted from content |
| (empty paths) | (no applyTo) | Rule applies globally |
Unsupported Features
Section titled “Unsupported Features”| Feature | Status | Notes |
|---|---|---|
| Permissions | ⚠️ Ignored | Copilot does not support permissions |
| Non-MCP overrides | ⚠️ Ignored | Only mcpServers is supported in JSON overrides |
LNAI will display warnings when unsupported features are configured.
Overrides
Section titled “Overrides”Place Copilot-specific files in .ai/.copilot/ to have them symlinked to .github/:
.ai/.copilot/└── workflows/ └── custom.yml → .github/workflows/custom.ymlWhen an override file exists at the same path as a generated file, the override takes priority.