Skip to content

Frequently Asked Questions

Shx Guo edited this page Feb 19, 2024 · 39 revisions

Host app: Copilot for Xcode.app

Service app: CopilotForXcodeExtensionService.app

The App

Q: Do I have to keep the app running?

A: You don't have to keep the host app running. The service app will launch whenever Xcode launches or a command is called. If the service app crashes, you can run a command to restart it.

Q: The extension doesn't show up in the Editor menu.

A: Please make sure Copilot is turned on in System Settings.app > Privacy & Security > Extensions > Xcode Source Editor Extension.

Q: The extension says it can't connect to the XPC service/helper or the XPC Service version loading never ends.

A: Please make sure the app is in the Applications folder. If you are installing multiple versions of the extension on your machine, it's also possible that Xcode is using the older version of the extension.

Please try using the setup launch agent button to set up the launch agent and restart the app.

If the button in the app doesn't work, please try one of the following:

  • Open Login Items under System Settings and give "Allow in the background permission" to Copilot for Xcode.

  • Reboot the Mac, and try setting up again.

  • Or create the launch agent by hand.

    This is an example of the .plist file. Please note that the application path may need to be adjusted based on your installation location.

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
        <key>Label</key>
        <string>com.intii.CopilotForXcode.ExtensionService</string>
        <key>Program</key>
        <string>/Applications/Copilot for Xcode.app/Contents/Applications/CopilotForXcodeExtensionService.app/Contents/MacOS/CopilotForXcodeExtensionService</string>
        <key>MachServices</key>
        <dict>
            <key>com.intii.CopilotForXcode.ExtensionService</key>
            <true/>
        </dict>
        <key>AssociatedBundleIdentifiers</key>
        <array>
            <string>com.intii.CopilotForXcode</string>
            <string>com.intii.CopilotForXcode.ExtensionService</string>
        </array>
    </dict>
    </plist>

    After creating the file, run these from the terminal:

    chmod 755 ~/Library/LaunchAgents/com.intii.CopilotForXcode.ExtensionService.plist
    launchctl load ~/Library/LaunchAgents/com.intii.CopilotForXcode.ExtensionService.plist
    

Q: The extension complains that it has no access to the Accessibility API

A: Please check if the Accessibility API permission is set up correctly.

Q: I quit the service app accidentally, how do I restart it?

A: Every time you run a command, open Xcode, open Copilot for Xcode.app, the service app will be launched.

Q: How do I remove commands from the KeyBinding settings page if they are no longer available?

A: The key binding configuration is stored at ~/Library/Developer/Xcode/UserData/KeyBindings. You can open the configuration file in any text editor and remove any item whose CommandID contains com.intii.CopilotForXcode.EditorExtension.

Q: The widget says it can't run a command.

A: Some commands require to click on the Xcode menu bar > Editor > Copilot > Command. The app uses the Accessibility API to perform the click. However, in this case, the app may fail to find the menu item.

Please ensure that you have enabled the Source Editor Extension in the System Settings app to avoid this issue.

Q: The Copilot menu grays out after updating Copilot for Xcode. Or the keybindings stop working.

A: If it only happens after updating Copilot for Xcode, It's an expected behavior, please restart Xcode to to let it reload the extension to finish the update. If it happens in other cases, please open an issue to let me know.

Q: I clicked the accept button but nothing happened. (or using keybindings, tab)

A: If the accept button/keybinding/tab doesn't work, it's very likely the Copilot menu in Xcode - Menu Bar - Editor is greyed out. It's an Xcode bug that usually happens right after you update the extension. It can only be cured by restarting Xcode. So please remember to restart Xcode after updating the extension.

Another possible cause is you have multiple versions of Copilot for Xcode.app on your Mac, and Xcode is confused by them.

You can also give the toggle "Trigger command with Accessibility API" in the advanced settings. Please open an issue if this toggle fixes the problem.

Q: The app loses track of Xcode.

A: Please re-activate the observations from the menu app. If it happens all the time, consider turning "Re-activate Xcode Inspector when Accessibility API malfunctioning detected" on in the advanced settings.

Q: Keybindings are not working.

A: If the keybindings you set in Xcode are not working, it may be an Xcode bug. You can try setting up a keybinding from the System Settings.app > Keyboard > Keyboard Shortcuts > App Shortcuts.

For example, type Editor->Copilot->Accept Suggestion in the menu title field to set up a keybinding for the accept suggestion command.

Q: The app seems to make typing in Xcode slower.

A: Please try turning up the debounce value in the suggestion feature. I am still looking for a best value.

GitHub Copilot

Q: Host app shows Server unavailable, please make sure you have installed Node, or GitHub Copilot not working.

A: Please ensure that the Path to Node correctly points to a valid Node executable. Avoid using ~ in place of /Users/username

If you are using Node version v16 or anything lower, consider updating to a newer version of Node.

If you're using nodenv or other version manager that uses executable shimming, use the path that points to a specific version of Node, such as /Users/username/.nodenv/versions/19.8.1/bin/node.

You can also try setting "run node with" to other options.

After making changes, be sure to restart both the host app and the helper app.

If none of the above is working for you, you can observe the logs posted by the language server using the Console.app.

  • Set the filter to the category:GitHubCopilot to show only the logs from the language server. See if there is anything you can do.
  • Set the filter to process:CopilotForXcodeExtensionService to show only logs from the helper app.
  • Set the filter to process:Copilot for Xcode to show only logs from the host app.

You can turn on verbose log and see if anything useful is printing on the console.

Q: Host app shows timeout (or other errors) when signing in to GitHub Copilot.

A: The language server seems to be not working correctly. You can observe the logs posted by the language server using the Console.app. Set up the filter to the process CopilotForXcodeExtensionService and subsystem com.chimehq.JSONRPC to show only the logs from the language server. See if there is anything you can do.

Also, make sure you are not doing any thing in you hosts file about GitHub.

Q: I have signed in to my GitHub account, but the app doesn't generate any suggestions.

A: Please make sure the GitHub Copilot status is OK. If it's not, it's likely that your GitHub Copilot subscription is not valid.

If you are new to GitHub Copilot, it's recommended to visit its official website to learn about its behavior.

Q: The GitHub Copilot status is Not Authorized, or anything not OK.

A: Please make sure your GitHub Copilot subscription is valid.

Q: The widget presents a LanguageServerError that has no enough information about what the cause is.

A: The error is posted by the GitHub Copilot language server. Most of the time you can just ignore it. If the error persists, please try:

  1. Check you GitHub Copilot settings in the host app, make sure the status is OK.
  2. You can observe the logs posted by the language server using the Console.app. Set up the filter to the process CopilotForXcodeExtensionService. See if there is anything you can do.

Q: Can I use the GitHub Copilot Chat

A: It's under investigation and no ETA available yet. #380

Codeium

Q: Codeium not generating suggestions.

A: You can turn on the verbose log toggle from the Codeium service settings to view the activity in the Console.app. To see the logs specifically from the Codeium language server, use the filter Codeium.

Q: Can I use the Codeium Chat

A: It's under investigation and no ETA available yet.

Suggestion

Q: I turned on real-time suggestions, but nothing happened

A: Try typing something in the editor and wait for a little while, if you see an animation from the real-time suggestion indicator or the floating widget, that means the real-time suggestion is correctly triggered.

Q: The editor jumps when I accept a suggestion

A: It happens when the "Copilot" menu grays out or you have enabled "Always accept suggestion with Accessibility API" in the advanced tab.

For the first case, please restart Xcode.

Chat

Q: I have subscribed to ChatGPT Plus but..

A: The ChatGPT Plus and the ChatGPT API key are different products using different billing systems, and ChatGPT Plus is only available at chat.openai.com.

Please get an API key from https://platform.openai.com/account/api-keys and blame OpenAI for the mess. You may have to enter some billing details before the API key works, you can find more details from openai.com.

Q: When I tried to use gpt-4 models, I got the message "The model: gpt-4-xx does not exist".

A: To access GPT-4 models, please check the link from OpenAI for details.

Q: I ask the bot what model it's using, but the answer is incorrect

A: The bot doesn't know what model it's using, but I will try to reply to you as if it knows.

You can get the correct answer from ChatGPT because they have added this information to the system prompt for you. But every token is money, we didn't include this in the system prompt.

Q: The model is responding with weird content that is not readable.

A: Please make sure the temperature of the chat feature and the chat tab is lower than 1. A higher temperature will make the bot too creative and generate weird response that human can't read.

Plus License

Q: How to deactivate the license key?

A: If you have the key activated in Copilot for Xcode, you can click "Deactivate" in the Plus tab to deactivate.

If you have just got a new Mac but forgot to deactivate it before selling it, you can still deactivate it following this instruction

If the app can't find your activation after an update, it may be that the key is missing for some unknown reason. Please follow the same instructions to deactivate it.

If you can't access the order details on Lemon Squeezy, you can contact me to deactivate it for you.

Others

Q: Will it work in future Xcode updates?

A: I don't know. This extension uses many tricks to do its job, and these tricks can break in the future.

Clone this wiki locally