Adapt docs generation to new integrated README content

This commit is contained in:
Dominik Jain committed 2026-04-04 20:00:22 +02:00
1 parent df16c9f9f5
commit 749bb815ae
4 files changed
+9 -22

No files matched your search

+1 -1
View File
@@ -1,4 +1,4 @@
# auto-generated files
/000_intro.md
/005_features.md
/025_features.md
/035_tools.md
-17
View File
@@ -1,17 +0,0 @@
# LLM Integration
Serena provides the necessary [tools](035_tools) for coding workflows, but an LLM is required to do the actual work,
orchestrating tool use.
In general, 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 Code and Claude Desktop,
* Terminal-based clients like Codex, Gemini-CLI, Qwen3-Coder, rovodev, OpenHands CLI and others,
* IDEs like VSCode, Cursor or IntelliJ,
* Extensions like Cline or Roo Code
* Local clients like [OpenWebUI](https://docs.openwebui.com/openapi-servers/mcp), [Jan](https://jan.ai/docs/mcp-examples/browser/browserbase#enable-mcp), [Agno](https://docs.agno.com/introduction/playground) and others
* by using [mcpo to connect it to ChatGPT](../03-special-guides/serena_on_chatgpt.md) or other clients that don't support MCP but do support tool calling via OpenAPI.
* by incorporating Serena's tools into an agent framework of your choice, as illustrated [here](../03-special-guides/custom_agent).
Serena's tool implementation is decoupled from the framework-specific code and can thus easily be adapted to any agent framework.
+2 -2
View File
@@ -13,7 +13,7 @@ There are two alternative technologies powering these capabilities:
* **The Serena JetBrains Plugin**, which leverages the powerful code analysis and editing
capabilities of your JetBrains IDE.
See the [Features](005_features) section for a detailed comparison of the capabilities provided by the JetBrains Plugin vs. language servers.
See the [Features](025_features) section for a detailed comparison of the capabilities provided by the JetBrains Plugin vs. language servers.
## Language Servers
@@ -121,7 +121,7 @@ work in a JetBrains IDE, this means Serena seamlessly integrates with the IDE in
requiring no additional setup or configuration beyond the plugin itself.
* See the [JetBrains Plugin documentation](../02-usage/025_jetbrains_plugin) for a high-level overview of its benefits and usage details.
* See the [Features](005_features) section for a detailed comparison of the capabilities provided by the JetBrains Plugin vs. language servers.
* See the [Features](025_features) section for a detailed comparison of the capabilities provided by the JetBrains Plugin vs. language servers.
```{raw} html
<p>
+6 -2
View File
@@ -181,7 +181,7 @@ def autogen_about_intro_features():
with open(readme_path, "r", encoding="utf-8") as f:
readme_contents = f.read()
match = re.search(r"<h3.*?>(.*?)</h3>(.*?)^(## Features.*?)^## ", readme_contents, re.DOTALL | re.MULTILINE)
match = re.search(r"<h3.*?>(.*?)</h3>(.*?)^## Programming.*?^(## Features.*?)^## ", readme_contents, re.DOTALL | re.MULTILINE)
assert match, f"Failed to extract about texts from README.md. {__file__} probably needs to be updated."
tagline = match.group(1).strip()
@@ -194,6 +194,8 @@ def autogen_about_intro_features():
f.write(autogen_info)
f.write("# About Serena\n\n")
f.write(f"**{tagline}**\n\n")
about_text = about_text.replace("resources/serena-block-diagram.png", "https://raw.githubusercontent.com/oraios/serena/main/resources/serena-block-diagram.svg")
about_text = re.subn(r"^See the \[Quick Start.*?$", r"", about_text, flags=re.MULTILINE)[0]
f.write(f"{about_text}\n\n")
jetbrains_marketplace_link = ('```{raw} html\n'
@@ -201,9 +203,11 @@ def autogen_about_intro_features():
'<img style="background-color:transparent;" src="../_static/images/jetbrains-marketplace-button.png">'
'</a></p>\n```')
with open(Path(__file__).parent / "01-about" / "005_features.md", "w", encoding="utf-8") as f:
with open(Path(__file__).parent / "01-about" / "025_features.md", "w", encoding="utf-8") as f:
f.write(autogen_info)
features_text = re.subn(r"^#", r"", features_text, flags=re.MULTILINE)[0]
features_text = re.subn(r"</?details>", "", features_text, flags=re.MULTILINE)[0]
features_text = re.subn(r"<summary>.*?</summary>", "", features_text, flags=re.MULTILINE)[0]
features_text = re.sub(r'<a href="https://plugins.jetbrains.com.*?</a>', jetbrains_marketplace_link, features_text, flags=re.DOTALL)
f.write(f"{features_text}\n\n")