NateSesti Profile Banner
Nate Sesti Profile
Nate Sesti

@NateSesti

Followers
4K
Following
81
Media
8
Statuses
130

Coding @continuedev, Publicly Thinking @ https://t.co/p11OSyonc3, (no longer) Studying Physics @ MIT ('23) ๐Ÿ“Œ Continue is hiring! https://t.co/UcuvyI7yh9

Joined July 2018
Don't wanna be here? Send us removal request.
@NateSesti
Nate Sesti
1 year
today @continuedev released v1 of tab autocomplete. it's 100% local and open-source. for the next few months i'm going to share (live, as i learn) the tricks that improve our acceptance rate. if you follow along you might learn. .
3
6
46
@NateSesti
Nate Sesti
8 months
excited to share a new feature we've been working on!. "instant apply" inserts code from chat into the editor without even requiring an llm. if you're curious how it works:.
2
5
44
@NateSesti
Nate Sesti
1 year
๐Ÿฆ€ @rustlang ๐Ÿ @ThePSF ๐Ÿซ @OCamlLang โ˜•๏ธ @java ๐Ÿ˜ @official_php ๐Ÿฆ @SwiftLang ๐ŸฆŽ @ziglang what could go wrong?
Tweet media one
0
0
4
@NateSesti
Nate Sesti
1 year
editing code with @GroqInc is incredible, this is 1x speed
3
2
31
@NateSesti
Nate Sesti
1 year
โšก๏ธ excited to share that @continuedev is releasing our open-source tab-autocomplete! โšก๏ธ. why might you want to use it?. - local (code remains on your machine).- customizable (change model, temp, and more).- open-source.- and free!. here's how we built it:.
1
6
26
@NateSesti
Nate Sesti
8 months
short write-up about how we build our autocomplete prompt @continuedev .
2
1
25
@NateSesti
Nate Sesti
1 year
better cross-encoders are a big deal. out of 300,000 loc, @Voyage_AI_ embeddings + reranker found 300 loc that allowed for basically the answer i'd give as the author
4
5
21
@NateSesti
Nate Sesti
1 year
yet another obvious autocomplete update that makes a huge difference:. even if truncating the completion after one line, let the model keep going. 90% of the time the user just presses enter, and then you can present them with the 2nd, 3rd, etc. lines almost immediately!.
0
1
20
@NateSesti
Nate Sesti
2 years
๐ŸŽ‰ Excited to share Continueโ€”open-source, as dev tools should be.
@continuedev
Continue
2 years
Introducing Continue: the open-source coding autopilot, built to be deeply customizable and continuously learn from development data. Join us at
0
3
18
@NateSesti
Nate Sesti
2 years
We have many difficult problems to solve, but for each that we do, software becomes easier for the world to build. If you want to help tackle these, Continue is now hiring. Join us:.
1
1
15
@NateSesti
Nate Sesti
1 year
continue for jetbrains getting an upgrade ๐Ÿ‘€
0
2
13
@NateSesti
Nate Sesti
1 year
open-source is never far behind.
@JustinLin610
Junyang Lin
1 year
Me and @huybery are discussing about reproducing Devin. Come and join us and see if we can make something great together!.
1
0
10
@NateSesti
Nate Sesti
6 months
v2.
@continuedev
Continue
6 months
๐Ÿ› ๏ธ Announcing Tools! Continue can now.- navigate your repo.- create files.- search the web.- run terminal commands (after you approve).- use custom tools from @AnthropicAI's MCP. Here Continue builds a much more professional personal site for @NateSesti in just a few minutes
0
1
10
@NateSesti
Nate Sesti
2 years
The problem "given a question and a directory, find the 8,192 most relevant tokens" turns out to have some depth.
@continuedev
Continue
2 years
Today weโ€™re releasing codebase retrieval! If you want to edit a large codebase but donโ€™t know where to start, just use โŒ˜+โŽ and Continue will automatically pull in the relevant snippets of code.
1
0
9
@NateSesti
Nate Sesti
1 year
grok + @continuedev incoming. .
@elonmusk
Elon Musk
1 year
This week, @xAI will open source Grok.
0
0
8
@NateSesti
Nate Sesti
1 year
๐Ÿ”Š.
@tylerjdunn
Ty Dunn
1 year
We believe in a future where developers are amplified, not automated. Read more at
Tweet media one
0
0
6
@NateSesti
Nate Sesti
1 year
the first improvement that feels magical (since originally getting autocomplete working) is adding recently edited files to context.
1
0
6
@NateSesti
Nate Sesti
1 year
seeing really impressive autocomplete results from @deepseek_ai's 1.3b model. it's become clear that. a) at least 1/2 the work is in constructing the right prompt, making the model's job easier. b) once you do this, small (local!) models will shine.
0
0
5
@NateSesti
Nate Sesti
10 months
an important question.
@traviscline
tmc/acc
10 months
Whereโ€™s the widely deployed local proxy that is saving all model backed code completion traffic in a standard format?. This is a super valuable potential training data set that we could collect for open research.
1
0
4
@NateSesti
Nate Sesti
1 year
good autocomplete depends on a surprising amount of ui thinking. not just โ€œobjectively correctโ€ handling of โ€œast stuffโ€ like might be expected. for example, should we complete the entire function at once, or show just the header at first while generating the rest in the.
1
0
5
@NateSesti
Nate Sesti
5 years
Not everyone has the freedom and motivation to be idealistic. But if you do, time spent thinking long-term is underrated. Question your foundations and rigorously determine your angle.
0
1
5
@NateSesti
Nate Sesti
5 years
Twitter seems to be a mandatory counterpart to a blog, so here goes nothing. This is The End of Invisibility, and The Beginning of Infinity:.
0
1
5
@NateSesti
Nate Sesti
1 year
whenever you type the opening parenthesis of a function call, @continuedev's autocomplete will now use the language server protocol ( to add the function definition to the prompt.
1
0
4
@NateSesti
Nate Sesti
1 year
a nice part of building a dev tool is coming across other dev tools and deeply appreciating the work that went into simplifying an interface. is one that iโ€™ve appreciated lately.
0
0
4
@NateSesti
Nate Sesti
6 months
this was badly needed.
@VoyageAI
Voyage AI by MongoDB
6 months
Vector-based code retrieval is a critical building block in code assistants and agents. However, many people complained about the lack of diverse, high-quality evaluation datasets for it. We surveyed existing ones and proposed some methods to build better ones. ๐Ÿงต๐Ÿงต
Tweet media one
1
0
4
@NateSesti
Nate Sesti
1 year
at the core of most tab autocomplete systems is a tool called tree-sitter (. tree-sitter makes it fast and easy to parse abstract syntax trees in any programming language. where we've found it extremely helpful so far is by using the "ast path".
1
0
4
@NateSesti
Nate Sesti
5 years
For those who don't like being wrong: be humble, not stubborn. To be correct is to systematically change your mind. Here's how:
0
0
3
@NateSesti
Nate Sesti
1 year
This is why Continue helps you collect your own โ€œdevelopment dataโ€ (dumped to a local .jsonl file). Training on fine-grained dev data isnโ€™t currently commonplace, but there have been explorations like Google Researchโ€™s DIDACT And the longer youโ€™ve been.
@karpathy
Andrej Karpathy
1 year
The ideal training data for an LLM is not what you wrote. It's the full sequence of your internal thoughts and all the individual edits while you wrote it. But you make do with what there is.
0
0
2
@NateSesti
Nate Sesti
1 year
they won't all be this mundane, but autocomplete optimization #1 is very necessary. debouncing (modified) and a related trick.
@NateSesti
Nate Sesti
1 year
today @continuedev released v1 of tab autocomplete. it's 100% local and open-source. for the next few months i'm going to share (live, as i learn) the tricks that improve our acceptance rate. if you follow along you might learn. .
1
0
3
@NateSesti
Nate Sesti
1 year
if you want to know more, please follow along! there's much more where this came from, including topics here that i haven't yet discussed:.
@NateSesti
Nate Sesti
1 year
today @continuedev released v1 of tab autocomplete. it's 100% local and open-source. for the next few months i'm going to share (live, as i learn) the tricks that improve our acceptance rate. if you follow along you might learn. .
0
0
3
@NateSesti
Nate Sesti
1 year
and as usual, Continue lets you customize. any stop token can be added through config.json, and if you never want multi-line, there's an option to `disableMultilineCompletions`. 2. mis-matched brackets will be saved for another day.
0
1
3
@NateSesti
Nate Sesti
2 years
Wrote a short primer on a math trick that feels underutilized:
0
1
3
@NateSesti
Nate Sesti
1 year
@erhartford @DrTBehrens @ollama @continuedev @BrianRoemmele looks like someone shared setup below, but also just dm'd! autocomplete was only in pre-release for a bit and has improved a ton since, so very possible this is what happened.
0
0
3
@NateSesti
Nate Sesti
1 year
@Bharathi19145 @kirat_tw @continuedev Just made a quick fix; this should now be solvedโ€”let me know if not!.
0
0
3
@NateSesti
Nate Sesti
2 years
@metcalfc @Ollama_ai @continuedev It should! Iโ€™ve got Continue x Ollama working on my own Windows machine with WSL. And I believe all instances of WSL would share a loopback interface.
0
1
1
@NateSesti
Nate Sesti
2 years
@FilterPunk @continuedev @MetaAI @replicatehq @togethercompute You can edit the `server_url` of the model you are using in the config file. For example with Ollama: `default=Ollama(model="codellama", server_url="<your_hosted_endpoint>")`. Many other options as well if you're self hosting:
0
0
3
@NateSesti
Nate Sesti
1 year
@Nigh8w0lf @MikeBirdTech @erhartford @SourcegraphCody @ollama @continuedev I took a deeper look, solved a problem with cancelling requests. likely this is what you were experiencing, but if not feel free to dm meโ€”would love to make sure this is squared away!.
0
0
2
@NateSesti
Nate Sesti
2 years
but we've made a ton of progress! Particularly excited to explore how far minimal codebase annotations can go:
0
0
2
@NateSesti
Nate Sesti
6 months
@gasatrya @continuedev @AnthropicAI for now, but support for openai, lmstudio, ollama, and more coming soon!.
1
0
2
@NateSesti
Nate Sesti
5 years
What is happiness?. The reading on a scale. A lake. Appreciation of a symphony.
0
0
2
@NateSesti
Nate Sesti
1 year
debouncing and reusing requests:.
@NateSesti
Nate Sesti
1 year
they won't all be this mundane, but autocomplete optimization #1 is very necessary. debouncing (modified) and a related trick.
1
0
2
@NateSesti
Nate Sesti
6 months
@S1lv3rd3m0n @continuedev we're always improving : ) some of the most exciting stuff recently in my opinion:.- tool use.- predicted outputs for faster edits.- brand new edit UI.- multi-file edits.- instant apply.- and most importantly a lot of polish. if you give it a try, would love feedback!.
1
0
3
@NateSesti
Nate Sesti
1 year
between these two retrieval tricks, autocomplete feels on another level. next up will be using "go to definition" in more situations, i think likely to have similar impact.
0
0
2
@NateSesti
Nate Sesti
1 year
@erhartford @SourcegraphCody @ollama With @continuedev you can use any model from any provider for chat, Codellama-70b on Ollama included! And weโ€™re releasing tab-autocomplete tomorrow (also allowing any model, and access to configure basically every setting you could want).
4
0
2
@NateSesti
Nate Sesti
1 year
this finds useful code in a surprising number of cases, but we add in one more source of context. by also keeping track of recently edited ranges of code, we can prompt the language model with the exact few lines that you just got done editing.
1
0
1
@NateSesti
Nate Sesti
1 year
5) data cleaning. eventually models will need to be fine-tuned. the hard part is finding the right data. what heuristics will distinguish useful training examples from that time you pressed tab just to see what happens?.
1
0
1
@NateSesti
Nate Sesti
1 year
@MikeBirdTech @erhartford @SourcegraphCody @ollama @continuedev Personally I have Ollama running in the background. If youโ€™re on Windows or want UI, LM Studio is fantastic. And I learned about Jan just recently, but am impressed so far.
1
0
1
@NateSesti
Nate Sesti
1 year
next up is.- applying the same to implementations of interfaces/methods.- collecting information about surrounding variables.- and resolving imports to important snippets.
0
0
1
@NateSesti
Nate Sesti
1 year
calculating "AST path" with tree-sitter:.
@NateSesti
Nate Sesti
1 year
at the core of most tab autocomplete systems is a tool called tree-sitter (. tree-sitter makes it fast and easy to parse abstract syntax trees in any programming language. where we've found it extremely helpful so far is by using the "ast path".
1
0
1
@NateSesti
Nate Sesti
1 year
what we want instead is:.1. immediately send a request after the first keystroke, but also set a variable `debouncing = true`.2. set a timer for ~300ms. when it reaches zero, set `debouncing = false`.3. whenever `debouncing === true`, use the same policy as vs code search.
1
0
1
@NateSesti
Nate Sesti
1 year
@menjilx @continuedev @code you might be able to fix it by adjusting theme like here (, but even better is if we can solve it in Continue. would you be able to share what theme you're using and i can try to figure out what variable is causing this? feel free to dm me if it's easier.
1
0
1
@NateSesti
Nate Sesti
5 years
Reality is approached, not attained.
0
0
1
@NateSesti
Nate Sesti
1 year
but now that we know to generate multiple lines, when do we stop?. there are two main issues:.1. generating too much code.2. mis-matched brackets / parentheses / quotes.
1
0
1
@NateSesti
Nate Sesti
1 year
step 1 is just keeping track of the most recent ~10 files. step 2 is to search over them. we use a sliding window matcher to find the range in each file that is closest to the range around the cursor.
1
0
0
@NateSesti
Nate Sesti
1 year
how to build tab autocomplete p4:. half of the problem is just knowing when to stop!.
1
0
1
@NateSesti
Nate Sesti
1 year
using the language server protocol to add function/type definitions to context:.
@NateSesti
Nate Sesti
1 year
whenever you type the opening parenthesis of a function call, @continuedev's autocomplete will now use the language server protocol ( to add the function definition to the prompt.
1
0
1
@NateSesti
Nate Sesti
1 year
after including this information in the prompt, the model has a much easier task: basically pattern matching rather than a guessing game.
0
0
1
@NateSesti
Nate Sesti
4 years
Can individuals create lasting change or achieve beyond the inevitable?. Whether or not we believe so, we are right.
0
0
1
@NateSesti
Nate Sesti
1 year
truncating the completion:.
@NateSesti
Nate Sesti
1 year
how to build tab autocomplete p4:. half of the problem is just knowing when to stop!.
1
0
1
@NateSesti
Nate Sesti
1 year
so instead of cancelling and sending another request, we just keep listening to the current one until it's invalidated. by the time i've typed 'con', the response might be complete and we can display this to the user. because i can't type 1000+ wpm, this will come in handy.
1
0
1
@NateSesti
Nate Sesti
1 year
6-100) idk yet. either you'll find out when i do, or be kind enough to share ideas.
0
0
1
@NateSesti
Nate Sesti
1 year
@menjilx @continuedev @code ok very good to know. made an issue to track this: i'll share updates there instead of twitter.
1
0
1
@NateSesti
Nate Sesti
1 year
first, we construct the abstract syntax tree (ast) for the current file and find the leaf node that contains the current cursor position. then, repeatedly moving up one parent node, we walk to the top of the tree, keeping track of all the nodes seen on the way: the "ast path".
1
0
1
@NateSesti
Nate Sesti
1 year
using jaccard similarity to find important snippets from recently edited files:.
@NateSesti
Nate Sesti
1 year
the first improvement that feels magical (since originally getting autocomplete working) is adding recently edited files to context.
1
0
1
@NateSesti
Nate Sesti
6 months
@0xblacklight @continuedev make sure you're on pre-release and using claude (for now), and then you'll see the "tools" menu in the toolbar. it comes with these tools built in, but you can install any mcp server to add more!
Tweet media one
0
0
1
@NateSesti
Nate Sesti
1 year
@MikeBirdTech @erhartford @SourcegraphCody @ollama @continuedev It does! This and a lot more is editable in config.json, and you can also switch between multiple chat models with a keyboard shortcut:
1
0
1
@NateSesti
Nate Sesti
1 year
this is another chance to use the "ast path". we check whether any parent node is of the "statement_block" type (a fancy way of saying you're in a `{ }` in .js/.ts) and whether the cursor is at the start of this block. if so, then we use multi-line.
@NateSesti
Nate Sesti
1 year
at the core of most tab autocomplete systems is a tool called tree-sitter (. tree-sitter makes it fast and easy to parse abstract syntax trees in any programming language. where we've found it extremely helpful so far is by using the "ast path".
1
0
1
@NateSesti
Nate Sesti
1 year
the outcome is seen below. only two requests are sent: immediately after i type the first character (generates '// . ') and again after I'm done typing. but there's still more to do
1
0
1
@NateSesti
Nate Sesti
6 months
@cheesecakegood @continuedev @AnthropicAI absolutely, thereโ€™s a PR in the works for this. clearer err messages and nicer display of them should be in pre-release next week.
0
0
1