Show HN: Open-source macOS AI copilot using vision and voice (github.com)
It's pretty simple:
- Use a keyboard shortcut to take a screenshot of your active macOS window and start recording the microphone.
- Speak your question, then press the keyboard shortcut again to send your question + screenshot off to OpenAI Vision
- The Vision response is presented in-context/overlayed over the active window, and spoken to you as audio.
- The app keeps running in the background, only taking a screenshot/listening when activated by keyboard shortcut.
It's built with NodeJS/Electron, and uses OpenAI Whisper, Vision and TTS APIs under the hood (BYO API key).
There's a simple demo and a longer walk-through in the GH readme https://github.com/elfvingralf/macOSpilot-ai-assistant, and I also posted a different demo on Twitter: https://twitter.com/ralfelfving/status/1732044723630805212
185 comments
[ 0.70 ms ] story [ 240 ms ] threadif that specific facial expression is getting you more views, i see that as justified. it's up to you whether or not you want to keep the thumbnail or not
https://github.com/samoylenkodmitry/Linux-AI-Assistant-scrip...
F1 - ask ChatGPT API about current clipboard content F5 - same, but opens editor before asking num+ - starts/stops recording microphone, then passes to Whisper (locally installed), copies to clipboard
I find myself rarely using them however.
I'm new to development, and this is what I went with. Don't know any better.
Oh, you want someone else to write them. For free.
That's different, then. Carry on!
this is a macOS specific app it seems - if you want better performance and more integration with the OS, i'd recommend using swift
There's nothing wrong with using web tech to build things! It's often easier, the documentation is more comprehensive, and if you ever wanted to make it cross-platform election makes it trivial.
If you were working for a company it might be worth considering the trade-offs—do you need to support Macs with less RAM?—but for a side project that's for yourself and maybe some friends, just do what works for you!
Good luck in your development journey.
If you want to niche down into a more macOS specific app, you could learn AppKit and SwiftUI and build a fully native macOS app.
If you want to stay cross-platform, but you're not happy with Electron, then it might be worth checking out Tauri. It provides a JavaScript-based API to display native UI components, but without packaging a V8 runtime with your app bundle. Instead, it uses a native JavaScript host e.g. on macOS it uses WebKit, so it significantly reduces the download size of your app.
In terms of developing this into a product, on one hand it seems like deep integration with the host OS is the best way to build a "moat", but then again, Apple could release their own version and quickly blow a product like that out of the water.
Open Source is defined by a license, not by what a program does. Also, it's trivial to connect such a program to another image recognition model if anyone wants.
Because you want it to behave differently than it does? It seems you are the one who wants things different, are complaining because they are not. Lucky for you, this is open source, and you can go ahead and fork it and change what you don't like!
Perfect Show HN and a great start of a product if the author wants to.
In general I’m pretty excited about LLM as interface and what that is going to mean going forward.
I think our kids are going to think mice and keyboards are hilariously primitive.
Congrats to the op on shipping!
I prefer speaking over typing, and I sit alone, so probably won't add a text input anytime soon. But I'll hit you up on Discord in a bit and share notes.
That would be great for people with Mac mini who don't have a mic.
Just kidding. Text seem to be the most requested addition, and it wasn't on my own list :) Will see if I add it, should be fairly easy to make it configurable and render a text input window with a button instead of triggering the microphone.
Won't make any promises, but might do it.
https://opencompass.org.cn/leaderboard-multimodal
Make the console.log:s for the three API calls a bit more verbose to find out which call is causing this, and if there's more info in the error body.
1. Download LLaVA from https://github.com/Mozilla-Ocho/llamafile
2. Run Whisper locally for speech to text
3. Save screenshots and send to the model, with a script like https://til.dave.engineer/openai/gpt-4-vision/
Thanks for sharing!
I can see how much time it will save me when I'm working with a software or domain I don't know very well.
Here is the video of my interaction: https://www.youtube.com/watch?v=ikVdjom5t0E&feature=youtu.be
Weird these negative comments. Did people actually try it?
So... beware when you use it.
You can turn it on and off. Not necessary to turn it on when editing confidential documents.
You never enable screen-sharing in videoconferencing software?
Besides, the parent program uses the API, which allows opting out of training or retaining that data.
I sent him your video, hopefully he'll believe me now :)
MidiJourney: ChatGPT integrated into Ableton Live to create MIDI clips from prompts. https://github.com/korus-labs/MIDIjourney
I have some work on a branch that makes ChatGPT a lot better at generating symbolic music (a better prompt and music notation).
LayerMosaic allows you to allow MusicGen text-to-music loops with the music library of our company. https://layermosaic.pixelynx-ai.com/
"Here's a list of effects. Here's a list of things that make a song. Is it good? Yes. What about my drum effects? Yes here's the name of the two effects you are using on your drum channel"
None of this is really helpful and I can't get over how much it sounds like Eliza.
In the one I posted I was just so amazed how well it worked and didn't really try anything useful. In this video you can see it giving me quite good advice on how to make a bassline dubby and how to carve frequencies out of the kick drum to make space for the bass.
It also looks at spectrograms and gives feedback / takes them into account. I'm pretty amazed.
https://www.youtube.com/watch?v=zyMmurtCkHI
I was skimming through the video you posted, and was curious.
https://www.youtube.com/watch?v=1IdCWqTZLyA&t=32s
code link: https://github.com/elfvingralf/macOSpilot-ai-assistant/blob/...
I suspect OSX vs macOS has marginal impact on the outcome :)
I made Clipea, which is similar but has special integration with zsh.
https://github.com/dave1010/clipea