Hacker News new | ask | show | jobs
Show HN: Yet another macOS ChatGPT app (letsflyai.com)
28 points by evindor 1089 days ago
What I thought would take me weeks in development, took me months, but it's finally out. When ChatGPT API came out in March, my first idea of what to build with it was a spotlight-like app for my mac. The product was ready in a matter of days, but making it useful and sellable to people via some kind of distribution platform was another challenge. Coming from web development, learning how to ship a native app was a trip, but here it is, ready to share with the world. Try it out with the free trial, and I'd appreciate any kind of feedback.
10 comments

Even just in this listing, I would advocate against titling it "yet another...". It makes it harder to read past and understand a unique selling proposition (USP).

It looks like you do capture something unique, the ease of using "contexts" for the predefined prompts is component of user experience. I've defined custom prompts in another desktop app, but I never remember to use them.

- I would encourage you to walk through the workflow on the homepage:

  - Hot-key summon (I'm assuming)
  - Contexts, for translation, terminal help, web help, general assistant——select with tab
  - Quick, desired reply with minimum of typing.
- Crisp, shorter language: "Prompt fast", "have/keep your favorite/common/best contexts/prompts/tasks ready""

  $ printf '%s\n' {have,keep}\ your\ {favorite,common,best}\ {contexts,prompts,tasks}\ ready
- It might be worth explaining, and explaining the unicode symbols for the system prompt and prompt prefix at the top of settings. Or having a descriptive prototype prompt.

  [Context name / Prompt title]
  [:gear:] [System prompt]
  [:person-with-laptop:] [Prefix preset for task prompt]
It seems like user education is a net benefit.

- A workflow that coaches ("prompts") someone though adding prompts could be a useful addition.

Unfortunately I'm on an older intel MBP and can't install macOS 13 Ventura, and so I can't try out your app. Good luck!.

Thanks a lot for you notes! Building a wrapper around ChatGPT I couldn't hold myself back from some self-irony, thus "yet another". Contexts do seem very useful for myself and the most interesting feature for the paying users I've got so far, so maybe you're right that I should out this feature front and center for this app marketing.
> I would advocate against titling it "yet another..."

But it's YMCA ..

That hilarious. Y[a]MCA :notes: Yet another Mac Chat App
Downloaded, saw "Sign in to start your free trial", which turned me off immediately unfortunately. So I'm probably not the intended audience - I'd like to have a fast, reliable Mac UI to use with my OpenAI API key.

So far I've been using Machato (https://untimelyunicorn.gumroad.com/l/machato), which has the perfect feature set for me, but despite its claims of being a native app, is just infuriatingly slow. You can't at all scroll in the app while it's producing text, and switching between conversations feels worse than using Slack.

So the search continues. What makes it so hard to produce a responsive native app, that there are so few of them out there?

Recently, I created a native mac software. I have not encountered any performance problems so far. It is still in the Beta version. It will be released here later. You can download it here for a trial first https://chattab.app
Machato is the closest I've found as well, other than CLI / console tools or "roll your own".

Ability to set (and save) system contexts is critical. It's unclear to me why most apps don't enable this.

I can't get by without Machato's other innovation of suppressing earlier parts of the history I no longer need later in the conversation, making it straightforward to have 64k interactions with the 8k model.

Ability to fork and file conversations, as well as the cost monitoring, are gravy.

- https://untimelyunicorn.gumroad.com/l/machato

- https://github.com/sigoden/aichat

I love Machato but I don’t understand why it’s performance on my M1 Mac is so abysmal
Hi there ! Machato dev here.

Honestly, this is my first macOS app and I'm a bit out of ideas when it comes to performance. If anyone has tehcnical knowledge about SwiftUI and how I could improve performance, please do contact me ! (contact@machato.app)

My experience has been that the SwiftUI Profiler shows that almost all processor time is spent deep inside SwiftUI/AppKit primitives, despite there being close to no updates to view properties.

I'm glad HN is enjoying the app despite those issues. I promise I'm doing my best !

Yeah, Machato is great and the rate that you update it with new features is impressive. Keep up the good work! Hopefully some Mac app dev can chime in on what may be causing the performance issues. :)
My aim with this app was to provide a sleek macOS ChatGPT/GPT-4 experience for users who couldn't be bothered to sign up for Open AI developer account. Of course, along the way I considered that there is a sizeable audience who would prefer to avoid any third-party proxy and use their keys directly. Unfortunately, as mentioned by DerJacques in this thread, it is not certain that allowing this would pass Apple reviews. However, we could try? If I see enough interest in "bring your own keys" model, it could be possible to offer this version of the app outside the App Store. Would you be willing to pay ~$30 one-time purchase for such an app?
As a person who is quite annoyed by slow websites, I'm really not that bothered by ChatGPT (as chat.openai.com). So a native ChatGPT Mac app would be a hard sell to me. I'm only interested in the API access, which OpenAI doesn't provide a UI for.

I payed 5€ for Machato, and would probably pay up to $10 to try out other apps. For me, $30 would already be in a territory that I would not pay upfront, but only after regularly using the app for at least a few weeks. That's pretty much what I paid for Apollo Ultra Lifetime, after many months of regular use. Oh dear.

> it is not certain that allowing this would pass Apple reviews

Release the app outside the store? Fuck apple and their monopoly abuse control system.

you might like mine! open source and compiling from source is encouraged. https://github.com/smol-ai/menubar
I'd be interested to hear why your app will beat others in performance. Looking at the repo, it seems to be electron-based, so it's not obvious to me on why I should try it, if I'm looking for responsiveness.

Edit: had a closer look, it's a multi-app for different AI chatbots. Fun, but not at all what I'm looking for (responsive Mac interface to OpenAI API).

:shrug: it works great for me lol. api is overrated. webview is the only way you'll get the full experience of all the chats
Does it still send everything you enter to OpenAI?

EDIT: I see on the site:

> We take your privacy seriously. Your data is never recorded, and opted out of future model training according with OpenAI API policies

I'm a big believer in local AI. Unfortunately, it's just not there yet, but with the way things are going it surely seems like we're going to have OpenAI level models locally soon. When that happens, I'd love to be on the frontier of bringing it to the public as consumer apps. Until then, I decide to pretend it's private and work on user experience, so when the tech is here it can be shipped fast.
I think you may have triggered some concern or misunderstanding. What do you mean by "pretend it's private"?
I mean that as an app developer, I wish I could run models as powerful as ChatGPT on consumer hardware. Unfortunately, at the moment it's not possible, despite all the great progress and projects like llama.cpp. However, I see that this tech would become viable very soon. So, as a developer focusing on consumer apps, but concerned about my own and my users privacy, I decide that it's worth it to use Open AI. For now, for the sake of exploring possible new user experiences and interactions. The moment local tech is viable, I would be the first to opt out of sending my data to Open AI and use LLMs locally. Until then, we pretend that one day it's gonna be fully private and local and explore UX/UI with Open AI at the backend. Best I could do at the moment is to respect user privacy myself, and this app backend is designed to only handle your queries for a short time in-memory, never logging or recording user queries, only passing it to Open AI for streaming responses and measuring usage for billing.
To be frank, this makes the website extremely deceptive. That isn't "Private by design" - it's the opposite. You choose to prioritize the better AI assistant _over_ privacy.

The claim that "Your data is never recorded" may even be legally fraudulent. I'm glad that you don't record the data, but OpenAI does - making the claim as written a lie.

I understand why you made these decisions, but the website should not contain borderline false advertising.

You're right, the website should contain a more explicit note that user data is subject to OpenAI data retention policies. (However, I do mention that "Your data is never recorded, and opted out of future model training according with OpenAI API policies"). OpenAI did change their policies recently, and opted out any API data from future model training and promised us they delete it within 30 days. I wouldn't call it false advertising, but note taken, users must be explicitly told that their data is sent to OpenAI.
Anything you send out over the internet is by definition not private.

The only way to guarantee something is private is if it never leaves your computer.

Looks super clean! Great work. The idea of always having the Chat GPT a shortcut away is very neat.

I have a similar toy-app called Chitty (https://chitty-app.com), and recently decided to pull it from the App Store and offer direct downloads instead, because Apple kept throwing wrenches my way. Most notably, in a random app update review I was told that I could no longer reference ChatGPT or OpenAI, and I was not allowed users to "unlock" functionality by letting them provide their OpenAI API key. Note that I don't monitize the app in any way, so asking people to enter their OpenAI key is the only way to make the app work without causing a major bill for me.

It seems like your app get's around the API key issue by offering in-app purchases, which is good! I would recommend also making sure not to reference ChatGPT and OpenAI too much in the app or the App Store page, though the details may depend on the specific app reviewer you're assigned :)

Also, thanks! Very nice to hear that someone appreciates my work, means a lot! Sad to hear Apple didn't allow you to offer the "bring your own keys" model. I was considering that it would be an attractive option for more tech-savvy users to avoid the apple tax. As app developers, we could still charge for the app, but not for usage. For more professional applications like coding with GPT-4 that would make a noticeable difference for end users spending.
It seems really like this Mac App Store is doing nobody good, neither users nor app creators. Everytime some new app points me to the store I get annoyed. It frequently hangs and just is glitchy in gerenal. Just give me the damn DMG and let me go on my way…
My offline LLM app (which does not use ChatGPT or any OpenAI APIs) was rejected 3 times in review, also during a random app update. With every rejection, they'd ask me to rename the app. Ultimately, I appealed and they relented.
That sounds like a bad time! Glad you were able to resolve it at the end.

I do feel that being in the App Store can give a lot of value (and downloads), but it definitely comes at a cost (mainly uncertainty).

I was also rejected for the app description, however I decided to argue against their ruling. I changed the description slightly, however when submitting a new build I pointed out that all my materials are written in accordance with OpenAI brand guidelines, and the app successfully passed the review.
Downloaded Chitty, entered API key, clicked "Alan Turing", crash. Do you want me to send the crash report somewhere?
Oh no, sorry to hear that. If you could send it to manuel<at>manuelt.de, that would be lovely! Thanks.
Alright, sent! I haven't had a problem since relaunching it after the crash. It's nice and snappy! As a convenience feature, I'm missing syntax highlighting for code snippets. But maybe that is what makes the other apps so slow? :)

And as far as features go, I don't see a way to set the temperature.

Awesome! Thanks a lot for the feedback. Syntax highlighting sounds like a great idea, and I wouldn’t expect it to be a big performance hit.

Exposing more API options (such as temperature) is definitely on the list! I just added custom function support (running small JS scripts, Wolfram Alpha and Shell commands), and more options is next!

Did you have to rename it from MacGPT because Apple's App Store Review Guideline 2.3.7? :)

https://developer.apple.com/app-store/review/guidelines/#per...

Yes, they considered it a double whammy trademark violation, Mac + GPT = total criminal. Nonetheless, I'm getting requests to also bring the contexts thing to iOS, so maybe whatever happens happens for a reason.
I don’t understand how this is monetised, and I alway like to know before I install or use an application. If it’s there and I missed it, maybe it should be more obvious?
Your data is yours, the app is designed to never record or log your queries. The monetisation is simple - reselling Open AI services in a convenient package. I hope that one day it would be possible to ship a local model of a comparable quality, and simply charge for the convenience of the app and allow unlimited use. Until then, the plan is to offer various levels of subscriptions and work out the reselling model which works both for the users and the sustainability of my indie app dev studio efforts.
It seems it's rate limited for free and there's a paid plan that allows you more usage with rollover tokens.

Same monetization strategy as many resellers.

Downloaded it's very responsive and the ability to edit contexts is really useful. I was curious as how you are able to calculate the number of prompt tokens in real time. Did you implement a method for Byte Pair Encoding yourself and how did you manage to match it with OpenAI's implementation for ChatGPT?
Looks cool! Have you considered making that picture on the homepage (the first one you see) a video? It'd make the site much more immersive, while also giving a true-to-life representation of the app.
Oh is it a still picture for you? Probably should include more video formats for it to render properly on various browsers, thanks for the tip!
On Mac/Firefox 113 it doesn't autoplay; it works fine if I right-click and select 'play'.
Thanks a lot for spotting this, fix incoming.
Yep. That's on Chromium 114 on Android, if it helps. Happy to see you beat me to the idea :-)
> Coming from web development, learning how to ship a native app was a trip

Can you share your learning experience and overall impressions?

Overall, I learned to appreciate the predictability and great standards and documentation of the web platform. With Apple tech, the moment you stray away from neatly designed WWDC demos you find yourself more or less alone against not-so-well documented platform and having to work with decades old APIs and strange behaviours. It's much harder to find ready-made answers, and if anything, ChatGPT itself was more help than the Stack Overflow in dealing with weird bugs and strange behaviours.

Coming to native development, you kinda expect that you'll be writing beautiful code, in the spirit of Apple (beautiful outside, beautiful on the inside), but you quickly realise that the closeness of the platform works against it, and very often you have to resort to hackity-hack solutions and your code is anything but beautiful after all.

Nonetheless, I enjoyed building a native app, there is something different to it, like you're building something physical, something that you can feel and touch and experience. And I've barely touched the surface of what's possible with it, constrained by time being a solo dev. Swift itself is a beautiful language and a pleasure to work with, and Swift UI is very easy to pick up if you're familiar with React. Until you have to make something non-standard and find hackity ways to do it.

What surprised me the most is the ratio of product and around-the-product work. The core app itself was ready within a couple weeks, but it lacked payments, user quotas and trials. Implementing these took me about 70% of time spent on the app. It's incredibly hard to implement subscriptions as a solo developer, with both Stripe or App store options presenting their own challenges. To the point that for my next apps it would be a major factor if the app is sellable as a one-time purchase. For the sake of learning, I decided to go all-in with Apple ecosystem and use Sign in with Apple and distribute over the Mac App Store. Looking forward to seeing how it works out.

EDIT: grammar

I’m assuming this was built with AppKit?

If so, yeah AppKit has some warts, and it isn’t all that well documented. That’s how it’s been since I got started with it back in the early-mid 2000s, where your best sources for learning were random blog posts or books (the latter of which I couldn’t afford as a teenager).

If you ever do iOS dev, UIKit is a lot nicer to use in almost every way. It’s been polished and modernized a great deal in comparison, and because iOS as a platform is so much more popular/important it’s throughly documented end to end.

Still, AppKit does have some advantages, like its batteries-included nature which allows one to build complex apps with few or no third party dependencies.

100% SwiftUI! As a new Apple developer, I wanted to use their latest and greatest. It does get restrictive sometimes, but compared to having to dive into AppKit/UIKit hackity-hack SwiftUI solutions here and there are a lesser evil IMO.
Ahh yeah, SwiftUI isn’t fully baked yet unfortunately, particularly on macOS. I’m just now starting to use it in significant capacities in iOS projects and haven’t yet started on Mac because of that.
What's in the "Fly AI Pro" in-app purchase at $12.99? I'd like to know before I download and install.
When you install the app you get a trial with 100,000 tokens. 1 token = 1 Open AI ChatGPT token, or 1/30 GPT-4 tokens (aligned with Open AI pricing).

The in-app purchase grants you 4 million tokens per month, with unused tokens rolling over to the next month.

My aim is to provide a sleek macOS ChatGPT/GPT-4 experience for people who wouldn't bother signing up for Open AI developer account and bringing their own API keys.

Alternatively, if there is demand, I was thinking of charging just for the convenience of my app and allowing people to "bring your own keys". Let me know if that would be a more attractive option for you. Not sure how that would fly with Apple in-app purchase policies, but could be worth a try if that's what people want.

I still have MacGPT installed and it lets me use my own keys. Why did you remove that feature on this app? Please consider bringing it back!
I would like to pay for the convenience of the app with bring my own keys.

For people who already have subscription this would be useful. Thanks in advance !

You could evade Apple by allowing users to register their API key on your website, not in your app.