[HN Gopher] Copilot Chat in VS Code is now open source
       ___________________________________________________________________
        
       Copilot Chat in VS Code is now open source
        
       Author : ulugbekna
       Score  : 144 points
       Date   : 2025-06-27 11:06 UTC (11 hours ago)
        
 (HTM) web link (github.com)
 (TXT) w3m dump (github.com)
        
       | hu3 wrote:
       | Quick, someone use AI to scan the codebase and explain the
       | decision tree of Copilot Chat with regards how it handle prompts
       | and responses.
        
         | dataviz1000 wrote:
         | I very much need to know this also. First, tools [0] and
         | prompts [1]. I'll get back to you in a minute while I back
         | trace the calling path. One thing to note is that they use .tsx
         | for rendering the prompts and tool responses.
         | 
         | 1. User selects ask or edit and AskAgentIntent.handleRequest or
         | EditAgentIntent.handleRequest is called on character return.
         | 
         | 2. DefaultIntentRequestHandler.getResult() ->
         | createInstance(AskAgentIntentInvocation) -> getResult ->
         | intent.invoke -> runWithToolCalling(intentInvocation) ->
         | createInstance(DefaultToolCallingLoop) ->
         | loop.onDidReceiveResponse -> emit _onDidReceiveResponse ->
         | loop.run(this.stream, pauseCtrl) -> runOne() ->
         | getAvailableTools -> createPromptContext -> buildPrompt2 ->
         | buildPrompt -> [somewhere in here the correct tool gets called]
         | -> responseProcessor.processResponse -> doProcessResponse ->
         | applyDelta ->
         | 
         | [0] https://github.com/microsoft/vscode-copilot-
         | chat/blob/main/s...
         | 
         | [1] https://github.com/microsoft/vscode-copilot-
         | chat/blob/main/s...
         | 
         | [2] src/extension/intents/node/toolCallingLoop.ts
        
           | _boffin_ wrote:
           | Care to also check if they do prompt decomposition into
           | multiple prompts?
        
             | dataviz1000 wrote:
             | You're asking if they break the user prompt into multiple
             | chunks?
             | 
             | All I can find is counting number of tokens and trimming to
             | make sure the current turn conversation fits. I can not
             | find any chunking logic to make multiple requests. This
             | logic exists in the classes that extend IIntentInvocation
             | which as buildPrompt() method.
        
               | _boffin_ wrote:
               | I believe it's this paper, but... not certain:
               | https://arxiv.org/abs/2210.02406
               | 
               | will update when i find more info.
        
           | chatmasta wrote:
           | Something I've wanted to hack together for a while is a
           | custom react-renderer and react-reconciler for prompt
           | templating so that you can write prompts with JSX.
           | 
           | I haven't really thought about it beyond "JSX is a templating
           | language and templating helps with prompt building and
           | declarative is better than spaghetti code like LangChain."
           | But there's probably some kernel of coolness there.
        
       | BrentOzar wrote:
       | I have a hard time getting excited about this when they have such
       | an atrocious record of handling pull requests in VS Code already:
       | https://github.com/microsoft/vscode/pulls
        
         | Alupis wrote:
         | That's because it's Microsoft's Trademarked version of Open
         | Source.
         | 
         | All the good FOSS vibes, without any of the hard FOSS work...
        
           | NewsaHackO wrote:
           | I hate this analogy. Just because something is open source,
           | doesn't mean it is forced to commit or comment on every pull
           | request which takes development time. If that notion really
           | bothers you, you are free to fork VSCode and close all 600
           | pull requests on your fork.
        
             | Alupis wrote:
             | It's a common theme across most (all?) Microsoft "Open
             | Source" repos. They publish the codebase on Github (which
             | implies a certain thing on it's own), but accept very
             | little community input/contributions - if any.
             | 
             | These repo's will usually have half a dozen or more
             | Microsoft Employees with "Project Manager" titles and the
             | like - extremely "top heavy". All development, decision
             | making, roadmap and more are done behind closed doors. PR's
             | go dormant for months or years... Issues get some sort of
             | cursory "thanks for the input" response from a PM... then
             | crickets.
             | 
             | I'm not arguing all open source needs to be a community and
             | accept contributions. But let's be honest - this is
             | deliberate on Microsoft's part. They want the "good vibes"
             | of being open source friendly - but corporate Microsoft
             | still isn't ready to embrace open source. ie, it's fake
             | open source.
        
               | almosthere wrote:
               | f. o. r. k. everything costs money, waaaay more than a $5
               | buy me a coffee. Every PR MS closes costs them thousands
               | of dollars.
        
               | cyral wrote:
               | I've looked at a bunch of the popular JS libraries I
               | depend on and they are all the same story, hundreds of
               | open PRs. I think it's just difficult to review work from
               | random people who may not be implementing changes the
               | right way at all. Same with the project
               | direction/roadmap, I'd say the majority of open source
               | repos are like that. People will suggest ideas/direction
               | all day and you can't listen to everyone.
               | 
               | Not sure for VSCode, but for .NET 9 they claim: "There
               | were over 26,000 contributions from over 9,000 community
               | members! "
        
             | jemiluv8 wrote:
             | Agree. OSS is hard work and not obligatory.
        
         | msgodel wrote:
         | It looks to me like they close nearly 30 PRs every day. That's
         | kind of amazing.
         | 
         | I'm no fan of Microsoft but that's a massive maintenance
         | burden. They must have multiple people working on this full
         | time.
        
           | Alupis wrote:
           | If you examine the merged PR's - the overwhelming majority
           | are from Microsoft employees. Meanwhile, community
           | contributions sit and rot.
        
             | jemiluv8 wrote:
             | I thought they just open sourced this? Was there enough
             | time to start reviewing community contributions?
        
           | DidYaWipe wrote:
           | Yet the Settings UI is still a nonsensical mess.
        
         | tomnipotent wrote:
         | I'm not sure I see the problem. The number of merged PR's looks
         | on the high side for a FOSS project.
         | 
         | https://github.com/microsoft/vscode/pulls?q=is%3Apr+is%3Aclo...
        
       | mirekrusin wrote:
       | There are just two forms of code - public domain and private.
       | It's just that some people don't see it yet.
        
       | xenophonf wrote:
       | What is Copilot Chat but a front end to some Microsoft SaaS
       | offering? There's nothing materially "open source" about that.
       | All the important stuff is locked up behind the GitHub Copilot
       | API. No one can customize the LLM design or training material. It
       | certainly can't be self-hosted. This is just in-app advertising
       | for yet another subscription service that sends your personal
       | data to an amoral third party. There's no community, no public
       | benefit, no commonwealth.
        
         | dawnofdusk wrote:
         | I mean you're right it's just a front end. And front ends can
         | be open sourced? Obviously this has some public value: other
         | people don't have to build a frontend starting from zero.
         | 
         | I don't think it's well-aimed criticism to say that the LLM
         | design/training material itself should have been made open
         | source. Pretty much no one in the open source community would
         | have the computational resources to actually do anything with
         | this...
        
           | brahma-dev wrote:
           | But they might have the computational resource to showcase
           | how these companies are breaking the copyright law that they
           | loved until recently.
        
           | jemiluv8 wrote:
           | They are not obligated to provide it even if people have the
           | computational resources to operationalise it.
        
         | MangoCoffee wrote:
         | Doesn't open source mean users get the source code?
         | 
         | I don't understand this criticism.
        
           | senko wrote:
           | They get the source code to a client.
           | 
           | The criticism is that most of the value is (presumably) on
           | the API service side.
           | 
           | https://gwern.net/complement
        
             | jemiluv8 wrote:
             | That is why people are comfortable open sourcing things
             | like this. It is good publicity and they don't loose
             | anything. On the other hand curious devs get to poke around
             | and wonder how their copilot prompts were processed by the
             | plugin. Or how it handles attaching files to context. And
             | even what it sends in its payloads.
             | 
             | Of course most of the value is on the API service side.
             | That holds true for most applications these days.
        
           | grg0 wrote:
           | No, that's source available. See the OSI definition for what
           | 'open source' means. And this is precisely the issue with
           | 'open source' vs 'free software'. Once you rewire your brain
           | for the latter, it's very obvious why a project like this is
           | simply open-washing for PR points.
        
         | jemiluv8 wrote:
         | I don't follow the criticism. It is built on very weak
         | foundations. Open source is just that - open source. Whether it
         | is useful to you or anyone at all is another matter.
        
           | tomalbrc wrote:
           | It's white-washing through "Open Source". No one will benefit
           | from this
        
             | jemiluv8 wrote:
             | Yet here we are, it is out there, some are already poking
             | at how they render responses from their api. Trying to
             | understand some of the technical choices they had to make.
             | Someone has probably cloned this and started pluggin in
             | their own api - or reverse engineering the various api
             | calls.
             | 
             | In the end, the fact that it exists makes a difference. It
             | won't be useful to all especially non-technical people
             | who've never seen the nuts and bolts of a vscode extension.
        
           | unethical_ban wrote:
           | It's an open source... API connector to a closed source
           | product.
           | 
           | "Copilot chat" isn't open source. It's the service.
        
         | phillipcarter wrote:
         | I beg to differ. All commercial SOTA models emit roughly the
         | same quality of code and have roughly the same limitations and
         | ability to remain coherent in the size of context passed to
         | them.
         | 
         | As has always been the case, it's the mechanisms used to feed
         | relevant contextual information and process results that sets
         | one tool apart from another. Everyone can code up a small agent
         | that calls in LLM in a loop and passes in file contents. As I'm
         | sure you've noticed, this alone does not make for a good coding
         | agent.
        
       | v5v3 wrote:
       | Tell me the competition is winning without telling me the
       | competition is winning...
        
       | gatienboquet wrote:
       | Here's the system Prompt Template they use :
       | https://github.com/microsoft/vscode-copilot-chat/blob/4c72d6...
        
         | rob-olmos wrote:
         | "- cursor position marked as ${CURSOR_TAG}: Indicates where the
         | developer's cursor is currently located, which can be crucial
         | for understanding what part of the code they are focusing on."
         | 
         | I was not aware that was a thing and useful to know. Thanks!
        
           | blitzar wrote:
           | Isn't that needed for the tab completion?
        
           | mathgeek wrote:
           | Interesting to hear how others use these tools. I often
           | phrase things as "this line/method" which implies the tool
           | knows where my cursor is.
        
       | user4673568345 wrote:
       | Copilot in vs code is kind of lackluster and really missing the
       | sort of polish you'd expect from a company like Microsoft
        
         | DidYaWipe wrote:
         | USED to expect from Microsoft.
         | 
         | Have you even used any of their products lately? Where "lately"
         | = the last 15 years...
        
           | koolala wrote:
           | Now I expect out-right malicious corruption.
        
       | revskill wrote:
       | I wont trust microsoft nor google until the end if universe.
        
       ___________________________________________________________________
       (page generated 2025-06-27 23:00 UTC)