On another note: we purposefully refer to ourselves as an "autopilot" rather than "co-pilot". While at first glance pedantic, we think there is real value behind the idea that developers should be in control. We want to get out of their way, rather than injecting AI everywhere. An autopilot should feel like less of a separate entity (a pair-programmer) and more of an extension of yourself, a part of your own brain that you can call on to more easily complete particular tasks.
I like this idea but I gotta say when I think "autopilot" I think "does it for you" and imagine ceding control rather than retaining it. I definitely assumed after reading the name that it was going to be a tool to minimize developer involvement as much as possible, similar to how AutoGPT is supposed to require less supervision.
But I do really like that functionality of attaching context to the query! Love that. I replied to the founder of Sourcegraph in this thread and I think that should answer your question as well.
I'm excited about your approach and even more about the fact that you made it open source! Thanks for that. If this sticks for me I can see myself contributing to it.
Actually, it looks like this project is fairly similar in some ways. A little more full featured.
[1] https://marketplace.visualstudio.com/items?itemName=Rubberdu...
My one suggestion: I hate to say it but the name RubberDuck and the icon you've used kind of undersell the seriousness of the project. I think the whole "hacker" branding thing is kind of lame but it could be worth some tweaks to make it seem more "cool" :/. Also your website seems to be down!
Thanks for the feedback, good points!
Let's say I want to build a complex React component that does a lot of stuff under the hood. Perhaps it needs to handle multiple inputs, it needs to show certain children UI conditionally based on the state and it also needs to push the state to a global redux store.
Perhaps the component also depends on some utils and other root components that pass props to it.
None of these solutions seem to acknowledge that what would improve my productivity is to have a proper way to model the problem for the AI the same way I'm understanding it. Allowing me to build the blast radius of the problem, instead of expecting the AI to infer it.
In the case of the React Component what I want is:
1) bootstrap the component
2) modify it to address requirements that emerge as I explore the needs.
3) look at dependencies such as schema files or root components and suggest modifications that align with the desired functionality or allow me to point out at required changes in dependencies.
When I say that these solutions are suboptimal, what I mean is that there's no straight-forward way for me to engage in these code generation tasks in a way that doesn't feel fragmented.
What I literally want is go to a file, tell the AI to consume all the context of that file and its dependencies and then modify it to add features, fix bugs, improve code or extend functionality. I then want to have the ability to accept those changes as a reviewer or suggest changes. And I want to do without forking away from my current context.
Nobody has gotten this experience right because what most players in this space are doing is building these restrictive form factors or atomized features like text brushes, global chats or in-line prompt to code generation.
I appreciate having these, but ultimately what I want is to have an AI system that accepts a context (a file or set of files) and a prompt and then generates the requested code modifications.
None of these extension allow me to do this effectively and if they do then it seems that ability is being diminished by a poor user-facing abstraction.
In my opinion, this is a design problem.
The problem is that at the moment it's slightly buggy and the UI is not so polished. I would recommend to submit your email to the newsletter on the website. Once I feel it's good enough, I'll send an email to everyone. Don't worry that I'll spam your inbox, I haven't sent any email yet to people who subscribed. I'll just send it when I feel the tool is good enough.
I have tried almost every co-pilot solution, including GitHub Co-Pilot with Chat and Labs, Cody, and a few random extensions.
And for some reason, I still default to using ChatGPT, even with the massive drawback of copying and pasting.
I haven’t seen any breakthroughs with those developer experiences. Every still feels suboptimal.