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.

None

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_symbol To 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.

None

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-server

And 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.

None

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-server

Point 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