Releases: intitni/CopilotForXcode
0.19.1
Please restart Xcode to finish the update.
- Fix the issue where the extension service may fail to register some AXNotifications if Xcode is opened after the service.
New in 0.19.0
- Add new suggestion presentation mode: nearby text cursor. It's recommended to set the real-time suggestion debounce to something greater than 0 if you are using this mode. Remove comment mode. Go toggle it on in the suggestion feature settings!
- Update Codeium to 1.2.40.
- Accepting suggestion in widget will automatically fall back to using Accessibility API when the command menu is not available. If the button is not working for you, please turn on “Always use Accessibility API to accept suggesting” in advanced settings.
- Fix #269
- Fix #266
Pull Requests
- Read xcode version from inspector by @intitni in #268
- New suggestion presentation mode: nearby text cursor by @intitni in #270
- Update launch agent template by @intitni in #272
- Fix that the widget will be brought to front when switching spaces by @intitni in #273
- Bump Codeium version to 1.2.40 by @intitni in #274
- Make full screen detector transient so it won't show up in Mission Control by @intitni in #275
Full Changelog: 0.18.2...0.19.0
0.19.0
Please restart Xcode to finish the update.
- Add new suggestion presentation mode: nearby text cursor. It 's recommended to set the real-time suggestion debounce to 0.1 if you are using this mode. Remove comment mode.
- Update Codeium to 1.2.40.
- Accepting suggestion in widget will automatically fallback to use Accessibility API when the command menu is not available.
- Fix #269
- Fix #266
Pull Requests
- Read xcode version from inspector by @intitni in #268
- New suggestion presentation mode: nearby text cursor by @intitni in #270
- Update launch agent template by @intitni in #272
- Fix that the widget will be brought to front when switching spaces by @intitni in #273
- Bump Codeium version to 1.2.40 by @intitni in #274
- Make full screen detector transient so it won't show up in Mission Control by @intitni in #275
Full Changelog: 0.18.2...0.19.0
0.18.2
Please restart Xcode to finish the update.
- Add support for the new 16K model and 0613 models.
- Search chat plugin now replies in the preferred language.
- Add chat plugin
\shortcutInput(shortcut name)
to generate and send a user message to the bot.
The new function calling feature in ChatGPT is remarkable, we will be able to integrate some of the plugins and scopes into the bot without having to write an agent!
What's New in 0.18.1
- May have fixed #172 (again!)
- Support setting up a proxy for GitHub Copilot.
- Fix that undoing in chat text view may crash the app.
- Support new chat plugin:
/shortcut(shortcut name)
: It will run a shortcut from the Shortcuts.app with your message (or the previous message if the new message is empty) as input, and reply with it's output. It may not have the permission to do everything like accessing your photo library.
For example, if you have a shortcut like this one:

You can send /shortcut(translate) Hello world!
to get "你好世界!" in reply, or, send /shortcut(translate)
to let it translate the previous message. (Stop and output is not needed here.)
What's New in 0.18.0
-
We now support 2 new chat plugins:
- /math: This plugin allows you to solve a simple math problem in natural language.
- /search: This plugin can search on Bing and get an answer to your question. We chose Bing because it has a good enough free tier. To use this plugin, you will need to provide a subscription key in the host app. (Disclaimer: It's not as good as Bing Chat.)
Both of these plugins currently lack the knowledge of the chat history.
-
You can now personalize the bot by setting the default system prompt.
-
For custom commands of open chat and custom chat, they now support the following template arguments:
Argument Description {{selected_code}}
The currently selected code in the editor. {{active_editor_language}}
The programming language of the active editor. {{active_editor_file_url}}
The URL of the active file in the editor. {{active_editor_file_name}}
The name of the active file in the editor. If you prefer the old behavior of chat with selection, you can build your own command to send the code into the extra system prompt.
-
May have fixed #172 (If you still experience the crash, please help me debug it)
I have been experimenting with LangChain over the past few days and found it possible to embed the Python version of LangChain and use it with PythonKit. However, the experience was not optimal and it made the code sign take more time. Therefore, I decided to implement part of the chain and agent functionality in Swift and built the search plugin with it. Having a natively implemented chain and agent allows me to have better control over their behavior, and makes it easier to integrate native tools. I am still considering embedding LangChain (Python or Javascript, decision not yet made) in future versions to utilize their well-implemented and tested chains.
Pull Requests
- Display instructions in the chat panel by @intitni in #240
- Disable LazyVStack by @intitni in #241
- LangChain by @intitni in #242
- Custom command inserting {{selected_code}} by @intitni in #244
- Re-implement math plugin in swift by @intitni in #246
- Search chat plugin by @intitni in #247
- Add auto completion for chat plugins and scopes by @intitni in #248
Full Changelog: 0.17.1...0.18.0
0.18.1
Please restart Xcode to finish the update.
- May have fixed #172 (again!)
- Support setting up a proxy for GitHub Copilot.
- Fix that undoing in chat text view may crash the app.
- Support new chat plugin:
/shortcut(shortcut name)
: It will run a shortcut from the Shortcuts.app with your message (or the previous message if the new message is empty) as input, and reply with it's output. It may not have the permission to do everything like accessing your photo library.
For example, if you have a shortcut like this one:

You can send /shortcut(translate) Hello world!
to get "你好世界!" in reply, or, send /shortcut(translate)
to let it translate the previous message. (Stop and output is not needed here.)
What's New in 0.18.0
-
We now support 2 new chat plugins:
- /math: This plugin allows you to solve a simple math problem in natural language.
- /search: This plugin can search on Bing and get an answer to your question. We chose Bing because it has a good enough free tier. To use this plugin, you will need to provide a subscription key in the host app. (Disclaimer: It's not as good as Bing Chat.)
Both of these plugins currently lack the knowledge of the chat history.
-
You can now personalize the bot by setting the default system prompt.
-
For custom commands of open chat and custom chat, they now support the following template arguments:
Argument Description {{selected_code}}
The currently selected code in the editor. {{active_editor_language}}
The programming language of the active editor. {{active_editor_file_url}}
The URL of the active file in the editor. {{active_editor_file_name}}
The name of the active file in the editor. If you prefer the old behavior of chat with selection, you can build your own command to send the code into the extra system prompt.
-
May have fixed #172 (If you still experience the crash, please help me debug it)
I have been experimenting with LangChain over the past few days and found it possible to embed the Python version of LangChain and use it with PythonKit. However, the experience was not optimal and it made the code sign take more time. Therefore, I decided to implement part of the chain and agent functionality in Swift and built the search plugin with it. Having a natively implemented chain and agent allows me to have better control over their behavior, and makes it easier to integrate native tools. I am still considering embedding LangChain (Python or Javascript, decision not yet made) in future versions to utilize their well-implemented and tested chains.
Pull Requests
- Display instructions in the chat panel by @intitni in #240
- Disable LazyVStack by @intitni in #241
- LangChain by @intitni in #242
- Custom command inserting {{selected_code}} by @intitni in #244
- Re-implement math plugin in swift by @intitni in #246
- Search chat plugin by @intitni in #247
- Add auto completion for chat plugins and scopes by @intitni in #248
Full Changelog: 0.17.1...0.18.0
0.18.0
Please restart Xcode to finish the update.
Looks like we will have to stay together for a longer while.
-
We now support 2 new chat plugins:
- /math: This plugin allows you to solve a simple math problem in natural language.
- /search: This plugin can search on Bing and get an answer to your question. We chose Bing because it has a good enough free tier. To use this plugin, you will need to provide a subscription key in the host app. (Disclaimer: It's not as good as Bing Chat.)
Both of these plugins currently lack the knowledge of the chat history.
-
You can now personalize the bot by setting the default system prompt.
-
For custom commands of open chat and custom chat, they now support the following template arguments:
Argument Description {{selected_code}}
The currently selected code in the editor. {{active_editor_language}}
The programming language of the active editor. {{active_editor_file_url}}
The URL of the active file in the editor. {{active_editor_file_name}}
The name of the active file in the editor. If you prefer the old behavior of chat with selection, you can build your own command to send the code into the extra system prompt.
-
May have fixed #172 (If you still experience the crash, please help me debug it)
I have been experimenting with LangChain over the past few days and found it possible to embed the Python version of LangChain and use it with PythonKit. However, the experience was not optimal and it made the code sign take more time. Therefore, I decided to implement part of the chain and agent functionality in Swift and built the search plugin with it. Having a natively implemented chain and agent allows me to have better control over their behavior, and makes it easier to integrate native tools. I am still considering embedding LangChain (Python or Javascript, decision not yet made) in future versions to utilize their well-implemented and tested chains.
Pull Requests
- Display instructions in the chat panel by @intitni in #240
- Disable LazyVStack by @intitni in #241
- LangChain by @intitni in #242
- Custom command inserting {{selected_code}} by @intitni in #244
- Re-implement math plugin in swift by @intitni in #246
- Search chat plugin by @intitni in #247
- Add auto completion for chat plugins and scopes by @intitni in #248
Full Changelog: 0.17.1...0.18.0
0.17.1
Please restart Xcode to finish the update.
- Stop displaying the cancellation errors from Codeium in UI. Fixes #237
What's New in 0.17.0
- Copilot.vim is no longer embedded within the app. New users will need to click the install button to download it. If you are updating to this version, the language server was already moved to the appropriate location.
- The keychain group is now correctly being used to store the Codeium auth key. However, it's uncertain whether the migration was implemented correctly, so you may need to sign in again after upgrading.
- Codeium has been bumped up to version 1.2.25.
- Azure OpenAI is now supported and it is lightning fast.
- Certain settings have been moved from OpenAI settings to Chat settings.
- The app will now attempt to notify suggestion services about the previously opened files on launch so that they will know which files are already open.
- Suggestions will now be invalidated when you move the cursor to another line.
- If you are simply typing what the suggestion offers, the app will not request new suggestions.
- Suggestions will no longer be cancelled by mouse clicking or arrow keys.
- In 0.16 the chat gained the ability to read your selected code. If you don't want it to do it automatically, you can now turn it off in the host app. You can still prepend the message with
@selection
to let it read the selected code. - Some fixes.
0.17.0
Please restart Xcode to finish the update.
- Copilot.vim is no longer embedded within the app. New users will need to click the install button to download it. If you are updating to this version, the language server was already moved to the appropriate location.
- The keychain group is now correctly being used to store the Codeium auth key. However, it's uncertain whether the migration was implemented correctly, so you may need to sign in again after upgrading.
- Codeium has been bumped up to version 1.2.25.
- Azure OpenAI is now supported and it is lightning fast.
- Certain settings have been moved from OpenAI settings to Chat settings.
- The app will now attempt to notify suggestion services about the previously opened files on launch so that they will know which files are already open.
- Suggestions will now be invalidated when you move the cursor to another line.
- If you are simply typing what the suggestion offers, the app will not request new suggestions.
- Suggestions will no longer be cancelled by mouse clicking or arrow keys.
- In 0.16 the chat gained the ability to read your selected code. If you don't want it to do it automatically, you can now turn it off in the host app. You can still prepend the message with
@selection
to let it read the selected code. - Some fixes.
Pull Requests
- Recover opened filespaces by @intitni in #227
- Stop embedding GitHub Copilot LSP and change license by @intitni in #228
- Update license by @intitni in #229
- Real time suggestion tweak by @intitni in #230
- Codeium 1.2.25 by @intitni in #231
- Azure OpenAI by @intitni in #232
- Chat scope selection by @intitni in #233
Full Changelog: 0.16.1...0.17.0
0.16.1
Please restart Xcode to finish the update
- Fix that Objective-C code was not highlighted in chat.
- Fix that widgets were not displaying when Xcode was moved to another space.
What's New in 0.16.0
- The cancel request feature for GitHub Copilot has been implemented. For both GitHub Copilot and Codeium users, it is now recommended to set the real-time suggestion debounce to ZERO.
- The "Chat with Selection" feature has been removed. However, the chat will now look at your active editor for the selected code. It can now identify:
- The selected code in the active editor.
- The relative path of the file.
- The error and warning labels in the active editor.
- Your text cursor location.
- If you want the chat to read the whole file, you can prepend the message with
@file
. But please note that you may not have enough tokens to put large files into the context. - The bottom bar of the chat now has a context menu where you can check the current system prompt, reset system prompt, and run any chat-based custom commands.
- You can now ask the custom prompt to code command to not generate a description.
If you, like me, are using a custom command to polish documentation that is not in your preferred language, you may find that it sometimes translates the documentation into your language. This is because there is a line in the prompt that asks for a description of what it did in your preferred language. Now you can turn it off.
0.16.0
- The cancel request feature for GitHub Copilot has been implemented. For both GitHub Copilot and Codeium users, it is now recommended to set the real-time suggestion debounce to ZERO.
- The "Chat with Selection" feature has been removed. However, the chat will now look at your active editor for the selected code. It can now identify:
- The selected code in the active editor.
- The relative path of the file.
- The error and warning labels in the active editor.
- Your text cursor location.
- If you want the chat to read the whole file, you can prepend the message with
@file
. But please note that you may not have enough tokens to put large files into the context. - The bottom bar of the chat now has a context menu where you can check the current system prompt, reset system prompt, and run any chat-based custom commands.
- You can now ask the custom prompt to code command to not generate a description.
If you, like me, are using a custom command to polish documentation that is not in your preferred language, you may find that it sometimes translates the documentation into your language. This is because there is a line in the prompt that asks for a description of what it did in your preferred language. Now you can turn it off.
Pull Request
- Dynamic chat with editor context by @intitni in #219
- Fix request cancellation for GitHub copilot by @intitni in #220
- Chat menu by @intitni in #221
- More settings on custom command by @intitni in #222
Full Changelog: 0.15.4...0.16.0
0.15.4
This guy is writing a lot of bug...
What's New
- Fixed that launch agent was not installed at launch.
- Addressed an issue where the chat was not displaying in certain Xcode windows.
- Resolved a problem where widgets were not disappearing after minimizing Xcode.
- Implemented a default system prompt for the chat to when the chat is not opened with a command.
- Added an install/uninstall button for GitHub Copilot language server.
What's New in 0.15.0
- Support Codeium as a provider for the Suggestion feature.
- New host app UI that is better structured.
- Closed files will be cleaned up more frequently, hope that it can make the suggestions more accurate.
- Improve the prompt of the Prompt to Code feature.
- Updated both Chat and Prompt to Code to use a dynamic height scrollable text editor with better performance.
- Support disabling languages from the Suggestion feature.
- Rename global chat and file chat to "Shared Conversation" and "Local Conversation" to avoid misunderstanding.
- Support opening chat from the menu bar item, it will open a shared-conversation detached chat even if Xcode is not launched.
- Support opening the host app from the menu bar item.
- Closing chat or prompt to code panel will reactivate Xcode if Xcode was the previously active application.
- Change the menu bar icon to a tentacle.
- Update Copilot.vim to 1.8.4.
- Remove an order front hack that keeps calling
NSWindow.orderFront
to make the widgets displayed when Xcode is in fullscreen mode. It will now callorderFront
only when Xcode enters fullscreen.