diff --git a/README.md b/README.md index 9b832ad0..d46b6762 100644 --- a/README.md +++ b/README.md @@ -37,10 +37,12 @@ https://github.com/user-attachments/assets/6eaa9aa1-610d-4723-a2d6-bf1e487ba753 Serena provides the necessary [tools](#full-list-of-tools) for coding workflows, but an LLM is required to do the actual work, orchestrating tool use. +For example, supercharge the performance of Claude Code with a [one-line shell command]((#claude-code). + Serena can be integrated with an LLM in several ways: * by using the **model context protocol (MCP)**. Serena provides an MCP server which integrates with - * Claude Desktop, + * Claude Code and Claude Desktop, * IDEs like VSCode, Cursor or IntelliJ, * Extensions like Cline or Roo Code * Goose (for a nice CLI experience) @@ -87,7 +89,7 @@ implementation. ## Table of Contents - + @@ -95,12 +97,14 @@ implementation. - [What Can I Use Serena For?](#what-can-i-use-serena-for) - [Free Coding Agents with Serena](#free-coding-agents-with-serena) - [Quick Start](#quick-start) - * [Setup](#setup) + * [Claude Code](#claude-code) + * [General Setup](#general-setup) * [Configuration](#configuration) * [Project Activation](#project-activation) * [MCP Server (Claude Desktop)](#mcp-server-claude-desktop) + + [Local Installation](#local-installation) + + [Docker Installation (Experimental)](#docker-installation-experimental) + [Troubleshooting](#troubleshooting) - * [Claude Code](#claude-code) * [Other MCP Clients (Cline, Roo-Code, Cursor, Windsurf, etc.)](#other-mcp-clients-cline-roo-code-cursor-windsurf-etc) * [Goose](#goose) * [Agno Agent](#agno-agent) @@ -171,11 +175,28 @@ Serena can be used in various ways, below you will find instructions for selecte - If you prefer using Serena through a CLI, you can use [goose](#goose). There again almost any model is possible. - If you want to use Serena integrated in your IDE, see the section on [other MCP clients](#other-mcp-clients---cline-roo-code-cursor-windsurf-etc). -### Setup - Serena is managed by `uv`, so you will need to [install it](https://docs.astral.sh/uv/getting-started/installation/)). -Then you can either +### Claude Code + +Serena is a great way to make Claude Code both cheaper and more powerful! We are collecting +several examples for that and have heard very positive feedback so far. Claude Code users can +add serena with (from the project dir) + +```shell +claude mcp add serena -- uvx --from git+https://github.com/oraios/serena serena-mcp-server --context ide-assistant --project $(pwd) +``` + +We recommend that you index your code once before starting (especially for larger projects), it will accelerate the symbolic operations. + +```shell +uvx --from git+https://github.com/oraios/serena index-project $(pwd) +``` + + +### General Setup + +You can either 1. Clone the repository and cd into it. 2. Optionally create a config file from the template and adjust it according to your preferences. @@ -193,7 +214,13 @@ uvx --from git+https://github.com/oraios/serena serena-mcp-server.exe in your MCP config (delete the `.exe` on macOS or Linux). You can now add Serena to your MCP client as described below for various clients and -[activate your first project](#project-activation). +[activate your first project](#project-activation). For larger projects, we recommend that you first index them +to accelerate Serena's tools on the first usage. + +```shell +uvx --from git+https://github.com/oraios/serena index-project /path/to/project +``` + > In the default configuration, Serena will start a small dashboard on localhost that will display logs and allow shutting down the > MCP server (since many clients fail to cleanup processes, leaving zombies behind). If you don't want that, simply set `web_dashboard` to `False` @@ -338,17 +365,6 @@ therefore needs to be configured with a launch command. In SSE transport you con For more information on MCP servers with Claude Desktop, see [the official quick start guide](https://modelcontextprotocol.io/quickstart/user). -### Claude Code - -Serena is a great way to make Claude Code both cheaper and more powerful! We are collecting -several examples for that and have heard very positive feedback so far. Claude Code users can -add serena with - -```shell -claude mcp add serena -- /path/to/uv "run" --directory /path/to/serena serena-mcp-server --context ide-assistant -``` - - ### Other MCP Clients (Cline, Roo-Code, Cursor, Windsurf, etc.) Being an MCP Server, Serena can be included in any MCP Client. The same configuration as above, diff --git a/src/multilspy/language_server.py b/src/multilspy/language_server.py index 981769b7..e1124ccc 100644 --- a/src/multilspy/language_server.py +++ b/src/multilspy/language_server.py @@ -1607,7 +1607,9 @@ class LanguageServer: """ parsed_files = await self.request_parsed_files() files_processed = 0 - for relative_file_path in tqdm.tqdm(parsed_files, disable=not progress_bar, desc="Indexing (files)"): + pbar = tqdm.tqdm(parsed_files, disable=not progress_bar) + for relative_file_path in pbar: + pbar.set_description(f"Indexing ({os.path.basename(relative_file_path)})") await self.request_document_symbols(relative_file_path, include_body=False) await self.request_document_symbols(relative_file_path, include_body=True) files_processed += 1