gitwtfhub

wtf is drey?

mario/drey — explained in plain English

Analysis updated 2026-05-18

1RustAudience · developerComplexity · 3/5LicenseSetup · easy

TL;DR

A tool that lets multiple editors and AI coding agents share one language server per project instead of each starting its own, saving memory.

Mindmap

mindmap
  root((repo))
    What it does
      Shares language servers
      Cuts memory use
    Tech stack
      Rust
      LSP protocol
    Compatible servers
      rust-analyzer
      gopls tsserver
      clangd pyright jdtls
    Use cases
      Multiple Claude Code sessions
      Editor plus agent together
    Audience
      Developers
      AI coding agent users

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Why would anyone build with this?

REASON 1

Run two or more Claude Code sessions on the same project without duplicating memory hungry language server processes.

REASON 2

Let an editor and a coding agent share one indexed workspace instead of each starting a separate language server.

REASON 3

Free up gigabytes of RAM on a machine running rust-analyzer, gopls, or similar servers across multiple tools.

What's in the stack?

RustLSP

How it stacks up

mario/dreyabc3dz/mixxxabyo-software/ferro-stash
Stars111
LanguageRustRustRust
Setup difficultyeasymoderatemoderate
Complexity3/52/54/5
Audiencedevelopergeneralops devops

Figures from each repo's GitHub metadata at analysis time.

How do you spin it up?

Difficulty · easy Time to first run · 5min

Install via brew or cargo, then run drey install to wrap existing language servers.

Wtf does this do

drey solves a memory problem that shows up when you run more than one coding tool at once. Normally, every editor or AI coding agent starts its own language server, the background process that understands your code and answers questions like what a variable's type is. If you have two Claude Code sessions open on the same Rust project, that means two separate rust-analyzer processes, each holding a full copy of the project's indexed data in memory. The README shows a real measurement of this: two sessions using over 7 gigabytes combined just to answer questions about one codebase. drey fixes this by letting every client share a single language server per workspace instead of each starting its own. Installing drey puts a small wrapper program in front of your existing language servers, named the same as each one, such as rust-analyzer, gopls, tsserver, clangd, pyright, or jdtls. Your editors and agents keep using the same commands they already use, but those commands now go through drey first. Running drey install writes these wrappers and adjusts your shell path automatically, and drey status shows what servers are currently running and which clients are attached to each one. Behind the scenes, drey is one program that plays two roles. It acts as a lightweight stand in that looks like a normal language server to each client, while a background daemon manages the real servers, one per project workspace, starting them the first time they are needed. When a client opens a workspace whose files are already covered by a running server, it attaches to that same server instead of starting a new one. If two clients have different unsaved edits to the same file, drey keeps track of both versions and swaps in the right one before answering each client, so each gets a correct, personalized answer rather than a shared, incorrect one. The project describes itself as early stage: it works and has automated tests, but has mostly been tested against a simplified mock server rather than every real language server it supports. It is released under the Apache License 2.0 by Mario Danic.

Yoink these prompts

Prompt 1
Walk me through installing drey and wrapping my existing rust-analyzer setup with it.
Prompt 2
Explain how drey lets two clients with different unsaved edits to the same file get correct answers from one shared server.
Prompt 3
Show me how to check which language servers drey currently has running with drey status.
Prompt 4
Describe the risk drey's docs mention about servers that batch work across messages.

Frequently asked questions

wtf is drey?

A tool that lets multiple editors and AI coding agents share one language server per project instead of each starting its own, saving memory.

What language is drey written in?

Mainly Rust. The stack also includes Rust, LSP.

How hard is drey to set up?

Setup difficulty is rated easy, with roughly 5min to a first successful run.

Who is drey for?

Mainly developer.

View the repo → Decode another repo

This repo across BitVibe Labs

Don't trust strangers blindly. Verify against the repo.