What Makes Developer Duck Different?

Developer Duck is more than a wrapper around ChatGPT.

Let us count the ways...

  1. Xcode integration
  2. Command line support
  3. Numerous custom prompts depending on context.
  4. Automatically configures to your target language.
  5. Your content is not used for future ChatGPT training.
  6. Image and flow-chart generation within the conversation.
  7. Easy input and output. Quickly copy or save conversations to disk, and copy codeblocks with one click.
  8. Markdown and source code highlighting for both input and output.

Multiline Input

Developer Duck supports multiline input in the chat window, along with full Markdown support.

Configure your preference for Return Key Behavior in the chat window. Choose between Enter/Shift+Enter or Command+Enter/Enter for Submit/Newline respectively.

Quick Query with Global Hot Key

Open the Settings tab in Preferences, and set your custom global hotkey.

Your hotkey will open Quick Query, a Spotlight-like interface for quickly interacting with Developer Duck. You can toggle between Asking a question, requesting an Explanation for pasted code, or Generate code from a prompt with ⌘1, ⌘2, and ⌘3.

For each mode, you can press Enter to open the question in a conversation window.

Quick Query Modes: Ask, Explain, Generate

Quick Query is a Spotlight-like interface for quickly interacting with Developer Duck. You can toggle between Asking a question, requesting an Explanation for pasted code, or Generate code from a prompt.

For each mode, you can press Enter to open the question in a conversation window.

Ask

Type a short question and get a concise answer.

Explain

Ask about a confusing topic, or paste in source code for line-by-line comment explanations.

Generate

Write a short description of your desired code, and Developer Duck will reply with the generated code.

Which Model Should I Use?

Choosing a model is a tradeoff of accuracy, input/output length, and speed.

Recommendation

For non-subscribers, GPT-3.5 is recommended. GPT-4 is only available to subscribers and is the recommended model.

GPT-4

GPT-4 is the most recently released model, and allows for the highest quality outputs. Answer accuracy is highest, and the model allows for input/output twice the size of other models. GPT-4 is also slower than other models, but the accuracy and input/output size are generally worth it.

GPT-3.5

GPT-3.5 is a very capable model, and is the default at chat.openai.com. Ths model is slightly less accurate than GPT-4, but only allows for half of GPT-4's input and output lengths. For small scripts this can be acceptable, but for longer code content, the length limits may cause issues.

Is iPhone or iPad Supported?

Developer Duck is currently Mac-only. iOS support is lower on the priority list, as most development is focused on Xcode integrations and Swift app development.

Would you like iOS support? Get in touch and tell me how you'd use it!

Set up the Xcode Extension

The Developer Duck Xcode Extension comes pre-installed with the app, you only need to enable it to take advantage of Developer Duck within Xcode.

To enable the extension, open System Settings and go to the Extensions pane.

Open the Source Editor Extensions list...

...and make sure that XcodeDuck is enabled.

Now you can use Developer Duck commands from the Editor menu inside Xcode.

Xcode Extension is "still busy."

When an extension is running in Xcode, the only available UI to show that it is working is the "is busy" notification at the top of the file.

When you see this message in Xcode, it means the extension is working correctly and is currently processing your request.

You can cancel the request by clicking the Cancel button at the right side of the message.

You may also see error messages displayed in a similar way. The example below shows the message when a file is too large to be processed by Developer Duck.

Filesize is limited by the underlying AI models used by Developer Duck. As new models are released, processing larger files will be available.

Xcode Extension menu items are disabled

Only a single action is able to be run at a time - this is an Xcode limitation. When a command is running, all menu items will show as disabled. Once the current command finishes, the menu items will re-enable.

When an extension is running in Xcode, the only available UI to show that it is working is the "is busy" notification at the top of the file.

Xcode Extension uses Free Credit quickly

The Xcode extension uses the GPT-4 model from OpenAI. This model is roughly 10x more expensive than the GPT-3.5 model.

While the GPT-3.5 model works well for question-answer sessions in a Developer Duck chat window, particularly when able to iterate with user feedback. However, Xcode does not allow for any custom user interface or iteration with additional user input, and so the stronger model GPT-4 is required for consistent output.

Can I Use Keyboard Shortcuts with the Xcode Extension?

XcodeDuck, the Developer Duck Xcode extension, does not have keyboard shortcuts by default. However, you can setup your own keyboard shortcuts to whatever you prefer.

To setup custom shortcuts, open Xcode preferences and open the Key Bindings panel.

Filter to show only XcodeDuck commands.

Double click in the Key column to set a new keyboard shortcut.

Now you can use your keyboard shortcut instead of manually navigating to the item in the Editor menu.

Using x-callback-url?

You can trigger Developer Duck actions with custom x-callback-url URLs.

Start a Conversation

Use the link format: duck://x-callback-url/conversation/?prompt={your prompt}

Example: duck://x-callback-url/conversation/?prompt=Hello%20World

Start a Quick Query

Use the link format: duck://x-callback-url/quick-query/?query={your query}&mode=ask

Example: duck://x-callback-url/quick-query/?query={your query}&mode=ask

Allowed mode values are ask, explain, and generate.

Tips for Better Answers

Large language model (LLM) AIs like Developer Duck work by predicting the next most probable words to a conversation. This means that the recent conversation has a large impact on the next response that the AI will generate.

If Developer Duck seems stuck on a particular solution strategy, instead of changing course in the conversation as you would with another human, you might get a faster change of course by starting a new conversation with a question that starts with your new information and direction.

Remember - Developer Duck is for rubber duck debugging, it's here to help you understand, think through, and solve the problem yourself. Here are some sample questions for you to ask Developer Duck to help your conversations:

  • Are there other options I should consider?
  • What are some other ways to solve this problem?
  • Here's my code so far: [insert code block] and I'm getting this compiler error: [insert error]
  • Are there print statements we can add to help debug this? [later] Here is the console output of the debug prints: [code block of console]

As with everything in life, the quality of the output depends on the quality of the input!

What Is Quack Mode?

What does rubber duck debugging really need? More quacks!

Get in touch

If your question hasn't been answered, contact us at adam@adamwulf.me.