docs: restructure README with Quick Start Guide, i18n, and Weixin channel#1875
docs: restructure README with Quick Start Guide, i18n, and Weixin channel#1875Zepan merged 6 commits intosipeed:mainfrom
Conversation
There was a problem hiding this comment.
Pull request overview
This PR restructures the English README.md into a more guided “Quick Start” format (based on the intact Chinese README), and adds/updates launcher screenshots to match the new onboarding flow.
Changes:
- Replaces the previous “Documentation” block with a “Quick Start Guide” organized by launcher/platform (WebUI, TUI, Android/Termux, terminal-only).
- Adds new consolidated sections and tables for Providers (LLM), Channels (chat apps), Tools, Skills, and MCP.
- Adds a new TUI launcher screenshot asset and updates README content to reference launcher screenshots.
Reviewed changes
Copilot reviewed 1 out of 3 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| README.md | Major documentation restructure: Quick Start Guide + new reference sections (providers/channels/tools/skills/MCP), plus updated wording/links and screenshots. |
| assets/launcher-tui.jpg | Adds the TUI Launcher screenshot referenced by the updated README. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
README.md
Outdated
| <h1>PicoClaw: Ultra-Efficient AI Assistant in Go</h1> | ||
|
|
||
| <h3>$10 Hardware · <10MB RAM · <1s Boot · 皮皮虾,我们走!</h3> | ||
| <h3>$10 Hardware · <10MB RAM · <1s Boot · Let's Go, PicoClaw!</h3> |
There was a problem hiding this comment.
The string "<10MB" inside HTML (and Markdown text elsewhere) will be parsed as an HTML tag and may not render as intended. Consider escaping it (e.g., "<10MB") or wrapping the value in code formatting so the less-than sign displays correctly.
| <h3>$10 Hardware · <10MB RAM · <1s Boot · Let's Go, PicoClaw!</h3> | |
| <h3>$10 Hardware · <10MB RAM · <1s Boot · Let's Go, PicoClaw!</h3> |
43d62b3 to
cd88ae7
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 20 out of 22 changed files in this pull request and generated 7 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
README.ja.md
Outdated
| | [Docker & クイックスタート](docs/docker.md) | Docker Compose セットアップ、Launcher/Agent モード | | ||
| | [チャットアプリ](docs/chat-apps.md) | 17 以上の Channel セットアップガイド | | ||
| | [設定](docs/configuration.md) | 環境変数、ワークスペース構成、セキュリティサンドボックス | | ||
| | [Provider とモデル](docs/providers.md) | 30 以上の LLM Provider、モデルルーティング、model_list 設定 | | ||
| | [Spawn & 非同期タスク](docs/spawn-tasks.md) | クイックタスク、spawn による長時間タスク、非同期サブエージェントオーケストレーション | | ||
| | [トラブルシューティング](docs/troubleshooting.md) | よくある問題と解決策 | | ||
| | [ツール設定](docs/tools_configuration.md) | ツールごとの有効/無効、exec ポリシー、MCP、Skill | | ||
| | [ハードウェア互換性](docs/hardware-compatibility.md) | テスト済みボード、最小要件 | |
There was a problem hiding this comment.
The new documentation section links to the English docs under docs/ (e.g., docs/docker.md, docs/chat-apps.md), but Japanese translations exist under docs/ja/. Consider switching these links to docs/ja/* to keep navigation within Japanese.
| | [Docker & クイックスタート](docs/docker.md) | Docker Compose セットアップ、Launcher/Agent モード | | |
| | [チャットアプリ](docs/chat-apps.md) | 17 以上の Channel セットアップガイド | | |
| | [設定](docs/configuration.md) | 環境変数、ワークスペース構成、セキュリティサンドボックス | | |
| | [Provider とモデル](docs/providers.md) | 30 以上の LLM Provider、モデルルーティング、model_list 設定 | | |
| | [Spawn & 非同期タスク](docs/spawn-tasks.md) | クイックタスク、spawn による長時間タスク、非同期サブエージェントオーケストレーション | | |
| | [トラブルシューティング](docs/troubleshooting.md) | よくある問題と解決策 | | |
| | [ツール設定](docs/tools_configuration.md) | ツールごとの有効/無効、exec ポリシー、MCP、Skill | | |
| | [ハードウェア互換性](docs/hardware-compatibility.md) | テスト済みボード、最小要件 | | |
| | [Docker & クイックスタート](docs/ja/docker.md) | Docker Compose セットアップ、Launcher/Agent モード | | |
| | [チャットアプリ](docs/ja/chat-apps.md) | 17 以上の Channel セットアップガイド | | |
| | [設定](docs/ja/configuration.md) | 環境変数、ワークスペース構成、セキュリティサンドボックス | | |
| | [Provider とモデル](docs/ja/providers.md) | 30 以上の LLM Provider、モデルルーティング、model_list 設定 | | |
| | [Spawn & 非同期タスク](docs/ja/spawn-tasks.md) | クイックタスク、spawn による長時間タスク、非同期サブエージェントオーケストレーション | | |
| | [トラブルシューティング](docs/ja/troubleshooting.md) | よくある問題と解決策 | | |
| | [ツール設定](docs/ja/tools_configuration.md) | ツールごとの有効/無効、exec ポリシー、MCP、Skill | | |
| | [ハードウェア互換性](docs/ja/hardware-compatibility.md) | テスト済みボード、最小要件 | |
README.fr.md
Outdated
| | [Docker & Démarrage rapide](docs/docker.md) | Configuration Docker Compose, modes Launcher/Agent | | ||
| | [Applications de chat](docs/chat-apps.md) | Guides de configuration pour les 17+ channels | | ||
| | [Configuration](docs/configuration.md) | Variables d'environnement, structure du workspace, sandbox de sécurité | | ||
| | [Providers & Modèles](docs/providers.md) | 30+ providers LLM, routage de modèles, configuration model_list | | ||
| | [Spawn & Tâches asynchrones](docs/spawn-tasks.md) | Tâches rapides, tâches longues avec spawn, orchestration de sous-agents asynchrones | | ||
| | [Dépannage](docs/troubleshooting.md) | Problèmes courants et solutions | | ||
| | [Configuration des outils](docs/tools_configuration.md) | Activation/désactivation par outil, politiques d'exécution, MCP, Skills | | ||
| | [Compatibilité matérielle](docs/hardware-compatibility.md) | Cartes testées, exigences minimales | |
There was a problem hiding this comment.
This documentation table points to the English docs under docs/ (e.g., docs/docker.md, docs/chat-apps.md, docs/providers.md) even though French docs exist under docs/fr/. Consider updating these links to docs/fr/* to keep the README consistently French.
| | [Docker & Démarrage rapide](docs/docker.md) | Configuration Docker Compose, modes Launcher/Agent | | |
| | [Applications de chat](docs/chat-apps.md) | Guides de configuration pour les 17+ channels | | |
| | [Configuration](docs/configuration.md) | Variables d'environnement, structure du workspace, sandbox de sécurité | | |
| | [Providers & Modèles](docs/providers.md) | 30+ providers LLM, routage de modèles, configuration model_list | | |
| | [Spawn & Tâches asynchrones](docs/spawn-tasks.md) | Tâches rapides, tâches longues avec spawn, orchestration de sous-agents asynchrones | | |
| | [Dépannage](docs/troubleshooting.md) | Problèmes courants et solutions | | |
| | [Configuration des outils](docs/tools_configuration.md) | Activation/désactivation par outil, politiques d'exécution, MCP, Skills | | |
| | [Compatibilité matérielle](docs/hardware-compatibility.md) | Cartes testées, exigences minimales | | |
| | [Docker & Démarrage rapide](docs/fr/docker.md) | Configuration Docker Compose, modes Launcher/Agent | | |
| | [Applications de chat](docs/fr/chat-apps.md) | Guides de configuration pour les 17+ channels | | |
| | [Configuration](docs/fr/configuration.md) | Variables d'environnement, structure du workspace, sandbox de sécurité | | |
| | [Providers & Modèles](docs/fr/providers.md) | 30+ providers LLM, routage de modèles, configuration model_list | | |
| | [Spawn & Tâches asynchrones](docs/fr/spawn-tasks.md) | Tâches rapides, tâches longues avec spawn, orchestration de sous-agents asynchrones | | |
| | [Dépannage](docs/fr/troubleshooting.md) | Problèmes courants et solutions | | |
| | [Configuration des outils](docs/fr/tools_configuration.md) | Activation/désactivation par outil, politiques d'exécution, MCP, Skills | | |
| | [Compatibilité matérielle](docs/fr/hardware-compatibility.md) | Cartes testées, exigences minimales | |
| |-----------|-------------| | ||
| | [Docker & Avvio Rapido](docs/docker.md) | Configurazione Docker Compose, modalità Launcher/Agent | | ||
| | [App di Chat](docs/chat-apps.md) | Tutte le guide di configurazione per 17+ channel | | ||
| | [Configurazione](docs/configuration.md) | Variabili d'ambiente, struttura del workspace, sandbox di sicurezza | |
There was a problem hiding this comment.
This Italian README links to docs/configuration.md, but an Italian configuration doc exists at docs/it/configuration.md. Linking to the localized file would keep readers in Italian (and avoids a regression from the previous docs/it/configuration.md link).
| | [Configurazione](docs/configuration.md) | Variabili d'ambiente, struttura del workspace, sandbox di sicurezza | | |
| | [Configurazione](docs/it/configuration.md) | Variabili d'ambiente, struttura del workspace, sandbox di sicurezza | |
docs/zh/chat-apps.md
Outdated
| | **企业微信 (WeCom)** | ⭐⭐⭐ 较难 | 支持群机器人(Webhook)、自建应用(API)和智能机器人(AI Bot) | [Bot 文档](../channels/wecom/wecom_bot/README.zh.md) / [App 文档](../channels/wecom/wecom_app/README.zh.md) / [AI Bot 文档](../channels/wecom/wecom_aibot/README.zh.md) | | ||
| | **飞书 (Feishu)** | ⭐⭐⭐ 较难 | 企业级协作,功能丰富 | [查看文档](../channels/feishu/README.zh.md) | | ||
| | **IRC** | ⭐⭐ 中等 | 服务器 + TLS 配置 | - | | ||
| | **IRC** | ⭐⭐ 中等 | 服务器 + TLS 配置 | [Docs](#irc) | |
There was a problem hiding this comment.
The IRC row uses link text "Docs", while all other rows in this Chinese table use localized "查看文档". This looks like an inconsistent label introduced by the change; consider renaming it to match the rest of the table for consistency.
| | **IRC** | ⭐⭐ 中等 | 服务器 + TLS 配置 | [Docs](#irc) | | |
| | **IRC** | ⭐⭐ 中等 | 服务器 + TLS 配置 | [查看文档](#irc) | |
| ## 🚀 快速开始 | ||
|
|
||
| 详细指南请参阅以下文档,README 仅涵盖快速入门。 | ||
| ### 🌐 WebUI Launcher(推荐桌面用户) |
There was a problem hiding this comment.
PR description says other README translations will be updated in a follow-up PR, but this PR already makes large structural edits to multiple non-English READMEs (e.g., this file). Consider updating the PR title/description to reflect the actual scope, or splitting non-English README changes into a separate PR to keep review and rollback risk manageable.
README.vi.md
Outdated
| | [Docker & Khởi động Nhanh](docs/docker.md) | Thiết lập Docker Compose, chế độ Launcher/Agent | | ||
| | [Ứng dụng Chat](docs/chat-apps.md) | Hướng dẫn thiết lập 17+ Channel | | ||
| | [Cấu hình](docs/configuration.md) | Biến môi trường, bố cục workspace, sandbox bảo mật | | ||
| | [Providers & Models](docs/providers.md) | 30+ Provider LLM, định tuyến mô hình, cấu hình model_list | | ||
| | [Spawn & Tác vụ Bất đồng bộ](docs/spawn-tasks.md) | Tác vụ nhanh, tác vụ dài với spawn, điều phối sub-agent bất đồng bộ | | ||
| | [Khắc phục sự cố](docs/troubleshooting.md) | Các vấn đề thường gặp và giải pháp | | ||
| | [Cấu hình Tools](docs/tools_configuration.md) | Bật/tắt từng tool, chính sách exec, MCP, Skills | | ||
| | [Tương thích Phần cứng](docs/hardware-compatibility.md) | Các board đã kiểm tra, yêu cầu tối thiểu | |
There was a problem hiding this comment.
These documentation links point to the English docs (e.g., docs/docker.md, docs/chat-apps.md, docs/configuration.md) even though Vietnamese versions exist under docs/vi/. This will send Vietnamese readers to the wrong language and may break expectations for localized navigation; consider switching these links to docs/vi/docker.md, docs/vi/chat-apps.md, etc.
| | [Docker & Khởi động Nhanh](docs/docker.md) | Thiết lập Docker Compose, chế độ Launcher/Agent | | |
| | [Ứng dụng Chat](docs/chat-apps.md) | Hướng dẫn thiết lập 17+ Channel | | |
| | [Cấu hình](docs/configuration.md) | Biến môi trường, bố cục workspace, sandbox bảo mật | | |
| | [Providers & Models](docs/providers.md) | 30+ Provider LLM, định tuyến mô hình, cấu hình model_list | | |
| | [Spawn & Tác vụ Bất đồng bộ](docs/spawn-tasks.md) | Tác vụ nhanh, tác vụ dài với spawn, điều phối sub-agent bất đồng bộ | | |
| | [Khắc phục sự cố](docs/troubleshooting.md) | Các vấn đề thường gặp và giải pháp | | |
| | [Cấu hình Tools](docs/tools_configuration.md) | Bật/tắt từng tool, chính sách exec, MCP, Skills | | |
| | [Tương thích Phần cứng](docs/hardware-compatibility.md) | Các board đã kiểm tra, yêu cầu tối thiểu | | |
| | [Docker & Khởi động Nhanh](docs/vi/docker.md) | Thiết lập Docker Compose, chế độ Launcher/Agent | | |
| | [Ứng dụng Chat](docs/vi/chat-apps.md) | Hướng dẫn thiết lập 17+ Channel | | |
| | [Cấu hình](docs/vi/configuration.md) | Biến môi trường, bố cục workspace, sandbox bảo mật | | |
| | [Providers & Models](docs/vi/providers.md) | 30+ Provider LLM, định tuyến mô hình, cấu hình model_list | | |
| | [Spawn & Tác vụ Bất đồng bộ](docs/vi/spawn-tasks.md) | Tác vụ nhanh, tác vụ dài với spawn, điều phối sub-agent bất đồng bộ | | |
| | [Khắc phục sự cố](docs/vi/troubleshooting.md) | Các vấn đề thường gặp và giải pháp | | |
| | [Cấu hình Tools](docs/vi/tools_configuration.md) | Bật/tắt từng tool, chính sách exec, MCP, Skills | | |
| | [Tương thích Phần cứng](docs/vi/hardware-compatibility.md) | Các board đã kiểm tra, yêu cầu tối thiểu | |
README.pt-br.md
Outdated
| | [Docker & Início Rápido](docs/docker.md) | Configuração do Docker Compose, modos Launcher/Agent | | ||
| | [Apps de Chat](docs/chat-apps.md) | Guias de configuração para todos os 17+ channels | | ||
| | [Configuração](docs/configuration.md) | Variáveis de ambiente, layout do workspace, sandbox de segurança | | ||
| | [Providers & Models](docs/providers.md) | 30+ providers de LLM, roteamento de modelos, configuração de model_list | | ||
| | [Spawn & Tarefas Assíncronas](docs/spawn-tasks.md) | Tarefas rápidas, tarefas longas com spawn, orquestração assíncrona de sub-agents | | ||
| | [Solução de Problemas](docs/troubleshooting.md) | Problemas comuns e soluções | | ||
| | [Configuração de Ferramentas](docs/tools_configuration.md) | Habilitar/desabilitar por ferramenta, políticas de exec, MCP, Skills | | ||
| | [Compatibilidade de Hardware](docs/hardware-compatibility.md) | Placas testadas, requisitos mínimos | |
There was a problem hiding this comment.
This documentation table links to the non-localized docs (e.g., docs/docker.md, docs/chat-apps.md, docs/providers.md), but Portuguese translations exist under docs/pt-br/. Consider pointing these links to docs/pt-br/* so readers stay in the same language.
| | [Docker & Início Rápido](docs/docker.md) | Configuração do Docker Compose, modos Launcher/Agent | | |
| | [Apps de Chat](docs/chat-apps.md) | Guias de configuração para todos os 17+ channels | | |
| | [Configuração](docs/configuration.md) | Variáveis de ambiente, layout do workspace, sandbox de segurança | | |
| | [Providers & Models](docs/providers.md) | 30+ providers de LLM, roteamento de modelos, configuração de model_list | | |
| | [Spawn & Tarefas Assíncronas](docs/spawn-tasks.md) | Tarefas rápidas, tarefas longas com spawn, orquestração assíncrona de sub-agents | | |
| | [Solução de Problemas](docs/troubleshooting.md) | Problemas comuns e soluções | | |
| | [Configuração de Ferramentas](docs/tools_configuration.md) | Habilitar/desabilitar por ferramenta, políticas de exec, MCP, Skills | | |
| | [Compatibilidade de Hardware](docs/hardware-compatibility.md) | Placas testadas, requisitos mínimos | | |
| | [Docker & Início Rápido](docs/pt-br/docker.md) | Configuração do Docker Compose, modos Launcher/Agent | | |
| | [Apps de Chat](docs/pt-br/chat-apps.md) | Guias de configuração para todos os 17+ channels | | |
| | [Configuração](docs/pt-br/configuration.md) | Variáveis de ambiente, layout do workspace, sandbox de segurança | | |
| | [Providers & Models](docs/pt-br/providers.md) | 30+ providers de LLM, roteamento de modelos, configuração de model_list | | |
| | [Spawn & Tarefas Assíncronas](docs/pt-br/spawn-tasks.md) | Tarefas rápidas, tarefas longas com spawn, orquestração assíncrona de sub-agents | | |
| | [Solução de Problemas](docs/pt-br/troubleshooting.md) | Problemas comuns e soluções | | |
| | [Configuração de Ferramentas](docs/pt-br/tools_configuration.md) | Habilitar/desabilitar por ferramenta, políticas de exec, MCP, Skills | | |
| | [Compatibilidade de Hardware](docs/pt-br/hardware-compatibility.md) | Placas testadas, requisitos mínimos | |
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 20 out of 22 changed files in this pull request and generated 1 comment.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
README.fr.md
Outdated
| --- | ||
|
|
||
| > **PicoClaw** est un projet open-source indépendant initié par [Sipeed](https://sipeed.com). Il est entièrement écrit en **Go** — ce n'est pas un fork d'OpenClaw, de NanoBot ou de tout autre projet. | ||
| > **PicoClaw** est un projet open-source indépendant initié par [Sipeed](https://sipeed.com), entièrement écrit en **Go** from scratch — ce n'est pas un fork d'OpenClaw, de NanoBot ou de tout autre projet. |
There was a problem hiding this comment.
The French README mixes English into an otherwise French sentence: "entièrement écrit en Go from scratch". This should be French (e.g., "à partir de zéro") for readability/consistency.
| > **PicoClaw** est un projet open-source indépendant initié par [Sipeed](https://sipeed.com), entièrement écrit en **Go** from scratch — ce n'est pas un fork d'OpenClaw, de NanoBot ou de tout autre projet. | |
| > **PicoClaw** est un projet open-source indépendant initié par [Sipeed](https://sipeed.com), entièrement écrit en **Go** à partir de zéro — ce n'est pas un fork d'OpenClaw, de NanoBot ou de tout autre projet. |
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 20 out of 23 changed files in this pull request and generated 3 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
README.zh.md
Outdated
| <!-- TODO: Add WebUI Launcher screenshot here --> | ||
| <p align="center"> | ||
| <img src="assets/launcher-webui.jpg" alt="WebUI Launcher" width="600"> | ||
| </p> |
There was a problem hiding this comment.
This HTML comment says a screenshot still needs to be added, but the WebUI Launcher screenshot is already included immediately below. Please remove the outdated TODO comment (and, if intended, keep TODOs only where content is actually missing).
README.zh.md
Outdated
| picoclaw-launcher-tui | ||
| ``` | ||
|
|
||
| <!-- TODO: Add TUI Launcher screenshot here --> |
There was a problem hiding this comment.
This TODO comment indicates the TUI screenshot is missing, but the screenshot is already present right below. Removing the outdated TODO will avoid confusing readers/editors.
| <!-- TODO: Add TUI Launcher screenshot here --> |
| | ------------------------------ | ------------- | ------------------------ | -------------------------------------- | | ||
| | **Bahasa** | TypeScript | Python | **Go** | | ||
| | **RAM** | >1GB | >100MB | **< 10MB*** | | ||
| | **Waktu Boot**</br>(core 0,8GHz) | >500d | >30d | **<1d** | |
There was a problem hiding this comment.
In the boot-time comparison table, the unit is shown as d (e.g., >500d, <1d), which reads as “days” and is inconsistent with other READMEs using seconds (s). This looks like a typo and should be corrected to seconds (e.g., >500s, <1s).
| | **Waktu Boot**</br>(core 0,8GHz) | >500d | >30d | **<1d** | | |
| | **Waktu Boot**</br>(core 0,8GHz) | >500s | >30s | **<1s** | |
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 20 out of 23 changed files in this pull request and generated 1 comment.
Comments suppressed due to low confidence (1)
docs/chat-apps.md:33
- In the Telegram config JSON example in this section, there are trailing commas (e.g., after
"use_markdown_v2": falseand"allow_from"). That makes the snippet invalid JSON and will break copy/paste for users. Remove the trailing commas (or mark the snippet as JSON5) so the example is valid.
<a id="telegram"></a>
<details>
<summary><b>Telegram</b> (Recommended)</summary>
**1. Create a bot**
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 20 out of 23 changed files in this pull request and generated no new comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
092bc26 to
a13a08e
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 31 out of 34 changed files in this pull request and generated 5 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| @@ -238,6 +245,7 @@ picoclaw gateway | |||
|
|
|||
There was a problem hiding this comment.
This Matrix section links to the English doc (../channels/matrix/README.md) even though a Chinese Matrix doc exists and the table above already links to README.zh.md. Update this link to point to the zh Matrix README to keep i18n routing consistent.
| @@ -204,6 +245,7 @@ picoclaw gateway | |||
|
|
|||
There was a problem hiding this comment.
This Matrix section links to the English doc (../channels/matrix/README.md) even though a Japanese Matrix doc exists and the table above links to README.ja.md. Update this link to point to the Japanese Matrix README for consistent i18n routing.
| @@ -273,6 +316,7 @@ Pour toutes les options (`device_id`, `join_on_invite`, `group_trigger`, `placeh | |||
|
|
|||
There was a problem hiding this comment.
This Matrix section links to the English doc (../channels/matrix/README.md) even though a French Matrix doc exists and the table above links to README.fr.md. Update this link to point to the French Matrix README for consistent i18n routing.
| @@ -296,6 +340,7 @@ Para opções completas (`device_id`, `join_on_invite`, `group_trigger`, `placeh | |||
|
|
|||
There was a problem hiding this comment.
This Matrix section links to the English doc (../channels/matrix/README.md) even though a pt-br Matrix doc exists and the table above links to README.pt-br.md. Update this link to point to the pt-br Matrix README for consistent i18n routing.
| @@ -296,6 +340,7 @@ picoclaw gateway | |||
|
|
|||
There was a problem hiding this comment.
This Matrix section links to the English doc (../channels/matrix/README.md) even though a Vietnamese Matrix doc exists and the table above links to README.vi.md. Update this link to point to the Vietnamese Matrix README for consistent i18n routing.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 31 out of 34 changed files in this pull request and generated 2 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| type BaiduSearchProvider struct { | ||
| apiKey string | ||
| baseURL string | ||
| proxy string | ||
| client *http.Client | ||
| } | ||
|
|
||
| func (p *BaiduSearchProvider) Search(ctx context.Context, query string, count int) (string, error) { | ||
| searchURL := p.baseURL | ||
| if searchURL == "" { | ||
| searchURL = "https://qianfan.baidubce.com/v2/ai_search/web_search" | ||
| } | ||
|
|
||
| payload := map[string]any{ | ||
| "messages": []map[string]string{ | ||
| { | ||
| "role": "user", | ||
| "content": query, | ||
| }, | ||
| }, | ||
| "search_source": "baidu_search_v2", | ||
| "resource_type_filter": []map[string]any{{"type": "web", "top_k": count}}, | ||
| } |
There was a problem hiding this comment.
Add unit tests for the new Baidu Search provider (selection priority and request/response parsing). There is good existing coverage for Tavily/GLM/Perplexity in pkg/tools/web_test.go, but nothing yet exercises BaiduSearchProvider, so regressions in payload schema, headers, or output formatting would go unnoticed.
| type WebToolsConfig struct { | ||
| ToolConfig ` envPrefix:"PICOCLAW_TOOLS_WEB_"` | ||
| Brave BraveConfig ` json:"brave"` | ||
| Tavily TavilyConfig ` json:"tavily"` | ||
| DuckDuckGo DuckDuckGoConfig ` json:"duckduckgo"` | ||
| Perplexity PerplexityConfig ` json:"perplexity"` | ||
| SearXNG SearXNGConfig ` json:"searxng"` | ||
| GLMSearch GLMSearchConfig ` json:"glm_search"` | ||
| GLMSearch GLMSearchConfig ` json:"glm_search"` | ||
| BaiduSearch BaiduSearchConfig ` json:"baidu_search"` | ||
| // PreferNative controls whether to use provider-native web search when |
There was a problem hiding this comment.
Please run gofmt on this file. The field alignment/spacing around the WebToolsConfig struct (e.g., GLMSearch/BaiduSearch) appears to be manually formatted and doesn't match standard gofmt output, which can cause CI lint/gofmt checks to fail.
- Add BaiduSearchConfig struct and register in WebToolsConfig/defaults - Insert Baidu Search in priority chain: DuckDuckGo > Baidu > GLM Search - Use perplexityTimeout (30s) — Qianfan is LLM-based - Fix response parsing: use references[] field per API spec - Add baidu_search block to config.example.json docs: sync configuration.md and README Documentation table across all languages - Complete truncated configuration.md for fr/ja/pt-br/vi/zh: add Spawn async flow diagram, Providers table, Model Configuration (all vendors, examples, load balancing, migration), Provider Architecture, Scheduled Tasks, and Advanced Topics links - Add Hooks/Steering/SubTurn entries to Documentation table in all 8 READMEs (en/zh/fr/id/it/ja/pt-br/vi), ordered before Troubleshooting - Add Baidu Search row to web search table in all 8 READMEs and tools_configuration.md (en + 5 i18n); zh README reorders search engines with China-friendly options first - Add Matrix channel docs translations (fr/ja/pt-br/vi) - Add Weixin channel to chat-apps.md and all README Channels tables Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
38436e6 to
60a7098
Compare
Remove extra alignment space on ToolConfig field introduced by gofumpt when BaiduSearchConfig was added, keeping all lines under 120 chars. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 36 out of 36 changed files in this pull request and generated 2 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
pkg/config/config.go
Outdated
| ToolConfig ` envPrefix:"PICOCLAW_TOOLS_WEB_"` | ||
| Brave BraveConfig ` json:"brave"` | ||
| Tavily TavilyConfig ` json:"tavily"` | ||
| DuckDuckGo DuckDuckGoConfig ` json:"duckduckgo"` | ||
| Perplexity PerplexityConfig ` json:"perplexity"` | ||
| SearXNG SearXNGConfig ` json:"searxng"` | ||
| GLMSearch GLMSearchConfig ` json:"glm_search"` | ||
| BaiduSearch BaiduSearchConfig ` json:"baidu_search"` | ||
| // PreferNative controls whether to use provider-native web search when |
There was a problem hiding this comment.
WebToolsConfig aligns field names/types with spacing (e.g., Brave BraveConfig). The new BaiduSearch field breaks that alignment, which makes this struct harder to scan/maintain alongside the other provider configs. Consider aligning the spacing for BaiduSearch to match the surrounding fields in this struct.
| } else if opts.BaiduSearchEnabled && opts.BaiduSearchAPIKey != "" { | ||
| client, err := utils.CreateHTTPClient(opts.Proxy, perplexityTimeout) | ||
| if err != nil { | ||
| return nil, fmt.Errorf("failed to create HTTP client for Baidu Search: %w", err) | ||
| } | ||
| provider = &BaiduSearchProvider{ | ||
| apiKey: opts.BaiduSearchAPIKey, | ||
| baseURL: opts.BaiduSearchBaseURL, | ||
| proxy: opts.Proxy, | ||
| client: client, | ||
| } | ||
| if opts.BaiduSearchMaxResults > 0 { | ||
| maxResults = opts.BaiduSearchMaxResults | ||
| } | ||
| } else if opts.GLMSearchEnabled && opts.GLMSearchAPIKey != "" { |
There was a problem hiding this comment.
BaiduSearchProvider is added to the provider priority chain, but pkg/tools/web_test.go currently has priority/selection tests only for the other providers (e.g., DuckDuckGo vs GLM). To avoid regressions, add tests that (1) select Baidu when enabled+API key is set, and (2) confirm Baidu wins over GLM Search when both are enabled.
Run golines then gci to reach a stable state that satisfies both linters. BaiduSearchConfig field caused gofumpt to re-align the struct, shifting ToolConfig tag spacing and triggering golines on each subsequent fix. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…ting golangci-lint v2.10.1 treats golines as a formatter. Running `golangci-lint fmt` normalizes struct tag alignment in GLMSearchConfig, WebToolsConfig, and MCPConfig — removing manual padding that golines flagged as improperly formatted. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 36 out of 36 changed files in this pull request and generated 10 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
docs/ja/tools_configuration.md
Outdated
| @@ -64,6 +79,41 @@ Web ツールはウェブ検索とフェッチに使用されます。 | |||
| | `api_key` | string | - | Perplexity API キー | | |||
| | `max_results` | int | 5 | 最大結果数 | | |||
There was a problem hiding this comment.
This translated tools configuration section documents only api_key for Perplexity, but the code/config also supports api_keys (multiple keys for rotation) and the English docs document it. Please add the api_keys option here as well to match the actual configuration schema.
docs/ja/tools_configuration.md
Outdated
| | 設定項目 | 型 | デフォルト | 説明 | | ||
| |---------------|--------|------------|-----------------------| | ||
| | `enabled` | bool | false | Brave 検索を有効にする | | ||
| | `api_key` | string | - | Brave Search API キー | | ||
| | `max_results` | int | 5 | 最大結果数 | |
There was a problem hiding this comment.
This translated tools configuration section documents only api_key for Brave, but the code/config also supports api_keys (multiple keys for rotation) and the English docs document it. Please add the api_keys option here as well to match the actual configuration schema.
| | 設定項目 | 型 | デフォルト | 説明 | | |
| |---------------|--------|------------|-----------------------| | |
| | `enabled` | bool | false | Brave 検索を有効にする | | |
| | `api_key` | string | - | Brave Search API キー | | |
| | `max_results` | int | 5 | 最大結果数 | | |
| | 設定項目 | 型 | デフォルト | 説明 | | |
| |---------------|-----------|------------|----------------------------------------| | |
| | `enabled` | bool | false | Brave 検索を有効にする | | |
| | `api_key` | string | - | Brave Search API キー | | |
| | `api_keys` | string[] | - | 複数の Brave Search API キー(ローテーション用) | | |
| | `max_results` | int | 5 | 最大結果数 | |
docs/pt-br/tools_configuration.md
Outdated
| @@ -64,6 +79,41 @@ Configurações gerais para busca e processamento de conteúdo de páginas web. | |||
| | `api_key` | string | - | Chave API do Perplexity | | |||
| | `max_results` | int | 5 | Número máximo de resultados | | |||
There was a problem hiding this comment.
This translated tools configuration section documents only api_key for Perplexity, but the code/config also supports api_keys (multiple keys for rotation) and the English docs document it. Please add the api_keys option here as well to match the actual configuration schema.
docs/pt-br/tools_configuration.md
Outdated
| | Config | Tipo | Padrão | Descrição | | ||
| |---------------|--------|--------|----------------------------| | ||
| | `enabled` | bool | false | Habilitar pesquisa Brave | | ||
| | `api_key` | string | - | Chave API do Brave Search | | ||
| | `max_results` | int | 5 | Número máximo de resultados | |
There was a problem hiding this comment.
This translated tools configuration section documents only api_key for Brave, but the code/config also supports api_keys (multiple keys for rotation) and the English docs document it. Please add the api_keys option here as well to match the actual configuration schema.
| | Config | Tipo | Padrão | Descrição | | |
| |---------------|--------|--------|----------------------------| | |
| | `enabled` | bool | false | Habilitar pesquisa Brave | | |
| | `api_key` | string | - | Chave API do Brave Search | | |
| | `max_results` | int | 5 | Número máximo de resultados | | |
| | Config | Tipo | Padrão | Descrição | | |
| |---------------|------------|--------|------------------------------------------------| | |
| | `enabled` | bool | false | Habilitar pesquisa Brave | | |
| | `api_key` | string | - | Chave API única do Brave Search | | |
| | `api_keys` | string[] | - | Lista de chaves API do Brave para rotação | | |
| | `max_results` | int | 5 | Número máximo de resultados | |
docs/vi/tools_configuration.md
Outdated
| @@ -64,6 +79,41 @@ Cài đặt chung để tải và xử lý nội dung trang web. | |||
| | `api_key` | string | - | Khóa API Perplexity | | |||
| | `max_results` | int | 5 | Số kết quả tối đa | | |||
There was a problem hiding this comment.
This translated tools configuration section documents only api_key for Perplexity, but the code/config also supports api_keys (multiple keys for rotation) and the English docs document it. Please add the api_keys option here as well to match the actual configuration schema.
pkg/tools/web.go
Outdated
| var lines []string | ||
| for i, item := range result.References { | ||
| if i >= count { | ||
| break | ||
| } | ||
| lines = append(lines, fmt.Sprintf("%d. %s\n %s", i+1, item.Title, item.URL)) | ||
| if item.Content != "" { | ||
| lines = append(lines, fmt.Sprintf(" %s", item.Content)) | ||
| } | ||
| } | ||
|
|
||
| return strings.Join(lines, "\n"), nil |
There was a problem hiding this comment.
If the Baidu API returns an empty references list, this provider currently returns an empty string, which surfaces as an empty tool result. Other search providers return an explicit "No results for: " message. Consider adding a no-results fallback (and ideally a consistent header like "Results for ... (via Baidu Search)") when len(result.References)==0.
docs/fr/tools_configuration.md
Outdated
| @@ -64,6 +79,41 @@ Paramètres généraux pour la récupération et le traitement du contenu des pa | |||
| | `api_key` | string | - | Clé API Perplexity | | |||
| | `max_results` | int | 5 | Nombre maximum de résultats | | |||
There was a problem hiding this comment.
This translated tools configuration section documents only api_key for Perplexity, but the code/config also supports api_keys (multiple keys for rotation) and the English docs document it. Please add the api_keys option here as well to match the actual configuration schema.
docs/fr/tools_configuration.md
Outdated
| | Config | Type | Par défaut | Description | | ||
| |---------------|--------|------------|---------------------------| | ||
| | `enabled` | bool | false | Activer la recherche Brave | | ||
| | `api_key` | string | - | Clé API Brave Search | | ||
| | `max_results` | int | 5 | Nombre maximum de résultats | |
There was a problem hiding this comment.
This translated tools configuration section documents only api_key for Brave, but the code/config also supports api_keys (multiple keys for rotation) and the English docs document it. Please add the api_keys option here as well to match the actual configuration schema.
| | Config | Type | Par défaut | Description | | |
| |---------------|--------|------------|---------------------------| | |
| | `enabled` | bool | false | Activer la recherche Brave | | |
| | `api_key` | string | - | Clé API Brave Search | | |
| | `max_results` | int | 5 | Nombre maximum de résultats | | |
| | Config | Type | Par défaut | Description | | |
| |---------------|-------------|------------|-----------------------------------------------| | |
| | `enabled` | bool | false | Activer la recherche Brave | | |
| | `api_key` | string | - | Clé API Brave Search | | |
| | `api_keys` | string\[\] | - | Liste de clés API Brave Search pour la rotation | | |
| | `max_results` | int | 5 | Nombre maximum de résultats | |
docs/vi/tools_configuration.md
Outdated
| | Cấu hình | Kiểu | Mặc định | Mô tả | | ||
| |----------------|--------|----------|----------------------------| | ||
| | `enabled` | bool | false | Bật tìm kiếm Brave | | ||
| | `api_key` | string | - | Khóa API Brave Search | | ||
| | `max_results` | int | 5 | Số kết quả tối đa | |
There was a problem hiding this comment.
This translated tools configuration section documents only api_key for Brave, but the code/config also supports api_keys (multiple keys for rotation) and the English docs document it. Please add the api_keys option here as well to match the actual configuration schema.
| | Cấu hình | Kiểu | Mặc định | Mô tả | | |
| |----------------|--------|----------|----------------------------| | |
| | `enabled` | bool | false | Bật tìm kiếm Brave | | |
| | `api_key` | string | - | Khóa API Brave Search | | |
| | `max_results` | int | 5 | Số kết quả tối đa | | |
| | Cấu hình | Kiểu | Mặc định | Mô tả | | |
| |----------------|----------|----------|------------------------------------------------------| | |
| | `enabled` | bool | false | Bật tìm kiếm Brave | | |
| | `api_key` | string | - | Khóa API Brave Search | | |
| | `api_keys` | string[] | - | Danh sách khóa API Brave Search (xoay vòng nhiều khóa) | | |
| | `max_results` | int | 5 | Số kết quả tối đa | |
pkg/tools/web.go
Outdated
| body, err := io.ReadAll(resp.Body) | ||
| if err != nil { | ||
| return "", fmt.Errorf("failed to read response: %w", err) | ||
| } |
There was a problem hiding this comment.
BaiduSearchProvider reads the entire HTTP response body without any limit (io.ReadAll(resp.Body)). Other providers in this file (e.g., GLMSearchProvider) cap reads with io.LimitReader to avoid excessive memory usage and huge error strings if the upstream returns an unexpectedly large payload. Please apply a similar size limit here (both for success and error paths).
- Add hardware-banner.jpg, launcher-webui.jpg, launcher-tui.jpg (lost in previous force push) - Add io.LimitReader (1MB) to BaiduSearchProvider response body read - Add no-results fallback and "Results for: ... (via Baidu Search)" header - Add api_keys field to Brave and Perplexity tables in fr/ja/pt-br/vi tools_configuration.md Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Summary
Complete restructure of all 8 README files and related docs, plus Baidu Qianfan AI Search as a new web search provider.
feat(search): Baidu Qianfan AI Search
Code changes
BaiduSearchConfigstruct (api_key,base_url,max_results)baidu_searchinWebToolsConfigand defaults (max_results: 10)Perplexity > Brave > SearXNG > Tavily > DuckDuckGo > Baidu Search > GLM SearchperplexityTimeout(30s) — Qianfan is LLM-based and slower than standard searchreferences[]notsearch_results[]baidu_searchexample block toconfig.example.jsonDocs
tools_configuration.md(EN + zh/fr/ja/pt-br/vi)docs: README restructure (all 8 languages)
New sections added
Fixes
make build-launcheradded to Build from source-publicflag documented for remote access / Docker / VM$10 Hardware · <10MB RAM · <1s BootWeixin channel
picoclaw onboard weixinto CLI table in all 8 READMEs<details>block todocs/chat-apps.mdanddocs/zh/chat-apps.mddocs: configuration.md — complete all language versions
All language versions (en/zh/fr/ja/pt-br/vi) were truncated. Completed with:
providersconfigdocs: Documentation table — all 8 READMEs
Added entries for new docs introduced in #1894, ordered before Troubleshooting:
docs/hooks/README.md(en) /README.zh.md(zh)docs/steering.mddocs/subturn.mddocs/chat-apps.md fixes (all 6 language versions)
<a id="xxx">anchors before every<details>block so#telegram,#discord,#weixinetc. links work-→[Docs](#irc)Channel docs
docs/channels/matrix/translations: ja, fr, pt-br, vidocs/channels/matrix/README.mdandREADME.zh.mdScreenshots