Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Show HN: Supermaven, the first code completion tool with 300k token context (supermaven.com)
163 points by jacob-jackson on Feb 22, 2024 | hide | past | favorite | 101 comments


- No details at all on the official extension page in VSCode - I bite the bullet and try anyway - No immediate confirmation after setup - Only one configuration option (log file path) - After I start typing into a buffer, the onboarding notification requires sign-in - Sure, why not - "Link to IDE?" - heck yeah, let's finally go - Sign up for a trial - um... - Requires a CC for a 30-day free trial

Respectfully, this is a terrible experience.


Wow, that’s the same experience that I havr trying to use any app on the iOS App Store. Download, use one basic feature, use a second feature? Nope sign up first. Ok, signed up. Ok now? Nope, that feature requires a subscription. It is very sneaky because the app does not need to show in-app purchase on the App Store info. I have given up on Apps now because of this.


App developer here. Sadly, it’s what works. Put differently: when users browse for apps, it’s usually when their need for sth that solves the problem is relatively high. Which means you have a much higher chance of converting that user right now during onboarding than anytime later in the lifecycle of your app.

I wish Apple properly displayed prices though instead of this sneaky vague “contains in-app purchases” text.


>"when users browse for apps, it’s usually when their need for sth that solves the problem is relatively high. Which means you have a much higher chance of converting that user right now during onboarding than anytime later in the lifecycle of your app."

I can't argue with this in general as I do not have the statistics. Personally however I just never give CC info unless I tried the thing and found out that it does work for me.


So do you just end up with a lot of unsolved problems? I get the principal, but does it end up hurting you in practice? Or do you end up solving the problem with a free tool? If so, I guess the product wasn’t really needed.


And/or the problem is minor enough to not be worth the costs of subscription - costs that include not just the sticker monthly price, but also cognitive space taken by unnecessary, unwanted, forced ongoing relationship with a random third party, and all the value-add/upsell bullshit on top. Couple that with relatively low trust that a random app is not trying to scam you somehow...


>"So do you just end up with a lot of unsolved problems?

All the non free tools I use and paid for do provide trial version which lets me evaluate it without pulling out CC. Wake up and look around. Plenty of those.


Not OP, but some "problems" actually aren't.

More often, I'm looking for an easier / faster / better way to something I'm already doing, either because I want to do it _less_ (e.g. pay monthly bills) or I want to do it _more_ (e.g. find & read relevant news).

I'm Curious. Seeking innovation. Exploring.

Just because I can get water from a well with a bucket doesn't mean I wouldn't enjoy modern plumbing and irrigation.


None of them are really needed, we have survived for thousands of years without phones and computers.

Food is a problem i must solve, clicking on some cow clicker or whatever was never a problem until we made it one.


Well good thing is you don’t need to on Apple. Just get the free trial and cancel immediately?


You can IAP and cancel?

Not a workflow I've tried.


I uninstall so many apps like this. I would rather pay $2 up front.


Put differently: when we ask them to give us payment details at the start, we know a significant percentage will forget to cancel (or FOMO) after their need is gone.


They do display prices of in-app-purchases last I know, somewhere in the app listing


Yes, but that price list is quite broken. A lot of apps have different price points - either for A/B testing, or because of discounts with partners, or educational discounts (we have a 50% discounts for students, for example).

Apple lists all prices in that list.

To make matters worse, if you ever decide to change your prices, you'll have both the old and the new prices in the list. Especially when you start out, you won't really know what a good price point is, and within a short amount of time the price list will be cluttered with all the prices you tried.

I'm sure Apple believes they're protecting the user here, but in reality they're serving neither the users or the developers with this.


I have a card with $0 on it for this purpose. Services count on you forgetting to cancel instead of you liking the product per se. If I like it I change the card, but most products I don’t so they bounce. Works well.


Aren't most payment systems making a $1 or $0.1 block/charge to confirm the card is real and has non-zero balance? At least that is my experience as an European user, whenever I try to subscribe to anything that came out of the US.


They usually just do an auth request. But otherwise I put $1 just for that case. As long as the balance is normally $0.


Sorry. We should be more clear about the CC being required to sign up for the free trial.


This goes against the guidelines for "Show HN". You can still post it, but generally it won't qualify for the Show HN moniker. You can review the rules for Show HN here: https://news.ycombinator.com/showhn.html

> Please make it easy for users to try your thing out, ideally without barriers such as signups or emails.

"Without signups or emails" definitely implies without credit card authorization!


I didn't realize that. I would have posted without the Show HN tag if I had read that carefully.


I can understand the business imperatives (I am a PM at a start-up :)), but can you please make a decision on actually having the sign up flow work without friction (Think Slack / dropbox etc). You can always iterate and find the right thing to charge for but developers are a demanding bunch especially with tooling!


How about just not having one? i am often interested to try things but I am not giving out my CC until I've tried it out, FOMO be damned. I don't want the burden of cancellation if I decide it's not for me, I've been burned before by forgetting and paying for a service I didn't want.


We think this is the most sustainable option because there is a cost to providing a quality service. We take a small loss on every user who cancels their free trial - more than a typical SaaS because AI models are expensive to serve.


Maybe a shorter trial would work?

Personally I only need about 30 minutes with a code autocompletion LLM to see if it will do what I want without pissing me off (and maybe even making me smile!)


Crossing your fingers that the user forgets to cancel is never "sustainable", it's predatory.


How about taking the CC but not subscribing the user. As in the CC is used only to verify the user but I have to subscribe once I consume my free credits (even though the CC is on file).


I'm VERY interested in using your service and would be happy to pay if it's good.

I'm never going to try if you ask for my CC up front though. Sorry.


Excited to see this on HN front page! Unlike others, I didn't mind the CC + 30 day trial. 30 days actually feels generously long as I don't see many other projects offering that. I think it's ultimately right move for this project to live long.

After trying it for a bit on a very very large codebase(more than the context window supported, albeit I haven't done anything superr insightful yet), the code suggestion does seem better + faster than Copilot.

However, I'm not sure if the "completion" UX is the best way to enhance human programmers with AI. And within the completion realm, leaning on the speed, ie. inferencing on every keystroke, is not that attractive for myself. What attracted me is really the context length. So I'd provide much more examples of cross context code suggestion, similar to the 3js demo from gemini 1.5.

Back to the completion UX thing. I feel like often times seeing the completion pop up is a double edged sword. The moment it pops up, it distracts me from "outputting mode" into "evaluation mode" to see if the result is correct. If it's right, then great, you've saved me time. But for the times where it's wrong(which... was quite a bit for copilot), it's actually a net negative as I now have to re-enter the "outputting mode" and force myself to ignore the new output that will get generated as the new keystroke comes out. With Supermaven, this "switch" happens 10x more than copilot because of the speed as well.

Cursor/Zed with their CMD K code insert is obviously the other "big" ai coding UX.(along with chat) Personally I like them quite a bit and wish they had the speed and context window that supermaven is currently offering. But tbh, all of the UX's feel a little off at the moment...

Just my 2c' as an amateur programmer!


Absolutely. I turned off Copilot at work for this reason: it disrupts my state of flow in a way that regular contextual suggestions do not.


>At Supermaven we've developed and trained from scratch a new neural network architecture which is more efficient than a Transformer (the current standard architecture) at integrating information across a long context window.

Clearly something proprietary, but in between this and Gemini's claimed 10M tokens, assuming there's no RAG... I'm curious what might be happening behind the scenes.


There’s a few options.

People think Gemini 1.5 is Sparse Mixture of Experts. (SMoE)

Another One is self extend. https://arxiv.org/abs/2401.01325

This paper also refers back to other options like yarn, etc.


Mamba?


definitely sounds like an ssm.


rope or ringattention?


How do you guarantee you will not add GPL or similarly licensed code to my proprietary codebase? Microsoft committed to defending its customers from claims arising from CoPilot output [0]. Would you be confident enough to do likewise?

[0] https://www.microsoft.com/en-us/licensing/news/Microsoft-Cop...


GitHub Copilot also automatically flags generated code that’s too similar to existing code out there.


Obfuscation tools does that too. It doesn't changes the fact that generated code is based on other people copyrighted code. M$ doesn't use their own code in the training of ChatGPT, but steals other people copyrighted work instead.


>While a model like GPT-4 offers unmatched suggestion quality, it's impossible to run on every keystroke (unless you charge users $1,000/month)

Still alot less than the average SWE salary and this cost will go down over time.

Anyway, jokes aside, I usually don't use copilot tools in my IDEs. I have zero difficulty with coding itself. I would not enable one unless i'm trying to learn a new language or something. I can see how they would be helpful for more junior level engineers, but they'd still need someone senior to check for security vulnerabilities and the like.

Where LLMs come in handy is more complicated scenarios like understanding legacy spaghetti code, learning a new API without having to read the documentation, finding out how do to X in a new framework, undocumented behaviours and as a solo founder, non code tasks like marketing copy, mock customer interviews, writing data science type SQL queries to better understand my metrics, naming my subscription plans etc which I otherwise would not be that great at.

For these tasks I always use GPT-4 which almost always gets good results. But its nowhere near the level where it could replace an actual engineer, even if you fed it an entire codebase.


> I can see how they would be helpful for more junior level engineers

I'd argue the opposite - give something like chatgpt/copilot to a junior engineer and they use it to generate a bunch of overly repetitive code that they don't understand. If they're trying to write anything even slightly non trivial it's not going to work.

In order to get value from AI code generation you need to be competent enough to properly review the output.


> In order to get value from AI code generation you need to be competent enough to properly review the output.

And to know what to ask.


I have the total opposite experience. Give it to a junior and they churn out code riddled with subtle bugs and maybe it hampers their learning.

For more experienced developers it significantly reduces typing time, in my experience. So often I’ll simply write the function name only then scan the suggested output and accept, saving minutes and reducing RSI.


> I can see how they would be helpful for more junior level engineers

Honestly, I'm a senior dev and enjoy the copilot stuff. It gets shit wrong most times it needs to do something beyond simple-ish, but for doing boilerplate or repetitive stuff, it's been great!


I've been using Supermaven for the past week and it's obviously better than copilot. Excited to see this product evolve!


I'm not ML practitioner, so idk, but could we get generative tool that operates on higher syntatic level (e.g. AST) instead of interpreting code as just plain text? I feel it's so dumb that something like copilot generates code that is syntatically invalid, that feels like low bar for any code generation tool to pass?



Have been using supermaven for about 5 days on a react project. It is way faster than copilot, suggestions generally feel better as well, less hallucinated. For instance, if I change a type in a src/bookingTypes.ts, then supermaven has no issues guessing that those updated types should be recommended in src/components/bookingform/Bookingform.tsx . Copilot sometimes struggles with this recommending it's own, hallucinated types


Does this involve uploading the git project to Supermaven and code completions are done in the cloud or is all this running locally? Or is it hybrid where there’s some cloud processing and inference happens locally?


All the processing happens in the cloud. It will upload the git repository you use it on. We retain the data for a maximum of 7 days.


Your privacy policy[0] doesn't seem to mention any of this. How is the data being used? I'm not very certain about inputting my data into any tool that uploads to cloud and there's no valid privacy policy

[0] https://supermaven.com/privacy-policy


> Our Services may contain links to third-party websites or services that are not owned or controlled by Supermaven, Inc. We are not responsible for the privacy practices or the content of third-party websites.

Is this actually good enough? Can companies just hand over data to other companies and then claim to not be responsible for the consequences of that?


We should update the site to be clearer about this. There is a 7-day data retention limit listed in https://supermaven.com/pricing.


Do you train and/or refine your models based on customer source code?


This is the main thing keeping me from trying it. If you could clarify how you protect and use our code, it would be a huge help.


Please clarify what the data is used for.


Whose code is it trained on? Do you respect their software licences?


next you'll say I need a license to read your comment because I'm copying it in my mind. Crazy!


Asking what the training data was, is valid. Knowing what these AI are trained on is to everyone's benefit.


Your comment is correct but misdirected.

I didn't say anything about OP's first question. Your comment is about that.


As a contrived example... If you train exclusively on AGPL source code, the probability of generating something identical to AGPL licensed code is likely non-zero.

This is a very important question.


An LLM is not the same thing as a human mind and does not automatically receive the same exception to copyrights.

Whatever you think makes sense, it would be wise to be careful, because the law might not turn out to be what you want it to be.


It will depend on the jurisdiction. It will be fun when a model is trained in Japan on material that would be copyrighted in the USA, then produces an image that is not able to be copyrighted in the USA.

> Japan's government recently reaffirmed that it will not enforce copyrights on data used in AI training.

https://cacm.acm.org/news/273479-japan-goes-all-in-copyright...


What exception?


Perhaps it's overly technical or even pedantic, but in light of arguments like "AI is just doing the same thing humans do", I think we should admit it:

Yes, we are making a copy in our minds when we read something.

I suspect such copies are allowed (as an exception to copyright law) mostly because lawyers and judges don't think about it. Nonetheless, once we do think about it, the law isn't required to treat humans and LLMs in the same way, or allow LLMs to do something simply because humans are allowed to do something similar.


You are not making a copy - because you are not able to identically reproduce it.

And, if you are and you do, that's likely an infringement. Most jurisdictions say that, for example, you can't perform an in-copyright creative work without compensating the owner. Look at the lawsuit around George Harrison's "My Sweet Lord" for an example.


Most people could memorize enough to count as a copyright violation if they did reproduce it; as you said, actors preparing for a role certainly do so. And people with excellent memories could remember much more.

And yes, there would be a violation if someone then made another copy by reproducing it from memory. But the copy in the mind is overlooked, or forgiven. That's a copy too, just as the copy stored somewhere in the weights of an LLM is a copy.

We may not understand exactly how it's stored in either case, but it's in there somewhere. And it's worth saying again: the copy in an LLM may not be overlooked by the law.


Which programming languages is Supermaven good at?


Any plans for a Neovim plugin? Quite interested but don't feel like switching to VSCode any time soon.


Yea, we need an LSP-like spec or something here. I'm on Helix, and like you i just can't switch away for these things.

I wonder if the LSP spec itself should add some LLM extensions. Since i know some projects have already just made LLM-LSP impls, it's not far off from a normal LSP. Though i do imagine a few custom LLM-centric behaviors would be useful


Interesting launch. I saw you were the original founder of tabnine. I’m curious as to what you’ve learned since you launched tabnine in 2018, and why you’re deciding to create another code completion ide extension.

Will be trying this out.


I had the idea for the technology first and decided that code completion was the application where it would be the most useful. It's a proven market with Copilot having over $100M ARR.

There are lots of other potential use cases for the technology, but they involve more business risk (ie, the risk that you create a technically sound product that isn't very useful).


Trying it now on my super-specific codebase, and it seems to be working for the most part. Well done! I was able to get started on a new feature, and it got about 80% there with my custom-built framework: https://github.com/smolblog/smolblog/pull/61/commits/869a2ea...


Impressed by the completion speed. It really changes everything... again.

Do you have plans to add a chat feature and IntelliJ plugin?


Agreed - I've only been using it for a few minutes so can't form a definitive opinion on quality (though it seems good) but it feels faster than intellisense. Extremely impressive on that front.


Glad to hear it. We'll add an IntelliJ plugin next week.

We may add a chat feature if we can make one good enough that we're happy with the quality.


A chat plugin for VS Code will be a game changer.


Neovim? :)


Off topic, but do you have any plans for same.energy? No image search tool has surpassed it even after two years.


I'm happy to hear that. I don't have any specific plans for same.energy at the moment other than to keep the site up.


I signed up for the free trial and downloaded the extension. All I'm getting is a blank command prompt window "sm-agent.exe" that opens when I open VS code. So yeh, it's just not working for me at all. Tried opening VS Code as admin and no difference. Any suggestions?


Its a virus! virus total said 2 detection Ikarus Trojan.OSX.Psw and Google Detected



Sorry to hear that. I'm not sure what's causing this. Could you share your Windows and VS Code version to help us reproduce the issue?

sm-agent.exe is supposed to be started as a subprocess by the extension. It shouldn't be in its own window.


Windows 11, VS Code 1.86.2

At no point have I been asked to enter license details, is that supposed to happen when it initially runs?


It is working for me but I always see a window for sm-agent.exe. W10 22H2 VS Code 1.86.2


Maybe its just me, but the name suggested an AI based tool to generate maven pom.xml files.

The pain I've experienced with maven and those Gawd awful xmls got me a bit too excited.

going to crawl back to my burrow now.


I'd like to see <super-long-context> vs <mediocre-context-but-really-good-at-summarizing>, then it is fed parts of a super long context in chunks. On each iteration, you add the previous summary.


> "it's impossible to run on every keystroke"

Maybe not every keystroke, but certainly every time I press enter or shift. It feels like its live and instant. Dont think that a higher frequency makes sense.


If you don’t like writing code, find a different line of work.


I really must be missing something with all of these tools writing code for you. Shipping my entire codebase off to some unknown party does not seem like a worthwhile tradeoff for not having to write my own indentation function or whatever.


You are really missing it. It's more about preventing RSI by getting the boilerplate writing out of the way than having the tool do the actual work for you.


If you are writing boilerplate all the time, it’s time to introduce some abstractions and put them in a library.


It’s a matter of speed and delivery.


Speed and delivery of what, though? The religion of speed is blinding people to (what I thought was) the obvious trap of these tools: encouraging the incorporation of code the author likely doesn't understand into complex systems and just "trusting the robot is right."

For an experienced developer this may be about productivity, but 100M ARR at Copilot tells me we've got novices yeeting whatever code the LLM gives them into their work. So, you get two problems: systems with questionable integrity and a future generation of "engineers" who lack practical knowledge that can only be earned by solving problems.


Prioritising quantity over quality is how this industry will destroy itself. Software quality was already in decline even before LLMs, blind trust in tools an existing growing problem, and things like this will only make things worse.


I'm not mad. The shitification of new developers just gives more edge to small software companies who can be more productive. If you're smart and use these tools for genuine advantage it seems you only stand to benefit from this dichotomy.


With the 300k context window, the first thing I want to do is refactor my entire codebase, not just code completion here and there.


Does this only work with "mainstream" languages?

Swift, perhaps. Chez Scheme? Haskell? Lean 4?


Any chance to have an edit-prompt like cursor instead of autocomplete?


But WHO is Supermaven? Who do I "entrust" with all of my code?


[flagged]


#MuskDerangementSyndrome strikes again.

How about we focus on the tech rather than signalling our tribal political affiliation at every opportunity?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: