{"id":39367,"date":"2023-05-12T15:41:13","date_gmt":"2023-05-12T19:41:13","guid":{"rendered":"https:\/\/mjtsai.com\/blog\/?p=39367"},"modified":"2023-05-29T13:48:16","modified_gmt":"2023-05-29T17:48:16","slug":"llm-coding-tools-in-xcode","status":"publish","type":"post","link":"https:\/\/mjtsai.com\/blog\/2023\/05\/12\/llm-coding-tools-in-xcode\/","title":{"rendered":"LLM Coding Tools in Xcode"},"content":{"rendered":"<p><a href=\"https:\/\/kadekillary.work\/posts\/1000x-eng\/\">Kade Killary<\/a> (via <a href=\"https:\/\/news.ycombinator.com\/item?id=35356054\">Hacker News<\/a>):<\/p>\n<blockquote cite=\"https:\/\/kadekillary.work\/posts\/1000x-eng\/\"><p>Therefore, in this article I&rsquo;ll cover how to catapult your productivity to the heavens via a series of command line wrapper functions around the OpenAI API.<\/p><p>[&#8230;]<\/p><p>I think the real differentiator in the coming months\/years will be developer productivity. Good, bad or indifferent there seems to a be an unavoidable advantage to those who aggressively adopt workflows that lean into AI versus fighting, or ignoring, it. I think there is an oncoming paradigm of rapid prototyping combined with simulation that will help to isolate and test various components of a project. Additionally, the ability for translating languages and developer productivity in new languages.<\/p><\/blockquote>\n\n<p><a href=\"https:\/\/twitter.com\/ConfusedVorlon\/status\/1656958342697287680\">Rob Jonson<\/a>:<\/p>\n<blockquote cite=\"https:\/\/twitter.com\/ConfusedVorlon\/status\/1656958342697287680\"><p>[Google Codey is available] through extensions in all major IDEs. \nExcept of course xcode.\nBecause Apple protected us from a rogue plugin by killing plugins.<\/p><p>(yes - technically extensions are still a thing, but they&rsquo;re so limited they might as well not be)<\/p><\/blockquote>\n\n<p>Xcode source editor extensions are not at the same level, but there is one for Copilot. <a href=\"https:\/\/christiantietze.de\/posts\/2023\/04\/copilot-for-xcode-works\/\">Christian Tietze<\/a>:<\/p>\n<blockquote cite=\"https:\/\/christiantietze.de\/posts\/2023\/04\/copilot-for-xcode-works\/\">\n<p>Just yesterday, I used the <a href=\"https:\/\/github.com\/intitni\/CopilotForXcode\">Copilot Xcode plugin<\/a> to write a lot of boilerplate for me. I can confirm it does its job.<\/p>\n<p>I used it to help me write a unit test <a href=\"https:\/\/medium.com\/@pena.fernan\/test-doubles-by-example-in-swift-558e9f47de52\">spy<\/a> for an umbrella repository, or fa&ccedil;ade, that conforms to 5 protocols. In my human mind, there was rhythm and similarity, but code completion can&rsquo;t help there.<\/p>\n<\/blockquote>\n\n<p>And there are a variety of tools that give you a text box outside of Xcode:<\/p>\n\n<p><a href=\"https:\/\/www.macstories.net\/ios\/introducing-s-gpt-a-shortcut-to-connect-openais-chatgpt-with-native-features-of-apples-operating-systems\/\">Federico Viticci<\/a>:<\/p>\n<blockquote cite=\"https:\/\/www.macstories.net\/ios\/introducing-s-gpt-a-shortcut-to-connect-openais-chatgpt-with-native-features-of-apples-operating-systems\/\">\n<p>At a high level, S-GPT is a shortcut that lets you ask ChatGPT questions from an input box on your iPhone, iPad, or Mac; answers are returned by ChatGPT and displayed in an alert on your devices. You can ask whatever you want, wait a couple of seconds, and get a response back from the assistant. S-GPT only supports text, and there are no limits in terms of question length.<\/p>\n<\/blockquote>\n\n<p><a href=\"https:\/\/sindresorhus.gumroad.com\/l\/quickgpt\">QuickGPT<\/a> (<a href=\"https:\/\/mastodon.social\/@sindresorhus\/110184375604803590\">Mastodon<\/a>):<\/p>\n<blockquote cite=\"https:\/\/sindresorhus.gumroad.com\/l\/quickgpt\">\n<p>Easily access ChatGPT from the menu bar, Dock, or using a keyboard shortcut.<\/p>\n<\/blockquote>\n\n<p><a href=\"https:\/\/shortcircuit.chat\/\">Joe Fabisevich<\/a> (via <a href=\"https:\/\/daringfireball.net\/linked\/2023\/04\/17\/short-circuit\">John Gruber<\/a>):<\/p>\n<blockquote cite=\"https:\/\/shortcircuit.chat\/\"><p>Short Circuit works on on your iPhone, iPad, and Mac. Now you can have a premium ChatGPT experience no matter where you are or what you&rsquo;re doing.<\/p><\/blockquote>\n\n<p>Previously:<\/p>\n<ul>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2023\/05\/11\/google-codey\/\">Google Codey<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2023\/04\/26\/cheating-is-all-you-need\/\">Cheating Is All You Need<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2023\/04\/04\/chatgpt-plug-ins\/\">ChatGPT Plug-ins<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2023\/03\/23\/github-copilot-x\/\">GitHub Copilot X<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2023\/03\/16\/petey-1-1-2\/\">Petey 1.1.2<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2023\/02\/24\/chatgpt-for-apple-platforms-development\/\">ChatGPT for Apple Platforms Development<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2022\/07\/08\/xcode-14-swift-package-plug-ins\/\">Xcode 14: Swift Package Plug-ins<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2016\/06\/22\/xcode-8-tips-and-issues\/\">Xcode 8 Tips and Issues<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2015\/08\/14\/an-xcode-plug-in-for-unsmoothed-text\/\">An Xcode Plug-in for Unsmoothed Text<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2006\/06\/08\/xcodes-plug-in-interface\/\">Xcode&rsquo;s Plug-In Interface<\/a><\/li>\n<\/ul>\n\n<p id=\"llm-coding-tools-in-xcode-update-2023-05-29\">Update (2023-05-29): <a href=\"https:\/\/developerduck.app\/\">Adam Wulf<\/a>:<\/p>\n<blockquote cite=\"https:\/\/developerduck.app\/\">\n<p>There are many tasks during my development day that take up significant time, not because they&rsquo;re complicated, but because they&rsquo;re tedious. With Developer Duck, these tasks are significantly faster. I use it for adding DocC comments, writing simple extensions, writing tests for those extensions, and even researching unfamiliar APIs.<\/p>\n<\/blockquote>","protected":false},"excerpt":{"rendered":"<p>Kade Killary (via Hacker News): Therefore, in this article I&rsquo;ll cover how to catapult your productivity to the heavens via a series of command line wrapper functions around the OpenAI API.[&#8230;]I think the real differentiator in the coming months\/years will be developer productivity. Good, bad or indifferent there seems to a be an unavoidable advantage [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"apple_news_api_created_at":"2023-05-12T19:41:16Z","apple_news_api_id":"a87ef2b4-1593-401f-bfd4-1905ddd7d8c6","apple_news_api_modified_at":"2023-05-29T17:48:18Z","apple_news_api_revision":"AAAAAAAAAAAAAAAAAAAAAQ==","apple_news_api_share_url":"https:\/\/apple.news\/AqH7ytBWTQB-_1BkF3dfYxg","apple_news_coverimage":0,"apple_news_coverimage_caption":"","apple_news_is_hidden":false,"apple_news_is_paid":false,"apple_news_is_preview":false,"apple_news_is_sponsored":false,"apple_news_maturity_rating":"","apple_news_metadata":"\"\"","apple_news_pullquote":"","apple_news_pullquote_position":"","apple_news_slug":"","apple_news_sections":"\"\"","apple_news_suppress_video_url":false,"apple_news_use_image_component":false,"footnotes":""},"categories":[4],"tags":[1351,2317,2381,75,905,2091,31,2185,26,30,32,2223,2361,71,1686,226],"class_list":["post-39367","post","type-post","status-publish","format-standard","hentry","category-programming-category","tag-artificial-intelligence","tag-chatgpt","tag-codey","tag-developertool","tag-extensions","tag-github-copilot","tag-ios","tag-ios-16","tag-iosapp","tag-mac","tag-macapp","tag-macos-13-ventura","tag-openai","tag-programming","tag-shortcuts","tag-xcode"],"apple_news_notices":[],"_links":{"self":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/39367","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/comments?post=39367"}],"version-history":[{"count":3,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/39367\/revisions"}],"predecessor-version":[{"id":39523,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/39367\/revisions\/39523"}],"wp:attachment":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/media?parent=39367"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/categories?post=39367"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/tags?post=39367"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}