Bring GitHub Copilot AI capabilities to Home Assistant — enabling AI conversation agents, voice assistants, and smart home automations powered by the Copilot SDK.
Use GitHub Copilot as an AI conversation agent within Home Assistant.
Works seamlessly with Home Assistant's built-in voice pipeline.
Use automatic model selection or choose a model from the runtime's live catalog.
Maintains conversation history within sessions via the SDK.
Run the Copilot CLI as a Home Assistant add-on — no local CLI needed.
Supports amd64 and aarch64 for broad hardware compatibility.
Requires Home Assistant 2025.2.4 or later. Use a current stable release for Home Assistant's built-in MCP server.
GitHub Copilot.custom_components/github_copilot directory to your Home Assistant custom_components directory.The GitHub Copilot Bridge add-on runs the CLI in a dedicated container that the integration connects to over the internal network. Add-on v3.12.2 uses CLI v1.0.83, matching the integration's SDK 1.0.13.
The bridge manages the CLI separately from Home Assistant Core. Alternatively, local mode lets the SDK download its matching runtime automatically; neither mode requires manual binary installation.
amd64 and aarch64https://github.com/tserra30/Github-Copilot-SDK-integrationgithub_token: "<GITHUB_FINE_GRAINED_PAT>"
mcp_config: ""
Configure MCP in the integration's MCP field, even when using the bridge. The add-on's optional mcp_config is available to other bridge clients but does not authorize tools for this integration.
The integration connects to the add-on via its internal hostname (shown in the add-on Info tab). The URL format is:
http://<hostname>:8000
# Example:
http://a1b2c3d4-github-copilot-bridge:8000
Note: Home Assistant generates the hostname from the add-on slug by replacing all underscores (_) with hyphens (-). Always use hyphens — using underscores will cause DNS resolution to fail.
auto for new setups; custom model IDs are also accepted. Existing saved choices are preserved.http://a1b2c3d4-github-copilot-bridge:8000. Leave empty for local mode, where the SDK downloads a matching runtime if no installed or explicit executable is available.mcpServers, or a JSON file path readable by Home Assistant Core, optionally prefixed with @.When using the Bridge add-on (with CLI URL set), the GitHub token only needs to be set in the add-on configuration. The integration will not pass a token to the SDK in remote mode — the bridge server handles authentication entirely.
Classic PATs are not a supported fallback. Keep the GitHub token separate from the Home Assistant long-lived token used for MCP.
{
"mcpServers": {
"homeassistant": {
"type": "http",
"url": "http://homeassistant:8123/api/mcp",
"tools": ["*"],
"headers": {
"Authorization": "Bearer <HOME_ASSISTANT_TOKEN>"
}
}
}
}
The URL must be reachable from the Copilot CLI runtime; homeassistant is appropriate on the bridge's internal network. Other deployments need an appropriate reachable address. No external MCP server or proxy is needed.
Every server requires an explicit tools list. Use [] to disable tools, named tools for limited access, or ["*"] to authorize all current and future tools on a trusted server. Allowed calls execute without confirmation. Built-in CLI tools and unconfigured MCP access are denied.
Missing tools, invalid JSON, unreadable files, and invalid server definitions produce errors during setup and options changes. Older configurations without a tools list must be updated explicitly. Protect MCP headers and files as credentials, and verify actual helper state changes rather than relying only on a model's success message.
See the README's MCP configuration guide for details.
automation:
- alias: "Morning briefing with Copilot"
trigger:
- platform: time
at: "07:00:00"
action:
- service: conversation.process
data:
text: "Good morning! What should I know today?"
agent_id: conversation.github_copilot
New setups default to auto. Open Settings → Devices & services → GitHub Copilot → Configure to fetch the runtime's live model catalog and select an available model.
Existing selections are not silently replaced on upgrade. If an older ID such as gpt-4.1 produces Model not available, choose a currently supported model through Configure.
If bridge v3.12.0 says it is listening but Home Assistant reports connection refused, upgrade the bridge to v3.12.1. This fixes its loopback-only listener without publishing port 8000 to the host. The bridge is updated separately from the HACS integration.
This means the Copilot CLI is not reachable. Two options:
COPILOT_CLI_PATH override.Bridge v3.12.2 reports that a GitHub token is configured without running an unreliable startup probe. The integration checks SDK authentication status and confirms model access with a real response during setup. The separate COPILOT_CONNECTION_TOKEN warning concerns client-to-bridge access, not GitHub credentials. Keep port 8000 on a trusted internal network.
Integration v1.0.8 logs connection and session lifecycle events in Home Assistant logs under custom_components.github_copilot, not in the bridge's Log tab. Enable that logger at info, or temporarily debug for request milestones. Prompts, responses, and credentials are not included in those lifecycle messages. See the logging guide.
Home Assistant installs the official github-copilot-sdk==1.0.13 from PyPI in both modes. Its universal py3-none-any wheel supports Home Assistant Core's Alpine/musl container; no custom wheel is required.
In local mode, the SDK automatically downloads and verifies a checksummed matching CLI runtime when no installed or explicit executable is available. SDK 1.0.13 pins CLI 1.0.83, with musl and glibc builds for amd64/arm64. In remote bridge mode, no local CLI binary or runtime download is needed. Update the bridge alongside the integration.
For more help, open an issue on GitHub.
Contributions are welcome! Please read CONTRIBUTING.md for guidelines on how to propose changes, run the linter, and submit pull requests.