mirror of
https://github.com/tiennm99/serena.git
synced 2026-10-20 02:18:13 +00:00
Improve init command: Report version, add final success message
Improve README: * Move LS deps back to prerequisites * Remove incorrect config path (redundant anyway, because user sees it upon init) * Some wording changes
This commit is contained in:
1 parent
33a246ab66
commit
d1652727fe
2 files changed
+15
-19
No files matched your search
@@ -176,24 +176,21 @@ https://github.com/user-attachments/assets/6eaa9aa1-610d-4723-a2d6-bf1e487ba753
|
|||||||
|
|
||||||
## Quick Start
|
## Quick Start
|
||||||
|
|
||||||
**Prerequisites**. Serena is managed by *uv*. If you don’t already have it, you need to [install uv](https://docs.astral.sh/uv/getting-started/installation/) before proceeding.
|
**Prerequisites**. Serena is managed by *uv*, and [installing uv](https://docs.astral.sh/uv/getting-started/installation/) is the only required prerequisite for running Serena.
|
||||||
|
|
||||||
**Initialize Serena**. To initialize Serena, simply run:
|
> [!NOTE]
|
||||||
|
> When using the language server backend, some additional dependencies may need to be installed to support certain languages;
|
||||||
|
> see the [Language Support](https://oraios.github.io/serena/01-about/020_programming-languages.html) page for details.
|
||||||
|
|
||||||
|
**Initialise Serena**. To initialise Serena and verify that your setup works correctly, simply run:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
uvx -p 3.13 --from git+https://github.com/oraios/serena serena init
|
uvx -p 3.13 --from git+https://github.com/oraios/serena serena init
|
||||||
```
|
```
|
||||||
|
|
||||||
This will create the global configuration file `~/.serena/config.yaml`.
|
By default, this will set up Serena to use the language server backend. To use the JetBrains backend instead, add the parameters `-b JetBrains`
|
||||||
|
(see the [JetBrains Plugin documentation page](https://oraios.github.io/serena/02-usage/025_jetbrains_plugin.html) for additional usage details).
|
||||||
The default code intelligence backend for Serena is the free LSP backend. You can add `-b JetBrains` to the `init` command
|
Either way, you should receive a success message indicating that Serena has been initialised successfully.
|
||||||
to set up the JetBrains as the default code intelligence backend instead, see [JetBrains Plugin page](https://oraios.github.io/serena/02-usage/025_jetbrains_plugin.html) for more details.
|
|
||||||
|
|
||||||
|
|
||||||
> [!NOTE]
|
|
||||||
> When using the language server backend, some additional dependencies to be installed for certain languages;
|
|
||||||
> see the [Language Support](https://oraios.github.io/serena/01-about/020_programming-languages.html) page for details.
|
|
||||||
|
|
||||||
|
|
||||||
**Configuring Your Client**. To connect Serena to your preferred MCP client, you typically need to [configure a launch command in your client](https://oraios.github.io/serena/02-usage/030_clients.html).
|
**Configuring Your Client**. To connect Serena to your preferred MCP client, you typically need to [configure a launch command in your client](https://oraios.github.io/serena/02-usage/030_clients.html).
|
||||||
Follow the link for specific instructions on how to set up Serena for Claude Code, Codex, Claude Desktop, MCP-enabled IDEs and other clients (such as local and web-based GUIs).
|
Follow the link for specific instructions on how to set up Serena for Claude Code, Codex, Claude Desktop, MCP-enabled IDEs and other clients (such as local and web-based GUIs).
|
||||||
|
|||||||
+6
-7
@@ -17,6 +17,7 @@ from sensai.util.logging import FileLoggerContext, datetime_tag
|
|||||||
from sensai.util.string import dict_string
|
from sensai.util.string import dict_string
|
||||||
from tqdm import tqdm
|
from tqdm import tqdm
|
||||||
|
|
||||||
|
from serena import serena_version
|
||||||
from serena.agent import SerenaAgent
|
from serena.agent import SerenaAgent
|
||||||
from serena.config.context_mode import SerenaAgentContext, SerenaAgentMode
|
from serena.config.context_mode import SerenaAgentContext, SerenaAgentMode
|
||||||
from serena.config.serena_config import (
|
from serena.config.serena_config import (
|
||||||
@@ -90,9 +91,6 @@ def find_project_root(root: str | Path | None = None) -> str | None:
|
|||||||
return None
|
return None
|
||||||
|
|
||||||
|
|
||||||
# --------------------- Utilities -------------------------------------
|
|
||||||
|
|
||||||
|
|
||||||
def _open_in_editor(path: str) -> None:
|
def _open_in_editor(path: str) -> None:
|
||||||
"""Open the given file in the system's default editor or viewer."""
|
"""Open the given file in the system's default editor or viewer."""
|
||||||
editor = os.environ.get("EDITOR")
|
editor = os.environ.get("EDITOR")
|
||||||
@@ -169,13 +167,14 @@ class TopLevelCommands(AutoRegisteringGroup):
|
|||||||
show_default=True,
|
show_default=True,
|
||||||
help="Default code intelligence backend (can be overridden in the project config).",
|
help="Default code intelligence backend (can be overridden in the project config).",
|
||||||
)
|
)
|
||||||
def init(language_backend: Literal["LSP", "JetBrains"] = "LSP"):
|
def init(language_backend: Literal["LSP", "JetBrains"] = "LSP") -> None:
|
||||||
|
click.echo(f"\nSerena version: {serena_version()}\n")
|
||||||
serena_config = SerenaConfig.from_config_file()
|
serena_config = SerenaConfig.from_config_file()
|
||||||
serena_config.language_backend = LanguageBackend(language_backend)
|
serena_config.language_backend = LanguageBackend(language_backend)
|
||||||
serena_config.save()
|
serena_config.save()
|
||||||
click.echo(
|
click.echo(f"Configuration file: {serena_config.config_file_path}")
|
||||||
f"Initialized Serena with default backend: {language_backend}.\nFind the global Serena config in:\n {serena_config.config_file_path}"
|
click.echo(f"Language backend: {language_backend}")
|
||||||
)
|
click.echo("\nSerena has been initialised successfully.\n")
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
@click.command("start-mcp-server", help="Starts the Serena MCP server.", context_settings={"max_content_width": _MAX_CONTENT_WIDTH})
|
@click.command("start-mcp-server", help="Starts the Serena MCP server.", context_settings={"max_content_width": _MAX_CONTENT_WIDTH})
|
||||||
|
|||||||
Reference in new issue
Block a user