⚠️ Vibe Coded - This tool was built in a single AI-assisted session. Use at your own risk. It works on my machine™.
A wrapper for GitHub Copilot CLI that enables loading plugins, skills, and MCP servers from Claude Code marketplaces.
Claude Code has a growing ecosystem of plugins with skills and MCP servers. Copilot CLI supports similar concepts but uses different configuration formats. Construct bridges the gap by translating Claude Code plugins into Copilot CLI's format.
Install directly from GitHub:
bun add -g github:scaryrawr/constructThis makes the construct command available globally in your PATH.
Clone and link locally:
git clone https://github.com/scaryrawr/construct.git
cd construct
bun install
bun link# List available plugins from installed Claude Code marketplaces
construct --list
# Load specific plugins for this session
construct --load tmux@scaryrawr-plugins
# Load multiple plugins
construct --load tmux@scaryrawr-plugins --load chrome-devtools@scaryrawr-plugins
# Pass arguments through to copilot (everything after -- goes to copilot)
construct --load tmux@scaryrawr-plugins -- --continue
# Run with saved config (uses .construct.json)
construct
# Pass a prompt directly
construct -- "fix the failing tests"
# Interactive operator mode (fzf selector)
construct operator
construct operator -- --continue
# Clear plugin caches (removes all cached instances, useful after crashes)
construct --clear-cache
# Type-check the codebase
bun run typecheckconstruct operator launches an interactive fzf multi-select for plugins, saves your selection to .construct.json, and then runs Copilot with those plugins enabled.
Construct supports automatic environment variable expansion in plugin configurations:
${VAR}- Basic expansion (uses value if set, otherwise unchanged)${VAR:-default}- Expansion with default value (uses default if VAR is unset or empty)
{
"chrome-devtools": {
"command": "npx",
"args": [
"chrome-devtools-mcp@latest",
"--browser-url=http://${DEVTOOLS_BASE_URL:-127.0.0.1}:${DEVTOOLS_PORT:-9222}"
]
},
"greptile": {
"type": "http",
"url": "https://api.greptile.com/mcp",
"headers": {
"Authorization": "Bearer ${GREPTILE_API_KEY}"
}
}
}${CLAUDE_PLUGIN_ROOT} - Automatically expands to the cached plugin directory path. Useful for referencing plugin-relative paths in configurations.
Environment variable expansion applies to:
- MCP server configurations (
.mcp.json) - Agent file frontmatter (YAML headers in
agents/*.md) - Skill file frontmatter (YAML headers in
skills/*/SKILL.md)
Note: Plugin file bodies (markdown content) are not expanded, only metadata/frontmatter.
- Scans
~/.claude/plugins/known_marketplaces.jsonfor configured marketplaces and their plugin install locations - Discovers skills, MCP servers, and agents in each plugin
- Caches plugins per construct instance for reliable environment variable expansion
- Translates Claude Code formats to Copilot CLI equivalents:
- Skills →
COPILOT_SKILLS_DIRSenvironment variable - MCP configs →
--additional-mcp-configJSON argument (supports both local and HTTP servers) - Agents →
.github/agents/<plugin>-<agent>.mdfiles with translated tool references - Environment variables → Automatically expanded in configurations
- Skills →
- Spawns
copilotwith the translated configuration
Claude Code agents (markdown files with YAML frontmatter in agents/*.md) are translated to Copilot's agent format:
- Agents are written to
.github/agents/in the current directory - Tool references are translated from Claude format (
mcp__plugin_name_server__tool) to Copilot format (server/tool) - Frontmatter fields (name, description, model, tools) are preserved
Construct saves your last-used plugins to .construct.json in the current directory:
{
"enabledPlugins": ["tmux@scaryrawr-plugins"],
"lastUsed": "2026-01-09T22:00:00.000Z"
}- Hooks - Claude Code event handlers aren't supported by Copilot CLI
- LSP Servers - Language server configs aren't supported
- Bun runtime
- GitHub Copilot CLI installed and in PATH
- fzf installed and in PATH (required for
construct operator) - Claude Code plugins installed via Claude Code's plugin system
MIT
