Open Source Friday with Serena

GitHub| 01:05:10|Apr 4, 2026
Chapters10
Cadia introduces OpenSource Friday and introduces Mishka to discuss Serena MCP.

Serena open source toolkit adds fast, precise code navigation and refactoring tools via MCP, pairing language servers with JetBrains-backed capabilities to empower AI coding agents.

Summary

GitHub's Open Source Friday features Mishka discussing Serena, an open source code-toolkit designed to give agents precise code navigation and editing capabilities. Mishka explains Serena’s roots in early 2025 when agent-focused coding began to mature, and why open source mattered: eliminate costly paid access and provide a robust, extensible set of tools. The talk walks through Serena’s two back ends—language servers and JetBrains JetBrains-plugin-backed tooling—and how they let agents understand and manipulate code with precision. A core highlight is Serena’s live dashboard, which surfaces which tools are used in a session and logs inputs for transparency. Serena’s refactoring tools, symbol-level navigation, and 100% accurate reference tracking enable safer, faster edits compared to regex-based approaches. Mishka shows practical demos: how to install Serena, configure MCP connections, and run symbol search, file overview, and renaming/move operations with confidence. He also contrasts Serena’s capabilities with Codex and Claude, arguing Serena’s symbolic tooling makes large, real-world edits feasible and reliable for developers and AI agents alike. The conversation ends with a clear call for contributors and sponsors, plus a path to try Serena through JetBrains plugins or language-server-based setups in VS Code and beyond.

Key Takeaways

  • Serena’s core value is 100% precise code navigation and editing via symbolic tooling, backed by LSP and JetBrains implementations.
  • The toolkit supports 40+ languages today thanks to community contributions, and it’s designed to be integrated with any MCP-enabled client (JetBrains, VS Code, CodeEx, Copilot CLI, etc.).
  • Refactoring tools like inline, rename, and safe delete are now live, enabling AI agents to perform complex code migrations with high confidence.
  • A dashboard and detailed logs expose tool calls during a session, improving transparency and debugging for developers and AI researchers alike.
  • Serena can be used as a standalone agent or as an enhancement to existing agents, making it a powerful add-on rather than a replacement for current tooling.
  • Compared to non-SERENA AI assistants (e.g., Claude, Codex) Serena’s symbolic tooling dramatically reduces token usage and time for complex code understanding tasks.
  • Contributor-friendly design and a reasonable price point (JetBrains plugin at $5/month) help sustain development and broaden adoption across ecosystems.

Who Is This For?

Essential viewing for developers and AI researchers who want faster, safer code edits with AI assistants. If you work with large codebases and multiple languages, Serena promises precise navigation and refactoring that typical AI tools struggle to deliver.

Notable Quotes

"We open sourced it and then something funny happened about a few weeks after we made Serena available cloud code became accessible through the subscription."
Mishka explains the motivation to make Serena open source and how market changes followed.
"Serena’s tools are fairly advanced... they can be only used by models that have sufficiently advanced intelligence."
Describes the capability boundary of Serena’s toolset with different AI models.
"This is the difference. If you don't have symbolic tools, it's as if the code was just flat text for you."
Emphasizes the advantage of symbolic tooling over plain text parsing.
"Move and inline and safe delete — they are 100% guaranteed to be correct and update all the references."
Highlights the reliability of Serena’s refactoring operations.
"If a coding platform or IDE supports MCP, you can use Serena with the platform."
Shows Serena’s broad compatibility with existing environments.

Questions This Video Answers

  • How does Serena integrate with JetBrains and language servers for AI coding agents?
  • What makes Serena's symbolic tooling faster than regex-based approaches in real-world repos?
  • Can Serena be used with VS Code or other IDEs, and how do you set it up?
  • What are the key refactoring tools Serena offers and how safe are they for large codebases?
Open Source FridaySerena (GitHub project)AI coding assistantsMCP (Multi-Client Protocol)Language ServersJetBrains pluginRefactoring toolsSymbolic code navigationCode search and symbol referencesVS Code integration
Full Transcript
Heat. Heat. Heat. Heat. Heat. N. Heat up here. Hello everyone. Welcome to OpenSource Friday, the show where we talk to maintainers about the apps that they're maintaining. I'm Cadia. Thank you so much for being here with me today. We have an exciting show for you. We're talking to Mishka from the Serena MCP server and I hope I pronounce her name properly. Um, so we have a really good show packed for you today. So, I'm just going to pop him on and we'll dig right into it. Oh, hi. Good evening. There we go. Hello. How are you? Good to be here. Thank you for the invitation. Good. How are you, boys? Welcome. Yeah. Okay. So, I think we have a like a 1 second lag. So, I'm going to say something and then I'm going to wait and then um hopefully that will help with the um the little delay that we are having here. But um welcome to the stream. So, tell us about yourself. Yeah, thank you. Uh great to be here. All right. My name is Misha. Uh I'm a software developer and AI um researcher engineer and um I've been in this field for like eight years and before that I did theoretical physics and um yeah a year and a year and a half ago um I co-ounded or AAI with my partner Dominic um so it's still just the two of us um and um we've been working on customer projects but al also we had some time last year and then we did bunch of open source projects and one of them is Serena which is what we're going to talk about today and this year we are really focusing more on on Serena and on other kind of product things um so I'm actually we uh today is one year since we released and today we finally zero a few so I'm very happy that I talk about it on the stream today it's really a good coincidence Yeah, I did I did notice that it's exactly a year after the initial release. So, what does hitting uh V 1.0 mean to you and what's different from now versus the early prototype? Um yeah, so I would say uh we are sort of perfectionist. we have this more or less uh old style view uh to software which means um until now I would say release Serena was viewed as not fully stable and there might be some um changes in the features of product or of the budget. It's not a post source and of um features that we've been working on for a long time and we we were testing them in the last He's still here. Oh, I think we lost him for a little bit there, but he was telling us. So, today we're talking to Misha from the Serena MCP project, and it is Oh, there we go. You're back. Welcome back. I think you're muted. We can't hear you. No. Ah, there we go. We are back in business. Business. I'm not sure what's up with us. Hello. I'm so sorry. There's a huge delay. I don't know why. That's that's yeah there it's like there seems to be some you know like just technical technical technical issues you know just sometimes that's just how it is. I'm sorry about that. Yeah. Oh it's okay. This is this is the world. This is how it is. This is how it is. It's okay. Um so you were saying that you know um you were talking about what was different from the initial prototype until now seeing that Serena wasn't very stable but now you're thinking that it is and you know you want to continue from there. Uh yeah exactly. Um we also just added uh a lot of um a lot of new features with this release that we've been working on for the last months and we've been testing them. and we really wanted to make sure that they're bulletproof. Um, so this uh this release really represents a kind of milestone to us that we we have the core functionality, we have really more advanced features and from now on there's still going to be extensions. Uh, but uh I really feel like the project has matured a lot. Nice. That's awesome. That's awesome. So tell us more about um the purpose of Serena. Like so tell us tell us like how did Serena come to be? What problem were you trying to solve and why did you build it initially? Yeah. Um so it started um essentially January 2025. So a bit more than a year ago uh which is when um son 3.5 came out and the agentic part of coding started to really kind of take off started to make sense because before that the models were just not intelligent enough and not good enough in tool use. It was also when clothe code came out roughly but was not yet included in subscriptions and the only agents uh one could have access to uh without paying huge API costs were something like Vinsurf and Cursor and I tested those um so I paid subscriptions for both of them for Vinsurf and for for cursor um and I was extremely disappointed by by them um because I uh I actually don't know how they are right now. Uh but at that time uh it was clear to me that you can make an agent very easily. It's you can make a while loop and then some file reading capabilities and some reg x replacement and there you go. There you have a coding agent and this is roughly what they did. Okay. So yeah, so this this was the level on which this was um and it just felt very sad because I would have now to pay uh some kind of middleman who resells tokens from a model provider just so that I have access to a while loop and uh file reading. And uh I had the idea that that we could do this better that I could do this better. Um so um and then then I was thinking what's the best way to interact with code and it was clear that one would need some kind of um reliable code understanding and since I'm a professional developer I need a professional code understanding so some kind of small tricks um let's say some regex stuff or some uh uh uristics or so or rug or embeddings uh everything that's not 100% precise would not be because it would be mental like because every small mistake I think I was gone for a sec. Yeah, you're back. Sorry about that. Yeah. Oh, I see. Um, so uh, so I I I so I needed I needed essentially 100% precision um, about code navigation and editing, right? And these tools that are these paid tools that were not open source that were available to me, they didn't have that um, and they were very blunt. So in my very first version uh of of some kind of code navigation, I wrote a system that um parsed code into a graph database and then started navigating the graph database. Um and that worked but it was very um it it was very uh hard to use because every time you would change code it would become out of date. So it was good, okay, good for analyzing code, but it was very bad for editing and for live development. And then it was clear that I would need some kind of more advanced system to connect to this. Um, and I went to a skiing trip uh in France and I talked to a friend of mine and he said, why aren't you using language servers? I was like, yeah, okay, that sounds like a good idea. Um and it turned out to be a great idea because language service provided I would say like 70% of the functionality that was needed um in terms of code semantics code understanding and then we had to write a lot of code to bring it over the last 30% to make it actually usable um for an agent. So just a vanilla integration would not work. Um and the initial version of Serena was it. So it was a a an integration of language servers uh with um with an M contra so so that you could use it for free. It was also important for us. Um it was important that you could be able to connect it to any client. And once I did this this was before cloud code became part of the subscription. So before any kind of coding agent uh from the major provider uh was available through the subscription. Um and it was immediately clear to me that this is really useful. Um not just for me but for others uh and that's why we we open sourced it. Um and then something funny happened about a few few weeks after we um made Serene available cloud code became accessible through the subscription. So there were a bunch of projects that were having similar goals. So I had two goals. I wanted to make a tool toolkit for an agent that is really good and I wanted to make it free. And then there were a bunch of other projects that just at one goal they So uh they would give file access, they would give um kind of shell access uh some kind of code search tools maybe like around or similar um capabilities. Uh but the main idea was really that they would be um subscription based. These three the moment cloud code became part of the subscription and later on Codex became part of the subscription now we had CLA part ofription these two and that happened to Serena. Um, Serena became extremely popular then because it was not only solving the task of of being free but it was solving task of giving really precise once tools and even though it blows my mind up till today still nobody has done it. So we are still the only toolkit of this kind uh that provanced provides advanced uh code navigation and editing um that is 100% precise and uh now we have two back ends either the language servers uh or the um the jetprints that you wrote and that was like four or five language support and by now we support over 40 because so many people contributed um in taking support. really and why and while there might be um similar capabilities as parts of um I actually don't know like I I baked in tools of this kind um since I have didn't need to use them uh since then right uh I I I don't know. Um but for sure there are no open source ones and they're usually bundled within some kind of framework. So they're bundled within an IDE or they bundled within a CLI agent where Serena can be integrated into anything. So it's completely free and flexible to use with whatever solution um the user prefers. Yeah. Wow. Very very interesting. So Certo works with like all the current AI coding agents on the market, right? via MCP. So, do different LLMs use Serena's tools in meaningfully different ways or do they all behave similarly, do you think? Yeah. No, they they they absolutely don't. So, since A Serena's tools are fairly advanced, like for example, recently we merged fairly advanced refactoring tools, they can be only used by models that have sufficiently advanced intelligence. So this was also kind of interesting. So Sonet 3.5 it was barely able to make use of Serena's tools. We had to guide it a lot and prompt it a lot and even then it would make mistakes. Then the 4 variat stopped making these mistakes and started using the more advanced tools and um the newer versions Codex especially but also Opus 4.6 they're really good at using these tools. So there was also this the separation where previously you would have um projects that that would provide some kind of basic tools and they became obsolete because they're no longer needed whereas Serena just gains more and more importance because the models are better and better at using these tools. So I suspect this trajectory will continue as the model intelligence increases. We will create more advanced tools which the models will be able to make use of. H very interesting. I I'm so curious to see. But you can you can essentially forget using it with a small. Yeah, I'm I'm so curious to see how Serena actually works and how we can start using it. No, no, no. It's okay. Stop apologizing. It's it's completely fine. We understand internet woes sometimes. You know what I'm saying? Um uh so let's let's take a look at how to start you how to use Serena and you know how it's different or similar to the other tools on the market. So I'm going to pop your screen on the Okay. Change switch your We have the Yeah, there we go. All right. Yeah. You seeing my screen? Yes. Okay. Uh so before the demo I just want to give a very brief overview um of the tools that we have. Uh so in the different back ends there are different tools. Uh right now we we try to kind of reach more or less feature parity with what is possible with language servers but it's just generally not possible to make some things with them. So the Jetprints plugin will always be the more powerful solution. Um so we have uh retrieval tools where you have where you can find code symbols just by name and reference um and by name and file. Uh you can get an outline and this is really important. You can get 100% precise uh references and not just the lines but the referencing symbols and then other kinds of navigation tools or other kinds of retrieval tools. Um we have refactoring tools. I will show a demo with this. Uh and then we have editing tools uh which um which are much more efficient than a regax based or a string based editing because you just say I want to replace this symbol and just give a new body without having to also enter an old body. So this is a token saving um thing. And uh let me show you one um one chat that I I had recently also um I'm going to show one demo with uh cloud and one demo with codex. So um to configure Serena um you enter this into the um the command to into the codeex uh config which will use EVX to pull the newest version of the repository and then just start the MCP server and I also added a flag to immediately activate the project from my current working directory. Um yeah so uh if I now start codex um and let me do it in the yellow mode. Um let's get this. So now um now it starts uh the agent and it also starts the MCP server. So we will see actually that it starts because um Serena has a dashboard. Uh, let's just see what it does. Sometimes it's a bit slow. Okay. Um, seems like it did start up. Mhm. I'm a little sure. No. Yep. So, before we go any further, what was the command you used to install Serena? Mhm. It's just a UVX start command. Um, so this UVX right here. Okay. Yeah. So, and is that the only way to install Serena? Um, h sorry, that's a wrong um No, you can install it as a anything. I mean, you can download the repository. Um, you can install it as a UV tool. This is a recommended way because this way you get the updates from our master branch. Um but you can install it any way you want. It's just a standard way to install Python MCP servers um through UVX and just just referencing the repository. You can also install it from Pippi but then we we kind of rarely rarely release there because um most people to prefer prefer just to pull the newest commits. Okay. Oh, we have we have a whole documentation on the various ways of uh running it and installing it and connecting to different clients. Awesome. So, okay. So, now hopefully um like it tells me that three installs are available. Um so, for example, let's make just make a quick check. Find um Serena agent. And sometimes I have to tell Codex to use the tools, but usually this is just to make sure it will actually use symbol tool. Okay. So we since the toolkit is fairly advanced uh we we ask the agent to call initial instructions which it has now which just explains uh uh the access to our tooling and you see that um you see that uh we are using Serena now in the jet prints mode just because I configured it for myself this way um you could use it in the language server mode as well so for for what I'm showing it will be the same. All right. So now uh multiple things happened. So first of all, Cortex initialized a session here. Uh and I configured Serena this way that we have we start the dashboard every time uh we start a session. Most users don't do this. I did it not just for the demo. Um so usually you can just open the dashboard when when you're interested in it. Why did you write a dashboard for an MCP server? Well, again, Arena is is quite an advanced solution. So, you would want to know what it's doing. It's very useful to know what it's doing. So, here you can see which tools were called so far in this session. You can see what the active project is. You see uh the active tools and just in order to have a fair comparison, I disabled all our memories feature. So if I compare Codex with Serena with Codex without Serena, it is really just the tools and no no additional information. Um and in the log section you just see absolutely everything that's happening including the inputs. So this is quite useful to just see just to know what's going on. Yes, definitely. Yeah. Um and actually it was probably Yeah. So exactly called initial instructions and then find symbol and let's have a look at what find symbol gave you. So look, it gave you just what what you asked for. So it since I asked it just to look for the symbol, it just uh it didn't include the the body. It just tell you told you here's a symbol. So for example, if I asked it to um look at the methods of a serina agent. uh then it will call the same tool find symbol uh but with steps one. So it will get an overview over the methods. Yeah. Now already this is it's impossible without Serena. If I didn't have Serena activated, it would have to read the entire um file and it would actually fail in doing because the entire file is too long and it would have to read the entire file in multiple chunks just to get an overview of what Serena agent can do. uh so already just this one single tool it's already kind of game changer because you can get extremely um efficient um token efficient and very very fast information. So if I were to ask it for a file overview get an overview um of the file that contains Serena agent. It is able to call the tool get file overview uh which um again it acts asks for depths one. So it will see uh the classes that are there and the methods of those classes grouped and in a very efficient way. So it would see the same thing that a programmer would see if the programmer went to the to the class Hello. 1,00 line Python module and your agent shouldn't be forced shouldn't be forced to do that either. Um so if I were to ask it now let's say I don't know let's let let's me choose some method of this agent that is used quite often um um for example let's say set modes so if I were to do a rexic search for set modes I will probably have a bunch of different definitions the set modes maybe not not for this particular method but for for many other methods Uh so a regx search for a method will very often lead you to wrong results. Uh whereas an IDE search find usages finds you exactly the only results that there are. So I can do the now the same asking the the agent to do this. I can ask uh find the references to the set modes method of Serena. the agent. Uh I'm showing some tasks in isolation. Later I'm going to show a more um um like a more holistic approach. And you saw immediately like it holds the the tool and the model needs to be smart enough to understand how to use those tools, how to construct what we call the reference, what we call the name pass here and gets a very very concise clear answer of uh where the files are and what kind what kind of symbols use this. So you get the functions uh where this is used not just a line. Incredible. And it's so fast. Yeah. Mhm. Yeah, it's very fast because um because it uses the uh it just uses the correct methodology for it which on the language server website would be a running language service and right now on the judge brain sites it's my running ID. So essentially it does exactly the same thing that I would do just call this method find usages. So we are tapping in really really mature technology that has been developed over decades which is the um symbolic understanding of an IDE. Yeah LSP or an ID both of these are very very mature technologies and the agents desperately needed access to them and to the best of my knowledge Serena is really the only thing that gives holistic access to these. So um I want to show you a demo uh that I prepared today. I I I just won't run it live because it's takes minutes to do this. So I I did the same prompt one time in Codex. This is a Codex app. I did it one time uh with Serena and one time without Serena. So I asked what are the most important methods in the Serena agent class? How are they used and tested in the codebase? So Serena itself it's a complicated project. So this will be a large answer. And now you here you will be able I man I think it doesn't show it anymore but um with Serena it used half the tokens and half the time to do so the same problem. How is it possible if you were to see what Oh well just imagine what it has to do without the symbolic tools. So, here's the same thing, but I asked you to not use 3MCP tools because I shut down the server. And look what a poor I can't believe it. It deleted this. It deleted the tool calls. Um, but um uh well I guess um let me run it uh one more time and then then you will see I could just run it here. No. Yeah, run it. And then we have a question about um how to enable Serena in Jet Brains. How do we connect Serena to Jet Brains? Uh yeah, I can show you this. So this is actually trivial. Uh so we publish a plug-in. So you just download the plug-in. Uh you can see it now running here. So the plug-in also logs all the tool calls, right? So this is a back end and all you have to do is to configure in your config um that you want to use the jet plugin. This is this is just a YAML. You can also edit it on your PC. Um we just you know also made a button so you can configure it from the dashboard. So here you will see um the um uh the uh language back end. uh here. So I configured it to Jet Brains. If I know where to set LSP, it would use LSP. Gotcha. And if I set it to Jet Brains, Serena will use Jet Brains. So to use Serena in Jet Brains, you download the Jetra the Serena plugin in Jetrains and then configure your um the global Serena config. You update update it to say like the the language back end. You update it to say Jetra the language back end. Yeah. And that's it. Otherwise everything else will be the Yeah. So is Serena just here you see it it's working. No, go ahead. Keep going. Uh yeah. So you see it filed a whole lot of symbol and references request. Um and it's it's still working. And if I now were to do the same task with codeex uh but I were to uh let me disable the the MCP. I don't know whether that's possible dynamically but uh just for the fun of it. Um but I guess let me just delete the whole section. Um, and now I can start Codex here. Sorry, let me run it in in YOLO mode. And I were to ask the same prompt. Now it would have instead of having the precise simple tools, it would have to read all the files. It would have to grab a lot. It would have to uh run regex a lot. And you can just imagine how much less efficient it is. Like if you were to uh look for methods of the codebase and you were to look for symbols of the codebase, it's so much more efficient to just have symbolic tools uh that are correct like here find than having to read chunks of files and have to grab and regax that it's like it's just a very small example where it was twice as fast. But in reality, for many real world application, I I just can't work without Serena anymore because the difference is so stark with having these tools and not having these tools that uh I just I just never want to not have them. Um so in in my example, it will work quite for quite some time. That's why I prepared the the um the thing here like here it worked for I think eight or nine minutes without Serena and for four minutes with Serena something like that. Uh you had a question. Yeah. So tell me more about the symbolic tools. Um break break down what that means for us and why it allows Serita to be so performant. Um I mean some things I've already shown right so uh for example you you already know that you you're looking for this kind of method right uhhu so what would an agent have to do let's say this activate project from password name how would I go about in reading it I would look for the method here so I would use a symbolic search of the IDE um activate um from class from project name and then I would uh immediately know that okay this is what I'm interested in right and maybe very first when I want to understand it I would just actually just look at the signature and the next thing I would do is just look at the quick info right and then maybe the last thing if I really care I would actually look at the code Now the symbolic methods allow you to do exactly that. So when when you say find symbol, it will find this symbol. It will tell you whether it wants the body or not or whether it just wants a signature. Um and uh if I want to find the references of this, you see here it shows five usages. So I can immediately see the lines where it's used. And if I actually look at the usages here, um I would see okay, it's used within the function in it. And here it's used within the function apply. And here it's used within tests within this test. Yeah. So all of this is very vital information. Look how I understood a lot of information uh without having to actually read code or open these files or read chunks of those files. Okay. If you have access to IDE tools, then you can do this. Now imagine I didn't have access to to the symbol search which I just had right to this activate project for person name. I didn't have access to finding references. I didn't have access to the quick info uh or the signature s. Yeah. So this stuff imagine I don't have access to all of this. Imagine I have to work on a complicated project in Microsoft Word. Uhhuh. I could still do the job, but it would just be harder for me. It would be much harder to work on a coding project in Microsoft Word. It's possible, but it's way harder. So, this is the difference. If you don't have symbolic tools, you it's as if the code was just flat text for you and you you just operate like a programmer would operate in Microsoft Word. if you do have the tools um you can you can make use of them and um I don't know a single programmer who programs in Microsoft Word not a single one every single programmer uses an IDE and every single agent should also use an IDE it's just that the tools have to be done in a way that is agent compatible because this is all GUI tools because I can just look at the screen and read whereas the agent can't look at the screen and it also can't like imagine the agent knows okay the symbol was in this line 825 and then they change just add the new line right then immediately this this line information it's it's outdated so most tools that you will see still use um and most agents that you see still use this line based information which is fragile it's just not not suitable for agents so in Serena lines are never used our entire all of our tools are just based on on a really agentic interface which just references tools by names and by um by other suitable means. So no matter how much you're editing um the agent will be able to navigate and um and deal with the code. So here that's very interesting and it's a very smart pattern. Yeah. things. So here you will see um the tools that uh the statistic of the tools uh that were used by the agent uh to solve this task. So it used find symbol 41 times, it did a little bit of regex search, it used finding references 11 times and it used the symbolic overview of files four times. So since I just asked question about just tell me what the code does, they didn't use any editing tools. Um and so so you see that the agent is actually able to to use the tools in a very good way. Yeah. Yeah. Question question for you. Totally done by now. So is Serena is Serena only for um like searching code and like looking at methods or can you also build with Yeah, you can build. you can build. So I'm going to the next thing I would show is uh editing and refactoring. So maybe one thing to mention for a very very long time and my partner still use does this we use Serena just through cloud desktop which means there were no other tools just Serena and is a stand full standalone agent. So Serena's tools represent a complete agent toolkit. You can do any task you would want to do just using those tools. Now gotcha. Most of our users use Serena as an enhancement of an existing agent. They don't use it as a standalone. But you can use it as a standalone thing. In in our original vision before all the agents became cheap, uh we wanted Serena to be a standalone agent. So it still has this character. Um, but now let me show you something like so now I showed you something that uh would be possible to do without Serena. It just would be much less efficient. So now I would like to show you something that is essentially impossible to do without Serena. Um, which is a refactoring task. So these are the tools that just went live today. Um so I in order to make it very understandable I created a demo project. Um but you can easily imagine it being in a in a real project. Um so the task is just simple renaming. Um and then I want uh to inline the method and uh I want to safely remove that code. So uh to make sure that there are no references and finally I want to execute a move. So these are just standalone standard routine tasks. If I were to move in my ID like if I were to do this move then I would move and my ID would ask me okay do you want to search in competent strings and when it would then update all the references. So if I were to look so this is a task that programmers do 100 times a day or maybe at least 100 times a week but an agent would struggle extremely uh if it doesn't have access to refactoring tools because it would like need to create a new file delete a file write new code in that file um update find all the references update all the references. Essentially this kind of refactor in the larger code base for an agent it is next impossible. It's extremely expensive and will usually be wrong. So now Serena has access to not only to the navigation tools but also to refactoring tools in order to show you that it works with different agents not just with codex. I will now use close code. So um so I ran first uh I ran this command to add Serena to cl code which is the same thing as for codeex and uh I think I already have it but so we'll see. So uh let me use code with interest bypass permissions. So we don't have to ask on every tool. Uh and we're going to also look at the um MCP server. Serena is disabled. So okay. So for the fun of it, since Serena is disabled, let's start one session where I'm using this task but without Serena's tools. So let's see what clo will do just so you have a comparison. Uh um hello. Okay. So, look what this poor guy has to do. One second. I think there's uh the screen isn't popped up yet. It has to use basic basic search and B tools in order to redeem something and move something. This this will actually take something. So, it first has still is collecting information. Uh, you still there? Can you hear me? Okay. Yeah, you're back. Yeah. Okay. So, what's what's Claude doing that Serena that makes it different from So uh look so it it it read 15 files completely. Now it is using mhm editing operation on every single file. It's using bash to to remove the files. It's uh it has to update all the references. Just imagine how unsafe this is in an actual larger code base where changing the name or moving a file affects hundreds or or even thousands of files. Sometimes Clo would have to manually edit every single one of them. Okay, it's still not done. It's still working. 2 minutes in, it's still working because it still has to adjust the imports. And this is just a tiny tiny repository. Okay, so now two minutes later, it is done. And if I look at how many tok tokens it has used, so we have used um 8,000 tokens on messages. For this tiny tiny task. Okay. And probably got it right. And for Serena got it right. Sorry. It would be almost impossible to get it right. Okay. So, let me roll it back and I'll do the same thing um with Serena. Okay. So, now let me um Oh, again cool close So now it will fire it up. It will take one second, I guess. Let's Let's see how far it's going. It's connecting. It's connecting. Yep. Okay. Connected. Connected. Wonderful. Yeah. Now it's connected. So it's good. Same thing. Now we will ask it also to address the same task. Okay. Address task empty and let's see what it will do. I see we will hear have the dashboard to see what it's doing. So while it's running, um would you say that could you because you mentioned that you know a lot of your users currently use Serena as a like as a like as an additional tool to their coding agents, right? So would you say that you want Serena to be complimentary to those tools or do you plan for it to be a competitor to those tools? No, I want it to be complimentary. Uh I'm not interested in in in presenting this basic functionality. For example, cloud code has a very good bash tool. Um COVID has a very good regax search tool. I'm not interested in writing these basic things that are also needed for agents. Serena for example has a memory system which I personally like but we built it because initially these agents didn't have good memory systems. Um and uh I'm not particularly interested in further developing it. Um so it's definitely complimentary. It brings in this this advanced tooling. So it's already done with the task. You see like it already renamed and moved things around. Now it's just verifying that everything is fine. And you see that the tool said it called here. So it called an inline symbol rename safe delete. Um I also asked it to move something. Ah, well that's interesting. So now it was too dumb to use the move tool. That's that's rare. Okay. So it used the three tools but then Claude failed on using the move tool um in order to move it and had to do the task itself. Still you see it was substantially faster. Um and most importantly it was safe like all of these operation inline rename and safe delete. um they are 100% guaranteed to be correct and update all the references. Um it's actually a shame shame that they didn't use a move tool. Um let me just for the fun of it um move it back and just just to show how the the tool would work. move tool to to move parcel to the legacy package. Codex has no problems with this, but clo sometimes, especially with 1 million. Um, it's it's really too dumb. Unbelievable. Yeah, that sometimes happens. Oh no. Now it used to move. Very good. Okay. So you saw this. It very quickly flickered up. So it used the ID tool to move everything. Yeah. So uh these tools are definitely complimentary. Yeah. I'm not I have no interested you know recently the code code base was leaked and has something like 500,000 lines of code. Um and most of these are not related to tooling but to to other stuff to like session management to terminal experience to to memories to user management subscription management and so on. Um so Serena can is just a toolbox that's complimentary. It's just good to know that if you want to build your agent just for yourself, you basically don't need any other tools. And the absolute majority of our users uses it complimentary. They use it within cloud code or within GitHub CLI or within codeex or within any kind of agent that they want. Okay. So if we use um VS Code, are we able to is there a VS Code plugin or if there's is there one on the on the on the road map? Yeah. So um first of all you can use VS code uh and you can use language server back end um and then the VS code agents they they also have MCP integration. So many many of our users use um Serena just directly within VS Code with a language server plug-in. What you can also do and that's several users do that is just to use the Jet Brains ID in the background. and uh actually use VS code as a primary IDE. So even if if you want these advanced tools which like move and um and rename which are only avail sorry and and uh inline and safe delete and so which are only available through JetRint plugin. You can still use them as VS code. You just need to have also JetRint ID open in the background because you will be using Serena within your agent. The fact that I used it now in the integrated terminal, it's irrelevant. As you saw before, I used it in codeex and I could have used it in VS Code. So essentially, so this was also using Yeah. So essentially any tool that supports MCP uh you're able to use Serena. So you just add Serena MCP server um and then you're able to go ahead and use Serena in whatever tool you're using. This is perfect because I personally I like using copilot CLI. So I am able to add the Serena MCP server to Copilot CLI and go forth and use Serena there. And so if you want to use I see uh Martin saying that it would be helpful to show how to get started with Serena. So Martin if you go to Serena's um GitHub repository, it it definitely shows you how to get started with it. you you install it with um you can install it with UV, you can add it as an MCP server and um you install the Jet Brands plugin and once you install the Jet Brands plugin, then you go ahead and update your configuration settings on the Serena dashboard and then you go forth and use Serena. We did um cover that. When we're finished, I would encourage you to go back to the like the middle part of the stream and then you can see that we talked about that a bit. Um, but essentially if a if a coding platform or like if an IDE supports MCP, you can use Serena with with the platform. So that's that's pretty incredible. Um, anything else you want to share with folks here before we wrap up? Yeah. So I have shown this demo with the dre plugin because I wanted to show these refactoring tools, but you don't need to. So if you just use a LSP plugin, then it supports 40 languages. This should be enough. For essentially everybody and for the majority of these languages, this is plug-and-play. So all dependencies will be downloaded on the fly. Um so then you don't need to have a JetRa ID open. You can use it uh remotely. You can use it on the server. Um you can use it wherever because it's extremely lightweight. it will download and start the language servers and will use them to provide the symbolic tools. Um, and for many VS code users, this right now is how they use it because they don't want to download and start a jet brains IDE. I wouldn't want to download and install Jet. You wouldn't want that. So, so the good news is that we we are um we are uh tech evaluating whether we can uh make a VS code plug-in which will provide the additional um features the same additional features that the jet uh jet plug-in provides because um the move and rename functionality uh that we're using is just not available in language servers at least in many of them. um also this kind of stuff like inline methods or even go to implementation language servers simply don't provide it. So the way VS code implements this functionality is not by using language servers but by using internal VS code APIs and you want to see whether we connect to those API can connect to those APIs to then provide a native VS code experience similar to the one that I've shown now for Jet Brains and so with a bit of luck we will get there within the next few months. Okay, that sounds that sounds awesome. That sounds awesome. So go ahead folks and check out Serena. It's very cool, very interesting. Um I I can't wait to dig into it and see how I can use it in my workflow to save my tokens and also to just, you know, move faster. Um because it has some I don't know how it's it's it works so so fast. It's so efficient. I I really enjoyed seeing Serena in action actually. Yeah. Um, it's because we stand on shoulders of giants. Language services are just very mature technologies. Yeah. And I think it was so smart to use the language server protocol rather than building your own semantic analysis layer, you know, like that would have taken so much research and so much work to do. Um. Yeah. Yeah. Exactly. So, so definitely definitely cool here. So, as we wrap up, um, are you looking for contributors? are you looking for um download like what are you looking for from the community here? Um I contributors are good of course. So this growth to 40 programming languages was only possible through contributors because we also made it very easy to contribute new language server. Mh. so we are a company of of two people right now and we mainly earned our money through consulting. So for a large part, Serena was just um work that we did for free. Uh we we didn't earn anything. Um it would be great to have some sponsors and our only source of income for Serena is the Jet Brains plugin which costs 5 a month. So it's like coffee. so that's that's one of the best ways I guess to help. Um, as I said with the one zero release, we consider the software pretty mature. So, contributions are now right now right now they're not the most important thing. Um, but uh folks just using it and talking about it in one year we got to over 22,000 stars which I think is a good indication that the community likes it. We are consistently listed among the top 10 MCP servers worldwide. But uh now as of today, I think there's really no reason that not every single agent should be using Serena unless you're only working on a green field project and you're only just creating a new app in which case the tools don't help very much because you're just writing new code all the time. But essentially for every single project which is even a slightly bit more complex, Serena is going to be a benefit. Um, yeah. So, I think where I would spread the word, start using it. Um, and if you're missing features, uh, let us know. Um, and if you want to spend, uh, $5 to get, uh, really advanced refactoring tools with which without which your agent simply can't do the corresponding tasks, then consider doing so. Yeah. And I would I would encourage the the Serena team to to do create that um VS Code plugin. Um because as a as a VS Code user and I see Sarah say said it as well like I I would just use it in VS Code as an MCP server and I too would love access to those more advanced um more advanced features and capabilities to get stuff done more performantly and like quickly. Yeah, we working on it. Um it's just the addition of the addition of the difficulty is that VS Code doesn't have a paid marketplace. So we would also like to have um $5 for that because otherwise we we just can't work on the project anymore. If you want to see like there's a lot of work going into it. Yes, I see. Uh we have uh hund hundreds of thousands of lines of code. Um so we will first have to implement a licensing server before we can u start selling the VS Code plug-in. We will have the same price point. You see like the the work that goes into this. and uh that's that's one of the that's the reason why we did with Jet Brains first because it already has a marketplace and we didn't have to do all the licensing stuff ourselves. Yeah. Makes sense. Makes sense. Thanks so much for coming on the show today. Two months. Yeah, hopefully hopefully hopefully people will be so inclined to contribute to your um you know to sponsor the project. Maybe that's a thing you know to encourage VS Code users to sponsor the project to keep it going. Um especially if they want the VS Code extension to be to remain updated. Maybe you know that would be some incentive. I don't know. But super cool work here. um very very interesting um approach using the the LSP and um having Serena have those really advanced capabilities and also having Serena be an MCP server so it can work with uh tools that we're currently using, right? We can just add it as a part of our toolkit. I think that's like the best part I like here. Um because you know as developers we don't like to change our tools once once we get used to something it's it's like that's it. Um, good luck getting me to change. So, I think that was really smart here. Cool. I'm glad you like it. That was one of the things you wanted to achieve because I was forced to use other tools just for the agent and I absolutely hated the two months where I had to do that and I'm glad I don't have to do that anymore. Yes, absolutely. The the worst thing you can do is force us to do anything because we will just build it ourselves and and that's it. Exactly. That's exactly what happened. Um, but yeah, uh, thank you so much for being on. Thank you everyone for joining. Go check out, uh, Serena at gh.io/serena and we will see you next time for OpenSource Friday. Bye. Thank you very much, Kadesha. Have a good evening. Bye-bye. down. Hey Hey, hey, hey.

Get daily recaps from
GitHub

AI-powered summaries delivered to your inbox. Save hours every week while staying fully informed.