Skip to content
docsQuick install

get started

Quick install

Install the binary, run one command in your project, restart your agent. About two minutes.

1

Install muxd

On macOS and Linux, the install script picks the right binary for your platform, verifies it against the release checksums and puts it on your PATH:

$ curl -fsSL https://raw.githubusercontent.com/kiliannnnn/muxd/main/scripts/install-muxd.sh | bash

It installs to /usr/local/bin, or ~/.local/bin without write access there. Set MUXD_INSTALL_DIR to choose, or MUXD_RELEASE_TAG to pin a version. On Windows, grab the .exe from the downloads page.

$ muxd --version
2

Initialize your project

At the root of the project (where your package.json, Cargo.toml… live):

$ muxd init

muxd indexes the docs of every direct dependency, writes muxd.json, registers itself in .mcp.json, .cursor/mcp.json and .vscode/mcp.json, and adds a short instruction block to AGENTS.md / CLAUDE.md. Commit all of it.

3

Restart your agent

Reload the MCP servers in your client, or restart it. Ask it something about one of your libraries: it should call search_docs before answering. Most clients show tool calls, so you can watch it happen.

4

Optional: use muxd everywhere

muxd init sets up one project. To make muxd available in every project and in desktop apps, register it once at user level:

$ muxd install-client

It configures each supported client it finds: Claude Code, Claude Desktop, Cursor and VS Code.

Add docs that aren't dependencies

For a service you call over HTTP, an internal API or a library you're evaluating, add a source directly. Anything with an llms.txt works, and package references resolve like dependencies do:

$ muxd add https://hono.dev/llms-full.txt$ muxd add npm:zod

To keep an extra source scoped to one project, list it under extra in muxd.json instead and run muxd sync. See Configuration.

nothing happens?

Check that the client actually started muxd: in Claude Code, /mcp lists connected servers. Desktop apps don't inherit your shell PATH; muxd install-client registers the absolute path of the binary to get around that.