They're helpful, but if you've worked on large projects, you've probably noticed one thing: they tend to get lost.
Request them to modify one function, and they'll begin reading entire files. They consume tokens quickly, slow down, and sometimes mess up your code. It's frustrating.
That's where Serena comes in.
Serena isn't just another coding assistant. It's a toolkit that grants your AI assistant IDE-like capabilities. Think of it as a secret upgrade — your LLM no longer has to guess where the correct code is. Serena shows it exactly where to look and how to make edits.
It's free, open-source, and honestly, it makes a noticeable difference.

How Serena Works Its Magic
Serena has these handy tools that allow your AI to cut through code like a hot knife through butter. For example, if you're working on a JavaScript app and want to log user actions, without Serena, your AI might need to scan the entire file.
// user.js
function signIn(email, pass) {
let user = db.getUser(email);
if (user && user.pass === pass) {
return user;
}
return null;
}It's a slog. Serena's different. It's got tricks like:
find_symbol("signIn")To locate that function.insert_after_symbolTo drop in new code right where it belongs.
So, your AI calls those tools, and bam:
function signIn(email, pass) {
console.log(`User ${email} just signed in`);
let user = db.getUser(email);
if (user && user.pass === pass) {
return user;
}
return null;
}Quick, clean, and no wasted effort. It's a lifesaver when your project's huge.

Hooking It Up: Easy as Pie
Serena's not picky — it works with whatever AI you're using. Want to use it with Claude? Just run:
uvx --from git+https://github.com/oraios/serena serena start-mcp-serverAnd Claude's ready to roll. You can also plug it into VS Code, Cursor, or even ChatGPT with a tool called mcpo. It's like tossing Serena into your toolbox — it fits anywhere.
Serena Fixes a Rust Mess
My friend was building a Rust tool, and we needed to track how often a command ran. Without Serena, our AI was like a kid flipping through a 500-page book for one sentence. With Serena, it found the function we needed:
// main.rs
fn run_cmd(cmd: &str) {
println!("Running {}", cmd);
}Then it added a tracker:
fn run_cmd(cmd: &str) {
println!("Running {}", cmd);
save_usage(cmd);
}It was as if Serena handed the AI a laser pointer, allowing it to hit the exact spot. No fuss, no muss.
Works with Tons of Languages
Serena's comfortable with pretty much any language — Python, JavaScript, Rust, Go, PHP, and even languages like Elixir or Zig. Some need a bit of setup (like gopls for Go), but most are ready to go. It's like having a universal remote for your code.

Getting Started: No Sweat
Wanna try it? It's easier than untangling headphones. You'll needuva Python tool manager. Then just run:
uvx --from git+https://github.com/oraios/serena serena start-mcp-serverPoint your AI tool at it, and you're off. You can also use Docker or Nix if you're fancy. Serena even pops up a little web dashboard to check logs — pretty handy.
Make It Yours
Want Serena to act a certain way? Tweak its settings in a file serena_config.yml in your home folder. Like, if you want your AI to explain things, add:
system_prompt: "Talk to me like I'm just learning to code."Check it out on GitHub