You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 344a281
Browse filesBrowse the repository at this point in the historyBrowse files
# Copilot Agent Instructions for GitHub Copilot for Xcode
2
+
3
+
## Project Overview
4
+
-**Purpose:** This project is an Xcode extension and companion app that brings GitHub Copilot's AI code suggestions and chat to Xcode, with deep integration for inline completions, chat, and agent-driven codebase modifications.
5
+
-**Architecture:**
6
+
-**Core/**: Swift Package containing main business logic, services, and UI components. Organized by feature (e.g., `ChatService`, `SuggestionService`, `PromptToCodeService`).
-**CommunicationBridge/**: Handles XPC communication between the main app and extension services.
9
+
-**ExtensionService/**: Manages the lifecycle and UI of the extension's background service.
10
+
-**Server/**: Node.js backend for advanced features (optional, rarely modified).
11
+
-**Docs/**: Images and documentation assets.
12
+
13
+
## Key Workflows
14
+
-**Build & Run:**
15
+
- Open `Copilot for Xcode.xcworkspace` in Xcode.
16
+
- Build the `GitHub Copilot for Xcode` app target for macOS 12+.
17
+
- The extension is enabled via System Preferences > Extensions > Xcode Source Editor.
18
+
-**Testing:**
19
+
- Run Swift Package tests from the `Core/` directory using Xcode or `swift test`.
20
+
-**Debugging:**
21
+
- Use the `CommunicationBridge` and `ExtensionService` logs for troubleshooting XPC and extension issues.
22
+
- See `TROUBLESHOOTING.md` for permission and integration issues.
23
+
24
+
## Project Conventions
25
+
-**Feature Folders:** Each major feature in `Core/Sources/` is a separate folder with its own logic and tests.
26
+
-**Dependency Injection:** Uses [swift-dependencies](https://github.com/pointfreeco/swift-dependencies) and [Composable Architecture](https://github.com/pointfreeco/swift-composable-architecture) for state and effect management.
27
+
-**XPC Communication:** All cross-process calls use protocols in `Tool/` and are implemented in `CommunicationBridge/` and `ExtensionService/`.
28
+
-**Permissions:** Requires `Accessibility`, `Background`, and `Xcode Source Editor Extension` permissions. See `TROUBLESHOOTING.md` for details.
29
+
-**External Packages:** Managed in `Core/Package.swift`. Do not add dependencies directly to Xcode project files.
30
+
31
+
## Integration Points
32
+
-**Xcode Extension:** Commands in `EditorExtension/` are registered in `Info.plist` and invoked via the Xcode Editor menu.
33
+
-**App ↔ Extension:** Communication via XPC, with protocols defined in `Tool/` and implemented in `CommunicationBridge/ServiceDelegate.swift`.
34
+
-**Updates:** Uses [Sparkle](https://sparkle-project.org/) for in-app updates.
35
+
36
+
## Examples
37
+
- To add a new chat feature: create a folder in `Core/Sources/`, add logic, register in `Package.swift`, and connect via the appropriate service.
38
+
- To add a new editor command: implement in `EditorExtension/`, update `Info.plist`, and test in Xcode.
39
+
40
+
## References
41
+
- See `README.md` for user setup and onboarding.
42
+
- See `TROUBLESHOOTING.md` for common integration and permission issues.
43
+
- See `Core/Package.swift` for dependency and target structure.
44
+
45
+
---
46
+
For questions about unclear patterns or missing documentation, ask for clarification or check the latest onboarding docs in `Docs/`.
Copy file name to clipboardExpand all lines: CHANGELOG.md
+103Lines changed: 103 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,6 +5,109 @@ All notable changes to this project will be documented in this file.
5
5
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
8
+
## 0.43.0 - September 4, 2025
9
+
### Fixed
10
+
- Cannot type non-Latin characters in the chat input field.
11
+
12
+
## 0.42.0 - September 3, 2025
13
+
### Added
14
+
- Support for Bring Your Own Keys (BYOK) with model providers including Azure, OpenAI, Anthropic, Gemini, Groq, and OpenRouter. See [BYOK.md](https://github.com/github/CopilotForXcode/blob/0.42.0/Docs/BYOK.md).
15
+
- Use the current selection as chat context.
16
+
- Add folders as chat context.
17
+
- Shortcut to quickly fix errors in Xcode.
18
+
- Support for custom instruction files at `.github/instructions/*.instructions.md`. See [CustomInstructions.md](https://github.com/github/CopilotForXcode/blob/0.42.0/Docs/CustomInstructions.md).
19
+
- Support for prompt files at `.github/prompts/*.prompt.md`. See [PromptFiles.md](https://github.com/github/CopilotForXcode/blob/0.42.0/Docs/PromptFiles.md).
20
+
- Use ↑/↓ keys to reuse previous chat context in the chat view.
21
+
22
+
### Changed
23
+
- Default chat mode is now set to “Agent”.
24
+
25
+
### Fixed
26
+
- Cannot copy url from Safari browser to chat view.
27
+
28
+
## 0.41.0 - August 14, 2025
29
+
### Added
30
+
- Code review feature.
31
+
- Chat: Support for new model GPT-5.
32
+
- Agent mode: Added support for new tool to read web URL contents.
33
+
- Support disabling MCP when it's disabled by policy.
34
+
- Support for opening MCP logs directly from the MCP settings page.
35
+
- OAuth support for remote GitHub MCP server.
36
+
37
+
### Changed
38
+
- Performance: Improved instant-apply speed for edit_file tool.
39
+
40
+
### Fixed
41
+
- Chat Agent repeatedly reverts its own changes when editing the same file.
42
+
- Performance: Avoid chat panel being stuck when sending a large text for chat.
43
+
44
+
## 0.40.0 - July 24, 2025
45
+
### Added
46
+
- Support disabling Agent mode when it's disabled by policy.
47
+
48
+
## 0.39.0 - July 23, 2025
49
+
### Fixed
50
+
- Performance: Fixed a freezing issue in 'Add Context' view when opening large projects.
51
+
- Login failed due to insufficient permissions on the .config folder.
52
+
- Fixed an issue that setting changes like proxy config did not take effect.
53
+
- Increased the timeout for ask mode to prevent response failures due to timeout.
54
+
55
+
## 0.38.0 - June 30, 2025
56
+
### Added
57
+
- Support for Claude 4 in Chat.
58
+
- Support for Copilot Vision (image attachments).
59
+
- Support for remote MCP servers.
60
+
61
+
### Changed
62
+
- Automatically suggests a title for conversations created in agent mode.
63
+
- Improved restoration of MCP tool status after Copilot restarts.
64
+
- Reduced duplication of MCP server instances.
65
+
66
+
### Fixed
67
+
- Switching accounts now correctly refreshes the auth token and models.
68
+
- Fixed file create/edit issues in agent mode.
69
+
70
+
## 0.37.0 - June 18, 2025
71
+
### Added
72
+
-**Advanced** settings: Added option to configure **Custom Instructions** for GitHub Copilot during chat sessions.
73
+
-**Advanced** settings: Added option to keep the chat window automatically attached to Xcode.
74
+
75
+
### Changed
76
+
- Enabled support for dragging-and-dropping files into the chat panel to provide context.
77
+
78
+
### Fixed
79
+
- "Add Context" menu didn’t show files in workspaces organized with Xcode’s group feature.
80
+
- Chat didn’t respond when the workspace was in a system folder (like Desktop, Downloads, or Documents) and access permission hadn’t been granted.
81
+
82
+
## 0.36.0 - June 4, 2025
83
+
### Added
84
+
- Introduced a new chat setting "**Response Language**" under **Advanced** settings to customize the natural language used in chat replies.
85
+
- Enabled support for custom instructions defined in _.github/copilot-instructions.md_ within your workspace.
86
+
- Added support for premium request handling.
87
+
88
+
### Fixed
89
+
- Performance: Improved UI responsiveness by lazily restoring chat history.
90
+
- Performance: Fixed lagging issue when pasting large text into the chat input.
shellScript = "export PATH=/usr/local/bin:/opt/homebrew/bin:$PATH\n\nnpm -C Server install\ncp Server/node_modules/@github/copilot-language-server/native/darwin-arm64/copilot-language-server Server/node_modules/@github/copilot-language-server/native/darwin-arm64/copilot-language-server-arm64\n\necho \"Build and copy webview js/html files as the bundle resources\"\nnpm -C Server run build\nmkdir -p \"${BUILT_PRODUCTS_DIR}/${CONTENTS_FOLDER_PATH}/Resources/webViewDist\"\ncp -R Server/dist/* \"${BUILT_PRODUCTS_DIR}/${CONTENTS_FOLDER_PATH}/Resources/webViewDist/\"\n";
722
+
shellScript = "export PATH=/usr/local/bin:/opt/homebrew/bin:$PATH\n\nnpm -C Server install --force\ncp Server/node_modules/@github/copilot-language-server-darwin-arm64/copilot-language-server Server/node_modules/@github/copilot-language-server-darwin-arm64/copilot-language-server-arm64\n\necho \"Build and copy webview js/html files as the bundle resources\"\nnpm -C Server run build\nmkdir -p \"${BUILT_PRODUCTS_DIR}/${CONTENTS_FOLDER_PATH}/Resources/webViewDist\"\ncp -R Server/dist/* \"${BUILT_PRODUCTS_DIR}/${CONTENTS_FOLDER_PATH}/Resources/webViewDist/\"\n";
0 commit comments