docs(readme): make Chinese the default README and keep only the film (#1436)
- README.md is now Chinese; the English README moves to README.en.md. - Drop the eight-screenshot grid and the Agent Teams loop; the film cover remains the single visual. Remove the now-unused thumbnails. - Point PR triage, change policy, and the docs check at the new file names.
@@ -59,7 +59,7 @@ jobs:
|
|||||||
'src/tools/',
|
'src/tools/',
|
||||||
'src/utils/',
|
'src/utils/',
|
||||||
]
|
]
|
||||||
const docsExact = new Set(['README.md', 'README.zh-CN.md', 'package.json', 'package-lock.json', '.github/workflows/deploy-docs.yml'])
|
const docsExact = new Set(['README.md', 'README.en.md', 'package.json', 'package-lock.json', '.github/workflows/deploy-docs.yml'])
|
||||||
const releaseExact = new Set([
|
const releaseExact = new Set([
|
||||||
'.github/workflows/pr-quality.yml',
|
'.github/workflows/pr-quality.yml',
|
||||||
'.github/workflows/pr-triage.yml',
|
'.github/workflows/pr-triage.yml',
|
||||||
|
|||||||
@@ -0,0 +1,222 @@
|
|||||||
|
# cc-haha
|
||||||
|
|
||||||
|
<p align="center">
|
||||||
|
<img src="docs/images/readme-cover-en.jpg" alt="cc-haha — Open-source desktop for Claude Code" width="960">
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<div align="center">
|
||||||
|
|
||||||
|
[](https://github.com/NanmiCoder/cc-haha/stargazers)
|
||||||
|
[](https://github.com/NanmiCoder/cc-haha/network/members)
|
||||||
|
[](https://github.com/NanmiCoder/cc-haha/issues)
|
||||||
|
[](https://github.com/NanmiCoder/cc-haha/pulls)
|
||||||
|
[](https://github.com/NanmiCoder/cc-haha/blob/main/LICENSE)
|
||||||
|
[](README.en.md)
|
||||||
|
[](README.md)
|
||||||
|
[](https://cchaha.ai)
|
||||||
|
|
||||||
|
[简体中文](README.md) · **English**
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
cc-haha is a **desktop Claude Code workspace** for macOS, Windows, and Linux: multi-session workspaces, global search, branch / Worktree launch, diff review, built-in browser preview, GUI permission approval, any model — Claude, ChatGPT, Grok, presets, or local endpoints — image generation, visual MCP & SubAgent managers, an Agent Teams workbench, dynamic Workflow orchestration, model trace, Computer Use, skill marketplace, colour themes, desktop pets, H5 remote access, IM integration, and scheduled tasks, all in one app. **On macOS, Computer Use can operate other apps without taking over your physical mouse or keyboard.**
|
||||||
|
|
||||||
|
<p align="center">
|
||||||
|
<a href="#desktop-preview">Desktop Preview</a> · <a href="#install-the-desktop-app">Install</a> · <a href="#desktop-highlights">Highlights</a> · <a href="#more-documentation">More Docs</a> · <a href="#sponsorship--partnership">Sponsorship</a> · <a href="#user-group">User Group</a>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Desktop Preview
|
||||||
|
|
||||||
|
<p align="center">
|
||||||
|
<a href="https://github.com/NanmiCoder/cc-haha/releases"><img src="https://img.shields.io/badge/⬇_Download_Desktop-macOS_%7C_Windows_%7C_Linux-FF7A00?style=for-the-badge" alt="Download Desktop"></a>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p align="center">
|
||||||
|
<a href="https://cdn.zizhi1.com/cc-haha/site/cchaha-film-1080p-v1.mp4"><img src="docs/images/readme-film-cover-en.webp" width="720" alt="Watch the 90-second cc-haha film"></a>
|
||||||
|
<br><sub>A 90-second film made with Opus 5.5, narrated in Chinese with Chinese subtitles. Opens the video in your browser.</sub>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
Start here: [install the app](docs/en/start/install.md) → [connect a model](docs/en/start/models.md) → [run your first session](docs/en/start/first-session.md) → [explore settings](docs/en/desktop/settings.md) → [try real workflows](docs/en/cases/index.md). For hands-free cross-app work on macOS, follow the [Computer Use guide](docs/en/desktop/computer-use.md).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Sponsorship & Partnership
|
||||||
|
|
||||||
|
This project is maintained in the author's spare time. Corporate or individual sponsorships are welcome to support ongoing development. Custom features, integrations, and business partnerships are also open for discussion.
|
||||||
|
|
||||||
|
<table>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th width="220">Sponsor</th>
|
||||||
|
<th align="left">Description</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td align="center" valign="middle">
|
||||||
|
<a href="https://aruhub.com/sign-up?aff=Z54g">
|
||||||
|
<img src="docs/images/sponsors/aruhub-logo.png" width="180" alt="AruHub">
|
||||||
|
</a>
|
||||||
|
</td>
|
||||||
|
<td valign="middle">
|
||||||
|
Thanks to <a href="https://aruhub.com/sign-up?aff=Z54g">AruHub</a> for sponsoring this project! AruHub focuses on providing developers with a stable, long-term primary API upstream service. Built for high-frequency AI coding workflows such as Codex and Claude Code, it offers official GPT API access through enterprise groups and stable Claude enterprise groups for sustained use, with support for leading models including GPT and Claude. Image 2 / 2.5 is available around the clock, starting at CNY 0.04 per image. Pay-as-you-go billing supports high-volume enterprise usage, invoicing, and refunds. Register through the <a href="https://aruhub.com/sign-up?aff=Z54g">exclusive link</a> to receive US$1 in credit usable across all models, with no model restrictions.
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td align="center" valign="middle">
|
||||||
|
<a href="https://www.atlascloud.ai/?utm_source=github&utm_medium=link&utm_campaign=cc-haha">
|
||||||
|
<img src="docs/images/sponsors/atlascloud-logo-black.png#gh-light-mode-only" width="180" alt="Atlas Cloud">
|
||||||
|
<img src="docs/images/sponsors/atlascloud-logo-white.png#gh-dark-mode-only" width="180" alt="Atlas Cloud">
|
||||||
|
</a>
|
||||||
|
</td>
|
||||||
|
<td valign="middle">
|
||||||
|
Thanks to <a href="https://www.atlascloud.ai/?utm_source=github&utm_medium=link&utm_campaign=cc-haha">Atlas Cloud</a> for sponsoring this project. Atlas Cloud is a full-modal AI inference platform that gives developers a single AI API to access video generation, image generation, and LLM APIs. Instead of managing multiple vendor integrations, you connect once and get unified access to 300+ curated models across all modalities. Atlas Cloud is already built into the cc-haha provider list, so you can pick it in settings and start using it with just an API key. Check out Atlas Cloud's new <a href="https://www.atlascloud.ai/console/coding-plan">coding plan promotion</a> for more budget-friendly API access.
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td align="center" valign="middle">
|
||||||
|
<a href="https://www.apismart.ai">
|
||||||
|
<img src="docs/images/sponsors/apismart-logo.png" width="180" alt="ApiSmart">
|
||||||
|
</a>
|
||||||
|
</td>
|
||||||
|
<td valign="middle">
|
||||||
|
Thanks to <a href="https://www.apismart.ai">ApiSmart</a> for sponsoring this project. ApiSmart provides unified access to leading AI models through a single API. Use one API key to connect with LLM, image, and video models through an OpenAI-compatible interface. Easily switch between models, simplify billing, and improve reliability with intelligent routing and automatic failover.
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
📧 **Contact**: relakkes@gmail.com
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Install the Desktop App
|
||||||
|
|
||||||
|
1. Download the macOS / Windows / Linux desktop installer from [Releases](https://github.com/NanmiCoder/cc-haha/releases).
|
||||||
|
2. On first launch, configure your model provider, API key, and default model in Settings.
|
||||||
|
3. Public macOS releases require signing and notarization. Draft or unsigned temporary builds may still need one-time manual approval. Unsigned Windows installers may show SmartScreen; click "More info" -> "Run anyway". See the [desktop installation guide](docs/en/start/install.md).
|
||||||
|
|
||||||
|
Release trust and privacy: [Code signing policy](docs/en/start/code-signing.md) · [Privacy and network access](docs/en/start/privacy.md)
|
||||||
|
|
||||||
|
## Run the CLI from Source
|
||||||
|
|
||||||
|
For users who want to debug the underlying CLI, server, or local development flow:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
bun install
|
||||||
|
cp .env.example .env
|
||||||
|
./bin/claude-haha
|
||||||
|
```
|
||||||
|
|
||||||
|
See [environment variables](docs/en/cli/env.md) and [CLI setup](docs/en/cli/index.md) for more configuration options.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## User Group
|
||||||
|
|
||||||
|
Scan the QR code below to join the cc-haha user group on WeCom (WeChat Work) — the conversation there is mostly in Chinese. For questions and bug reports in English, [Issues](https://github.com/NanmiCoder/cc-haha/issues) is the better place. For enterprise deployment, customization, or Agent development needs, contact the author [NanmiCoder](https://github.com/NanmiCoder).
|
||||||
|
|
||||||
|
<p align="center">
|
||||||
|
<img src="docs/images/community/wechat-group-qr.png" width="300" alt="cc-haha WeCom user group QR code">
|
||||||
|
</p>
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ☕ Buy Me a Coffee
|
||||||
|
|
||||||
|
If this project helps you, consider buying me a coffee — every bit of support keeps this project going ❤️
|
||||||
|
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td align="center" width="33%">
|
||||||
|
<img src="docs/images/donate/wechat_pay.jpeg" width="250" alt="WeChat Pay"><br>
|
||||||
|
<b>WeChat Pay</b>
|
||||||
|
</td>
|
||||||
|
<td align="center" width="33%">
|
||||||
|
<img src="docs/images/donate/zfb_pay.png" width="250" alt="Alipay"><br>
|
||||||
|
<b>Alipay</b>
|
||||||
|
</td>
|
||||||
|
<td align="center" width="33%">
|
||||||
|
<a href="https://buymeacoffee.com/relakkes" target="_blank">
|
||||||
|
<img src="docs/images/donate/bmc_button.png" width="250" alt="Buy Me a Coffee">
|
||||||
|
</a><br>
|
||||||
|
<b>Buy Me a Coffee</b>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Desktop Highlights
|
||||||
|
|
||||||
|
- **Multi-session workspace**: tabs, project switching, terminal entry, and session history in one place, with a resizable sidebar.
|
||||||
|
- **Global search**: press Cmd+K to search across every session and jump to the match.
|
||||||
|
- **Branch / Worktree launch**: choose a repository branch and decide whether to use the current working tree or an isolated Worktree.
|
||||||
|
- **Review edits file by file**: the workspace lists this turn's changes; open any file for a syntax-highlighted diff, or undo the whole turn.
|
||||||
|
- **Built-in browser preview**: the page your agent just edited renders right inside the app, cookies and login state included.
|
||||||
|
- **Five permission modes**: from "ask every time" to "skip permissions" — risky commands, tool calls, and follow-up questions are all approved in the GUI.
|
||||||
|
- **Bring your own model**: sign in to Claude, ChatGPT, or Grok; use presets for DeepSeek, Kimi, Zhipu GLM and others; or point it at LM Studio and Ollama running locally.
|
||||||
|
- **Image generation**: generate and edit images right in the chat — sign in with ChatGPT or Grok for instant use, or plug in any OpenAI-compatible Images API.
|
||||||
|
- **Visual MCP manager**: add and edit MCP servers in a GUI — STDIO / Streamable HTTP / SSE, with project, shared, or global scope.
|
||||||
|
- **Six colour themes**: white, paper, warm classic, celadon, ink night, and ink blue — optionally following your system's light/dark setting.
|
||||||
|
- **Skill marketplace**: discover, preview, and install third-party skills from ClawHub / SkillHub, with source and safety status shown up front.
|
||||||
|
- **Session activity panel**: track task progress, background tasks, SubAgents, and sources in one side panel.
|
||||||
|
- **Visual SubAgent manager**: create and tune SubAgents in a GUI — model, tools, and permission mode.
|
||||||
|
- **Agent Teams workbench**: visualize multi-agent collaboration in the GUI — members, tasks, a communication feed, and a dependency-lane canvas.
|
||||||
|
- **Dynamic Workflow orchestration**: the model writes and runs orchestration scripts on the fly, driving subagents concurrently or in pipelines, with phase views, interrupts, and resume.
|
||||||
|
- **Model trace**: every model request is logged locally with status and timing — search and filter to diagnose stuck or failed calls.
|
||||||
|
- **Computer Use**: let the agent take screenshots, click, type, and control desktop apps after authorization; the native macOS runtime does not take over your physical mouse or keyboard.
|
||||||
|
- **Desktop pets**: Dada, Huhu, Bubu, and Huihui change what they do with the task at hand — or raise one of your own (off by default).
|
||||||
|
- **H5 remote access**: scan a QR code to continue the session in your phone browser; locking the screen won't kill a running task.
|
||||||
|
- **IM integration**: chat, switch projects, and approve actions through Telegram / Feishu / WeChat / DingTalk / WhatsApp / WeCom / QQ / Slack.
|
||||||
|
- **Scheduled tasks and usage stats**: run planned tasks in their own sessions and track local token usage trends.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## More Documentation
|
||||||
|
|
||||||
|
Full documentation site: <https://cchaha.ai>
|
||||||
|
|
||||||
|
| Section | Documents |
|
||||||
|
|------|------|
|
||||||
|
| **Getting started** | [What this is](docs/en/start/index.md) · [Download and install](docs/en/start/install.md) · [Connect a model provider](docs/en/start/models.md) · [Your first session](docs/en/start/first-session.md) · [Troubleshooting](docs/en/start/troubleshooting.md) |
|
||||||
|
| **Desktop features** | [Feature overview](docs/en/desktop/index.md) · [Computer Use](docs/en/desktop/computer-use.md) · [Desktop pets](docs/en/desktop/pets.md) · [Phone H5 and IM relay](docs/en/desktop/remote.md) |
|
||||||
|
| **IM integrations** | [Overview and pairing](docs/en/im/index.md) · [Feishu](docs/en/im/feishu.md) · [Telegram](docs/en/im/telegram.md) · [WeChat](docs/en/im/wechat.md) · [DingTalk](docs/en/im/dingtalk.md) · [WhatsApp](docs/en/im/whatsapp.md) · [WeCom](docs/en/im/wecom.md) · [QQ](docs/en/im/qq.md) · [Slack](docs/en/im/slack.md) |
|
||||||
|
| **CLI** | [Install and run](docs/en/cli/index.md) · [Command reference](docs/en/cli/reference.md) · [Environment variables](docs/en/cli/env.md) |
|
||||||
|
| **Internals** | [Desktop architecture](docs/en/internals/desktop.md) · [Multi-agent system](docs/en/internals/agent.md) · [Skills system](docs/en/internals/skills.md) · [Memory system](docs/en/internals/memory.md) · [Computer Use architecture](docs/en/internals/computer-use.md) · [Local server and API](docs/en/internals/server.md) · [Channel system](docs/en/internals/channel.md) · [Project structure](docs/en/internals/structure.md) · [Contributing and quality gates](docs/en/internals/contributing.md) |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Tech Stack
|
||||||
|
|
||||||
|
| Category | Technology |
|
||||||
|
|------|------|
|
||||||
|
| Language | TypeScript |
|
||||||
|
| Desktop app | Electron |
|
||||||
|
| Desktop UI | React + Vite |
|
||||||
|
| Local runtime | [Bun](https://bun.sh) |
|
||||||
|
| Terminal UI | React + [Ink](https://github.com/vadimdemedes/ink) |
|
||||||
|
| CLI parsing | Commander.js |
|
||||||
|
| API | Anthropic SDK |
|
||||||
|
| Protocols | MCP, LSP |
|
||||||
|
|
||||||
|
## Acknowledgements
|
||||||
|
|
||||||
|
Thanks to the following open-source projects and community practices for reference and inspiration:
|
||||||
|
|
||||||
|
- [React](https://github.com/facebook/react): frontend engineering and component-based UI ecosystem.
|
||||||
|
- [Electron](https://github.com/electron/electron): cross-platform desktop app capabilities and engineering practices.
|
||||||
|
- [cc-switch](https://github.com/farion1231/cc-switch): reference for model provider configuration.
|
||||||
|
- [LINUX DO](https://linux.do/): a new ideal developer community.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ⭐ Star History
|
||||||
|
|
||||||
|
If this project helps you, please support it with a ⭐ Star so more people can discover cc-haha.
|
||||||
|
|
||||||
|
<a href="https://www.repostars.dev/?repos=NanmiCoder%2Fcc-haha&theme=ocean">
|
||||||
|
<img alt="Star History Chart" src="https://www.repostars.dev/api/embed?repo=NanmiCoder%2Fcc-haha&theme=ocean" />
|
||||||
|
</a>
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
# cc-haha
|
# cc-haha
|
||||||
|
|
||||||
<p align="center">
|
<p align="center">
|
||||||
<img src="docs/images/readme-cover-en.jpg" alt="cc-haha — Open-source desktop for Claude Code" width="960">
|
<img src="docs/images/readme-cover-zh.jpg" alt="cc-haha — Claude Code 开源桌面端" width="960">
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<div align="center">
|
<div align="center">
|
||||||
@@ -11,73 +11,46 @@
|
|||||||
[](https://github.com/NanmiCoder/cc-haha/issues)
|
[](https://github.com/NanmiCoder/cc-haha/issues)
|
||||||
[](https://github.com/NanmiCoder/cc-haha/pulls)
|
[](https://github.com/NanmiCoder/cc-haha/pulls)
|
||||||
[](https://github.com/NanmiCoder/cc-haha/blob/main/LICENSE)
|
[](https://github.com/NanmiCoder/cc-haha/blob/main/LICENSE)
|
||||||
[](README.md)
|
[](README.md)
|
||||||
[](README.zh-CN.md)
|
[](README.en.md)
|
||||||
[](https://cchaha.ai)
|
[](https://cchaha.ai)
|
||||||
|
|
||||||
[简体中文](README.zh-CN.md) · **English**
|
**简体中文** · [English](README.en.md)
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
cc-haha is a **desktop Claude Code workspace** for macOS, Windows, and Linux: multi-session workspaces, global search, branch / Worktree launch, diff review, built-in browser preview, GUI permission approval, any model — Claude, ChatGPT, Grok, presets, or local endpoints — image generation, visual MCP & SubAgent managers, an Agent Teams workbench, dynamic Workflow orchestration, model trace, Computer Use, skill marketplace, colour themes, desktop pets, H5 remote access, IM integration, and scheduled tasks, all in one app. **On macOS, Computer Use can operate other apps without taking over your physical mouse or keyboard.**
|
cc-haha 是一个**桌面端 Claude Code 工作台**:多会话与全局搜索、分支 / Worktree 启动、Diff 审阅、内置浏览器预览、图形化权限审批、模型自选(Claude / ChatGPT / Grok / 预设 / 本地端点)、图片生成、MCP 与 SubAgent 可视化管理、Agent Teams 协作工作台、动态 Workflow 编排、模型请求追踪、Computer Use、技能市场、多主题、桌面宠物、H5 远程访问、IM 接入和定时任务,集中在一个 macOS / Windows / Linux APP 里。**在 macOS 上,Computer Use 能操作其他应用,同时不占用你的真实鼠标和键盘。**
|
||||||
|
|
||||||
<p align="center">
|
<p align="center">
|
||||||
<a href="#desktop-preview">Desktop Preview</a> · <a href="#install-the-desktop-app">Install</a> · <a href="#desktop-highlights">Highlights</a> · <a href="#more-documentation">More Docs</a> · <a href="#sponsorship--partnership">Sponsorship</a> · <a href="#user-group">User Group</a>
|
<a href="#桌面端预览">桌面端预览</a> · <a href="#安装桌面端">安装桌面端</a> · <a href="#桌面端亮点">桌面端亮点</a> · <a href="#更多文档">更多文档</a> · <a href="#赞助与合作">赞助与合作</a> · <a href="#用户交流群">用户交流群</a>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Desktop Preview
|
## 桌面端预览
|
||||||
|
|
||||||
<p align="center">
|
<p align="center">
|
||||||
<a href="https://github.com/NanmiCoder/cc-haha/releases"><img src="https://img.shields.io/badge/⬇_Download_Desktop-macOS_%7C_Windows_%7C_Linux-FF7A00?style=for-the-badge" alt="Download Desktop"></a>
|
<a href="https://github.com/NanmiCoder/cc-haha/releases"><img src="https://img.shields.io/badge/⬇_下载桌面端-macOS_%7C_Windows_%7C_Linux-FF7A00?style=for-the-badge" alt="下载桌面端"></a>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p align="center">
|
<p align="center">
|
||||||
<a href="https://cdn.zizhi1.com/cc-haha/site/cchaha-film-1080p-v1.mp4"><img src="docs/images/readme-film-cover-en.webp" width="720" alt="Watch the 90-second cc-haha film"></a>
|
<a href="https://cdn.zizhi1.com/cc-haha/site/cchaha-film-1080p-v1.mp4"><img src="docs/images/readme-film-cover-zh-CN.webp" width="720" alt="观看 90 秒 cc-haha 宣传片"></a>
|
||||||
<br><sub>A 90-second film made with Opus 5.5, narrated in Chinese with Chinese subtitles. Opens the video in your browser.</sub>
|
<br><sub>由 Opus 5.5 制作的 90 秒宣传片,点击在浏览器中播放。</sub>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
The top row covers **getting started and daily work**: sessions, permissions, changes, and Computer Use. The second shows **extensions**: models, skills, scheduled tasks, and IM. These screenshots show the real project in the Chinese interface. Click a thumbnail to see the full screen.
|
从 0 开始:[下载安装](docs/start/install.md) → [连接模型](docs/start/models.md) → [跑通第一条会话](docs/start/first-session.md) → [设置指南](docs/desktop/settings.md) → [实战案例](docs/cases/index.md)。想体验不抢鼠标的跨应用操作,接着看 [Computer Use 指南](docs/desktop/computer-use.md)。
|
||||||
|
|
||||||
<table>
|
|
||||||
<tr>
|
|
||||||
<td align="center" valign="top" width="25%"><a href="docs/images/app/en/session-new.webp"><img src="docs/images/readme-features/en/session-new.webp" width="100%" alt="New session with project, permission, and model choices"></a><br><b>01 · Start a session</b><br>Pick a project and permissions</td>
|
|
||||||
<td align="center" valign="top" width="25%"><a href="docs/images/app/en/permission-modes.webp"><img src="docs/images/readme-features/en/permission-modes.webp" width="100%" alt="Choose one of five permission modes in a real project session"></a><br><b>02 · Set permissions</b><br>Control what each task can do</td>
|
|
||||||
<td align="center" valign="top" width="25%"><a href="docs/images/app/en/workspace-diff.webp"><img src="docs/images/readme-features/en/workspace-diff.webp" width="100%" alt="Review a code diff file by file in the workspace"></a><br><b>03 · Review changes</b><br>Inspect each file's diff</td>
|
|
||||||
<td align="center" valign="top" width="25%"><a href="docs/images/app/en/settings-computer-use.webp"><img src="docs/images/readme-features/en/computer-use.webp" width="100%" alt="macOS Computer Use settings with enabled status and Accessibility and Screen Recording permissions"></a><br><b>04 · Computer Use</b><br>Keep your Mac mouse and keyboard free</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td align="center" valign="top" width="25%"><a href="docs/images/app/en/settings-provider-add.webp"><img src="docs/images/readme-features/en/settings-provider-add.webp" width="100%" alt="Add a model provider using a preset and endpoint URL"></a><br><b>05 · Connect models</b><br>Use presets or local endpoints</td>
|
|
||||||
<td align="center" valign="top" width="25%"><a href="docs/images/app/en/skill-market.webp"><img src="docs/images/readme-features/en/skill-market.webp" width="100%" alt="Browse skills and inspect their sources"></a><br><b>06 · Add skills</b><br>Install what a task needs</td>
|
|
||||||
<td align="center" valign="top" width="25%"><a href="docs/images/app/en/schedule-create.webp"><img src="docs/images/readme-features/en/schedule-create.webp" width="100%" alt="Create a scheduled task in its own session"></a><br><b>07 · Schedule tasks</b><br>Automate recurring work</td>
|
|
||||||
<td align="center" valign="top" width="25%"><a href="docs/images/app/en/settings-im.webp"><img src="docs/images/readme-features/en/settings-im.webp" width="100%" alt="Configure Slack in the IM access settings"></a><br><b>08 · Work remotely</b><br>Continue through IM</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
### Agent Teams
|
|
||||||
|
|
||||||
<p align="center">
|
|
||||||
<img src="docs/images/readme-features/agent-teams.webp" width="100%" alt="Agent Teams: confirm the proposed team, then watch members work through dependency lanes until the report and page are ready">
|
|
||||||
</p>
|
|
||||||
|
|
||||||
Describe the goal and the lead proposes a team: who does what, who waits for whom. You choose each member's model and confirm before anyone starts. Independent tasks run in parallel, dependent ones unlock in order on the lane canvas, and every hand-off shows up in the message feed. The report and page land in the same workspace for you to check.
|
|
||||||
|
|
||||||
<sub>Clip from the cc-haha promo film, in the Chinese interface. Demo data; on-screen times are staged.</sub>
|
|
||||||
|
|
||||||
Start here: [install the app](docs/en/start/install.md) → [connect a model](docs/en/start/models.md) → [run your first session](docs/en/start/first-session.md) → [explore settings](docs/en/desktop/settings.md) → [try real workflows](docs/en/cases/index.md). For hands-free cross-app work on macOS, follow the [Computer Use guide](docs/en/desktop/computer-use.md).
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Sponsorship & Partnership
|
## 赞助与合作
|
||||||
|
|
||||||
This project is maintained in the author's spare time. Corporate or individual sponsorships are welcome to support ongoing development. Custom features, integrations, and business partnerships are also open for discussion.
|
本项目由个人利用业余时间维护,欢迎企业或个人赞助支持持续开发,也可洽谈定制、集成或商务合作。
|
||||||
|
|
||||||
<table>
|
<table>
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th width="220">Sponsor</th>
|
<th width="220">赞助商</th>
|
||||||
<th align="left">Description</th>
|
<th align="left">介绍</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
@@ -88,7 +61,7 @@ This project is maintained in the author's spare time. Corporate or individual s
|
|||||||
</a>
|
</a>
|
||||||
</td>
|
</td>
|
||||||
<td valign="middle">
|
<td valign="middle">
|
||||||
Thanks to <a href="https://aruhub.com/sign-up?aff=Z54g">AruHub</a> for sponsoring this project! AruHub focuses on providing developers with a stable, long-term primary API upstream service. Built for high-frequency AI coding workflows such as Codex and Claude Code, it offers official GPT API access through enterprise groups and stable Claude enterprise groups for sustained use, with support for leading models including GPT and Claude. Image 2 / 2.5 is available around the clock, starting at CNY 0.04 per image. Pay-as-you-go billing supports high-volume enterprise usage, invoicing, and refunds. Register through the <a href="https://aruhub.com/sign-up?aff=Z54g">exclusive link</a> to receive US$1 in credit usable across all models, with no model restrictions.
|
感谢 <a href="https://aruhub.com/sign-up?aff=Z54g">AruHub</a> 对本项目的赞助!AruHub 专注为开发者提供长期稳定的主力 API 上游服务。面向 Codex / Claude Code 等高频 AI Coding 场景,提供 GPT 企业分组官方接口、Claude 稳定企业分组,适合长时间持续调用;同时覆盖 GPT、Claude 等主流模型。Image 2 / 2.5 全天稳定供应,低至 0.04 元/张。按量付费,支持企业大用量、开发票及退款。通过 <a href="https://aruhub.com/sign-up?aff=Z54g">专属链接</a>注册即送 1 美元全模型通用额度,不限制模型使用。
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
@@ -99,7 +72,7 @@ This project is maintained in the author's spare time. Corporate or individual s
|
|||||||
</a>
|
</a>
|
||||||
</td>
|
</td>
|
||||||
<td valign="middle">
|
<td valign="middle">
|
||||||
Thanks to <a href="https://www.atlascloud.ai/?utm_source=github&utm_medium=link&utm_campaign=cc-haha">Atlas Cloud</a> for sponsoring this project. Atlas Cloud is a full-modal AI inference platform that gives developers a single AI API to access video generation, image generation, and LLM APIs. Instead of managing multiple vendor integrations, you connect once and get unified access to 300+ curated models across all modalities. Atlas Cloud is already built into the cc-haha provider list, so you can pick it in settings and start using it with just an API key. Check out Atlas Cloud's new <a href="https://www.atlascloud.ai/console/coding-plan">coding plan promotion</a> for more budget-friendly API access.
|
感谢 <a href="https://www.atlascloud.ai/?utm_source=github&utm_medium=link&utm_campaign=cc-haha">Atlas Cloud</a> 赞助本项目!Atlas Cloud 是一个全模态 AI 推理平台,让开发者通过统一的 AI API 访问视频生成、图像生成和 LLM API,无需分别维护多个厂商集成,即可调用 300+ 精选模型。cc-haha 已内置 Atlas Cloud 供应商预设,在设置里选择后填入 API Key 即可直接使用。Atlas Cloud 最新推出 <a href="https://www.atlascloud.ai/console/coding-plan">coding plan 优惠</a>,为开发者提供更具性价比的 API 访问预算。
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
@@ -109,27 +82,27 @@ This project is maintained in the author's spare time. Corporate or individual s
|
|||||||
</a>
|
</a>
|
||||||
</td>
|
</td>
|
||||||
<td valign="middle">
|
<td valign="middle">
|
||||||
Thanks to <a href="https://www.apismart.ai">ApiSmart</a> for sponsoring this project. ApiSmart provides unified access to leading AI models through a single API. Use one API key to connect with LLM, image, and video models through an OpenAI-compatible interface. Easily switch between models, simplify billing, and improve reliability with intelligent routing and automatic failover.
|
感谢 <a href="https://www.apismart.ai">ApiSmart</a> 赞助本项目!ApiSmart 通过单一 API 提供对主流 AI 模型的统一访问。只需一个 API Key,即可通过兼容 OpenAI 的接口连接大语言模型、图像模型和视频模型。轻松切换模型、简化账单管理,并通过智能路由和自动故障转移提升可靠性。
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
📧 **Contact**: relakkes@gmail.com
|
📧 **联系邮箱**:relakkes@gmail.com
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Install the Desktop App
|
## 安装桌面端
|
||||||
|
|
||||||
1. Download the macOS / Windows / Linux desktop installer from [Releases](https://github.com/NanmiCoder/cc-haha/releases).
|
1. 前往 [Releases](https://github.com/NanmiCoder/cc-haha/releases) 下载 macOS / Windows / Linux 桌面端安装包。
|
||||||
2. On first launch, configure your model provider, API key, and default model in Settings.
|
2. 首次启动后,在桌面端设置里配置模型提供商、API Key 和默认模型。
|
||||||
3. Public macOS releases require signing and notarization. Draft or unsigned temporary builds may still need one-time manual approval. Unsigned Windows installers may show SmartScreen; click "More info" -> "Run anyway". See the [desktop installation guide](docs/en/start/install.md).
|
3. 正式 macOS Release 需要经过签名和公证;如果安装的是 draft/unsigned 临时包,首次打开可能仍需手动放行。Windows 未签名安装包可能出现 SmartScreen 提示,点「更多信息」→「仍要运行」即可。详见 [桌面端安装指南](docs/start/install.md)。
|
||||||
|
|
||||||
Release trust and privacy: [Code signing policy](docs/en/start/code-signing.md) · [Privacy and network access](docs/en/start/privacy.md)
|
发布可信度与隐私:[Code signing policy](docs/start/code-signing.md) · [隐私与联网说明](docs/start/privacy.md)
|
||||||
|
|
||||||
## Run the CLI from Source
|
## 从源码启动 CLI
|
||||||
|
|
||||||
For users who want to debug the underlying CLI, server, or local development flow:
|
适合想调试底层 CLI、服务端或自行开发的用户:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
bun install
|
bun install
|
||||||
@@ -137,33 +110,33 @@ cp .env.example .env
|
|||||||
./bin/claude-haha
|
./bin/claude-haha
|
||||||
```
|
```
|
||||||
|
|
||||||
See [environment variables](docs/en/cli/env.md) and [CLI setup](docs/en/cli/index.md) for more configuration options.
|
更多配置见 [环境变量](docs/cli/env.md) 和 [命令行安装与启动](docs/cli/index.md)。
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## User Group
|
## 用户交流群
|
||||||
|
|
||||||
Scan the QR code below to join the cc-haha user group on WeCom (WeChat Work) — the conversation there is mostly in Chinese. For questions and bug reports in English, [Issues](https://github.com/NanmiCoder/cc-haha/issues) is the better place. For enterprise deployment, customization, or Agent development needs, contact the author [NanmiCoder](https://github.com/NanmiCoder).
|
使用过程中有问题、想反馈 Bug,或者想看看别人怎么用,欢迎扫码加入 cc-haha 企业微信用户群。也可以直接来 [Issues](https://github.com/NanmiCoder/cc-haha/issues) 提问。企业定制 / 私有化部署 / Agent 定制需求,请联系作者 [NanmiCoder](https://github.com/NanmiCoder)。
|
||||||
|
|
||||||
<p align="center">
|
<p align="center">
|
||||||
<img src="docs/images/community/wechat-group-qr.png" width="300" alt="cc-haha WeCom user group QR code">
|
<img src="docs/images/community/wechat-group-qr.png" width="300" alt="cc-haha 企业微信用户群二维码">
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## ☕ Buy Me a Coffee
|
## ☕ 请作者喝杯咖啡
|
||||||
|
|
||||||
If this project helps you, consider buying me a coffee — every bit of support keeps this project going ❤️
|
如果这个项目对您有帮助,欢迎打赏支持,您的每一份支持都是我持续更新的动力 ❤️
|
||||||
|
|
||||||
<table>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
<td align="center" width="33%">
|
<td align="center" width="33%">
|
||||||
<img src="docs/images/donate/wechat_pay.jpeg" width="250" alt="WeChat Pay"><br>
|
<img src="docs/images/donate/wechat_pay.jpeg" width="250" alt="微信赞赏"><br>
|
||||||
<b>WeChat Pay</b>
|
<b>微信赞赏</b>
|
||||||
</td>
|
</td>
|
||||||
<td align="center" width="33%">
|
<td align="center" width="33%">
|
||||||
<img src="docs/images/donate/zfb_pay.png" width="250" alt="Alipay"><br>
|
<img src="docs/images/donate/zfb_pay.png" width="250" alt="支付宝"><br>
|
||||||
<b>Alipay</b>
|
<b>支付宝</b>
|
||||||
</td>
|
</td>
|
||||||
<td align="center" width="33%">
|
<td align="center" width="33%">
|
||||||
<a href="https://buymeacoffee.com/relakkes" target="_blank">
|
<a href="https://buymeacoffee.com/relakkes" target="_blank">
|
||||||
@@ -176,73 +149,73 @@ If this project helps you, consider buying me a coffee — every bit of support
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Desktop Highlights
|
## 桌面端亮点
|
||||||
|
|
||||||
- **Multi-session workspace**: tabs, project switching, terminal entry, and session history in one place, with a resizable sidebar.
|
- **多会话工作台**:标签页、项目切换、终端入口和会话历史集中管理,侧边栏宽度可拖拽。
|
||||||
- **Global search**: press Cmd+K to search across every session and jump to the match.
|
- **全局搜索**:按 Cmd+K 跨所有会话全文搜索,一键跳到命中位置。
|
||||||
- **Branch / Worktree launch**: choose a repository branch and decide whether to use the current working tree or an isolated Worktree.
|
- **分支 / Worktree 启动**:新会话可以选择仓库分支,并决定用当前工作树还是隔离 Worktree。
|
||||||
- **Review edits file by file**: the workspace lists this turn's changes; open any file for a syntax-highlighted diff, or undo the whole turn.
|
- **改动逐个文件审阅**:右侧工作区列出本轮改动,点开就是带语法高亮的 Diff,整轮可撤销。
|
||||||
- **Built-in browser preview**: the page your agent just edited renders right inside the app, cookies and login state included.
|
- **内置浏览器预览**:Agent 刚改完的页面直接在应用内渲染,登录态和 Cookie 真实可用。
|
||||||
- **Five permission modes**: from "ask every time" to "skip permissions" — risky commands, tool calls, and follow-up questions are all approved in the GUI.
|
- **五档权限模式**:从「询问权限」到「跳过权限」,危险命令、工具调用和 AI 反问都在桌面端审批。
|
||||||
- **Bring your own model**: sign in to Claude, ChatGPT, or Grok; use presets for DeepSeek, Kimi, Zhipu GLM and others; or point it at LM Studio and Ollama running locally.
|
- **模型自选**:Claude / ChatGPT / Grok 官方账号可直接登录;DeepSeek、Kimi、智谱 GLM 等第三方 API 有现成预设;LM Studio、Ollama 的本地模型也接得上。
|
||||||
- **Image generation**: generate and edit images right in the chat — sign in with ChatGPT or Grok for instant use, or plug in any OpenAI-compatible Images API.
|
- **图片生成**:聊天中直接生成和编辑图片——ChatGPT / Grok 授权登录即可使用,也支持接入任意 OpenAI 兼容的 Images API。
|
||||||
- **Visual MCP manager**: add and edit MCP servers in a GUI — STDIO / Streamable HTTP / SSE, with project, shared, or global scope.
|
- **MCP 图形化管理**:界面化增删改 MCP Server,支持 STDIO / Streamable HTTP / SSE 三种传输方式与项目私有、共享、全局三种作用域。
|
||||||
- **Six colour themes**: white, paper, warm classic, celadon, ink night, and ink blue — optionally following your system's light/dark setting.
|
- **六套配色主题**:纯白、纸墨、经典暖色、青瓷、墨夜、墨夜蓝,可跟随系统深浅色自动切换。
|
||||||
- **Skill marketplace**: discover, preview, and install third-party skills from ClawHub / SkillHub, with source and safety status shown up front.
|
- **技能市场**:发现、预览、安装 ClawHub / SkillHub 的第三方技能,来源和安全状态摆在明处。
|
||||||
- **Session activity panel**: track task progress, background tasks, SubAgents, and sources in one side panel.
|
- **会话活动面板**:集中查看任务进度、后台任务、SubAgent 与来源。
|
||||||
- **Visual SubAgent manager**: create and tune SubAgents in a GUI — model, tools, and permission mode.
|
- **可视化 SubAgent 管理**:图形界面创建和调校子代理,选择模型、工具与权限模式。
|
||||||
- **Agent Teams workbench**: visualize multi-agent collaboration in the GUI — members, tasks, a communication feed, and a dependency-lane canvas.
|
- **Agent Teams 协作工作台**:桌面端可视化多 Agent 协作团队——成员、任务、通信流和依赖泳道一目了然。
|
||||||
- **Dynamic Workflow orchestration**: the model writes and runs orchestration scripts on the fly, driving subagents concurrently or in pipelines, with phase views, interrupts, and resume.
|
- **动态 Workflow 编排**:模型当场编写并运行编排脚本,并发或流水线调度多个子代理,支持阶段视图、中断与断点续跑。
|
||||||
- **Model trace**: every model request is logged locally with status and timing — search and filter to diagnose stuck or failed calls.
|
- **模型请求追踪**:本地记录每轮模型请求的状态与耗时,可搜索筛选,快速定位卡死或失败调用。
|
||||||
- **Computer Use**: let the agent take screenshots, click, type, and control desktop apps after authorization; the native macOS runtime does not take over your physical mouse or keyboard.
|
- **Computer Use**:让 Agent 在授权后截图、点击、输入并控制桌面应用;macOS 原生运行时不占用你的真实鼠标和键盘。
|
||||||
- **Desktop pets**: Dada, Huhu, Bubu, and Huihui change what they do with the task at hand — or raise one of your own (off by default).
|
- **桌面宠物**:搭搭、弧弧、补补、回回随任务状态换动作,也能自己做一只(默认关闭)。
|
||||||
- **H5 remote access**: scan a QR code to continue the session in your phone browser; locking the screen won't kill a running task.
|
- **H5 远程访问**:扫码用手机浏览器接入当前会话,锁屏切后台都不打断正在跑的任务。
|
||||||
- **IM integration**: chat, switch projects, and approve actions through Telegram / Feishu / WeChat / DingTalk / WhatsApp / WeCom / QQ / Slack.
|
- **IM 接入**:通过 Telegram / 飞书 / 微信 / 钉钉 / WhatsApp / 企业微信 / QQ / Slack 远程对话、切换项目和审批权限。
|
||||||
- **Scheduled tasks and usage stats**: run planned tasks in their own sessions and track local token usage trends.
|
- **定时任务与用量统计**:创建计划任务在独立会话执行,并查看本机 Token 使用趋势。
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## More Documentation
|
## 更多文档
|
||||||
|
|
||||||
Full documentation site: <https://cchaha.ai>
|
完整文档站:<https://cchaha.ai>
|
||||||
|
|
||||||
| Section | Documents |
|
| 分区 | 文档 |
|
||||||
|------|------|
|
|------|------|
|
||||||
| **Getting started** | [What this is](docs/en/start/index.md) · [Download and install](docs/en/start/install.md) · [Connect a model provider](docs/en/start/models.md) · [Your first session](docs/en/start/first-session.md) · [Troubleshooting](docs/en/start/troubleshooting.md) |
|
| **开始使用** | [这是什么](docs/start/index.md) · [下载与安装](docs/start/install.md) · [连接模型服务](docs/start/models.md) · [跑通第一条会话](docs/start/first-session.md) · [故障排查](docs/start/troubleshooting.md) |
|
||||||
| **Desktop features** | [Feature overview](docs/en/desktop/index.md) · [Computer Use](docs/en/desktop/computer-use.md) · [Desktop pets](docs/en/desktop/pets.md) · [Phone H5 and IM relay](docs/en/desktop/remote.md) |
|
| **桌面端功能** | [功能总览](docs/desktop/index.md) · [Computer Use](docs/desktop/computer-use.md) · [桌面宠物](docs/desktop/pets.md) · [手机 H5 与 IM 接力](docs/desktop/remote.md) |
|
||||||
| **IM integrations** | [Overview and pairing](docs/en/im/index.md) · [Feishu](docs/en/im/feishu.md) · [Telegram](docs/en/im/telegram.md) · [WeChat](docs/en/im/wechat.md) · [DingTalk](docs/en/im/dingtalk.md) · [WhatsApp](docs/en/im/whatsapp.md) · [WeCom](docs/en/im/wecom.md) · [QQ](docs/en/im/qq.md) · [Slack](docs/en/im/slack.md) |
|
| **IM 接入** | [总览与配对流程](docs/im/index.md) · [飞书](docs/im/feishu.md) · [Telegram](docs/im/telegram.md) · [微信](docs/im/wechat.md) · [钉钉](docs/im/dingtalk.md) · [WhatsApp](docs/im/whatsapp.md) · [企业微信](docs/im/wecom.md) · [QQ](docs/im/qq.md) · [Slack](docs/im/slack.md) |
|
||||||
| **CLI** | [Install and run](docs/en/cli/index.md) · [Command reference](docs/en/cli/reference.md) · [Environment variables](docs/en/cli/env.md) |
|
| **命令行** | [安装与启动](docs/cli/index.md) · [命令参考](docs/cli/reference.md) · [环境变量](docs/cli/env.md) |
|
||||||
| **Internals** | [Desktop architecture](docs/en/internals/desktop.md) · [Multi-agent system](docs/en/internals/agent.md) · [Skills system](docs/en/internals/skills.md) · [Memory system](docs/en/internals/memory.md) · [Computer Use architecture](docs/en/internals/computer-use.md) · [Local server and API](docs/en/internals/server.md) · [Channel system](docs/en/internals/channel.md) · [Project structure](docs/en/internals/structure.md) · [Contributing and quality gates](docs/en/internals/contributing.md) |
|
| **深入原理** | [桌面端架构](docs/internals/desktop.md) · [多 Agent 系统](docs/internals/agent.md) · [Skills 系统](docs/internals/skills.md) · [记忆系统](docs/internals/memory.md) · [Computer Use 架构](docs/internals/computer-use.md) · [本地 Server 与 API](docs/internals/server.md) · [Channel 系统](docs/internals/channel.md) · [项目结构](docs/internals/structure.md) · [参与贡献与质量门禁](docs/internals/contributing.md) |
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Tech Stack
|
## 技术栈
|
||||||
|
|
||||||
| Category | Technology |
|
| 类别 | 技术 |
|
||||||
|------|------|
|
|------|------|
|
||||||
| Language | TypeScript |
|
| 语言 | TypeScript |
|
||||||
| Desktop app | Electron |
|
| 桌面 APP | Electron |
|
||||||
| Desktop UI | React + Vite |
|
| 桌面 UI | React + Vite |
|
||||||
| Local runtime | [Bun](https://bun.sh) |
|
| 本地运行时 | [Bun](https://bun.sh) |
|
||||||
| Terminal UI | React + [Ink](https://github.com/vadimdemedes/ink) |
|
| 终端 UI | React + [Ink](https://github.com/vadimdemedes/ink) |
|
||||||
| CLI parsing | Commander.js |
|
| CLI 解析 | Commander.js |
|
||||||
| API | Anthropic SDK |
|
| API | Anthropic SDK |
|
||||||
| Protocols | MCP, LSP |
|
| 协议 | MCP, LSP |
|
||||||
|
|
||||||
## Acknowledgements
|
## 致谢
|
||||||
|
|
||||||
Thanks to the following open-source projects and community practices for reference and inspiration:
|
感谢以下开源项目和社区实践为本项目提供参考与启发:
|
||||||
|
|
||||||
- [React](https://github.com/facebook/react): frontend engineering and component-based UI ecosystem.
|
- [React](https://github.com/facebook/react):前端工程与组件化 UI 生态。
|
||||||
- [Electron](https://github.com/electron/electron): cross-platform desktop app capabilities and engineering practices.
|
- [Electron](https://github.com/electron/electron):跨端桌面应用能力与工程实践。
|
||||||
- [cc-switch](https://github.com/farion1231/cc-switch): reference for model provider configuration.
|
- [cc-switch](https://github.com/farion1231/cc-switch):模型供应商配置能力参考。
|
||||||
- [LINUX DO](https://linux.do/): a new ideal developer community.
|
- [LINUX DO](https://linux.do/):新的理想型开发者社区。
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## ⭐ Star History
|
## ⭐ Star History
|
||||||
|
|
||||||
If this project helps you, please support it with a ⭐ Star so more people can discover cc-haha.
|
如果这个项目对你有帮助,欢迎点一个 ⭐ Star,让更多人发现 cc-haha。
|
||||||
|
|
||||||
<a href="https://www.repostars.dev/?repos=NanmiCoder%2Fcc-haha&theme=ocean">
|
<a href="https://www.repostars.dev/?repos=NanmiCoder%2Fcc-haha&theme=ocean">
|
||||||
<img alt="Star History Chart" src="https://www.repostars.dev/api/embed?repo=NanmiCoder%2Fcc-haha&theme=ocean" />
|
<img alt="Star History Chart" src="https://www.repostars.dev/api/embed?repo=NanmiCoder%2Fcc-haha&theme=ocean" />
|
||||||
|
|||||||
@@ -1,249 +0,0 @@
|
|||||||
# cc-haha
|
|
||||||
|
|
||||||
<p align="center">
|
|
||||||
<img src="docs/images/readme-cover-zh.jpg" alt="cc-haha — Claude Code 开源桌面端" width="960">
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<div align="center">
|
|
||||||
|
|
||||||
[](https://github.com/NanmiCoder/cc-haha/stargazers)
|
|
||||||
[](https://github.com/NanmiCoder/cc-haha/network/members)
|
|
||||||
[](https://github.com/NanmiCoder/cc-haha/issues)
|
|
||||||
[](https://github.com/NanmiCoder/cc-haha/pulls)
|
|
||||||
[](https://github.com/NanmiCoder/cc-haha/blob/main/LICENSE)
|
|
||||||
[](README.zh-CN.md)
|
|
||||||
[](README.md)
|
|
||||||
[](https://cchaha.ai)
|
|
||||||
|
|
||||||
**简体中文** · [English](README.md)
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
cc-haha 是一个**桌面端 Claude Code 工作台**:多会话与全局搜索、分支 / Worktree 启动、Diff 审阅、内置浏览器预览、图形化权限审批、模型自选(Claude / ChatGPT / Grok / 预设 / 本地端点)、图片生成、MCP 与 SubAgent 可视化管理、Agent Teams 协作工作台、动态 Workflow 编排、模型请求追踪、Computer Use、技能市场、多主题、桌面宠物、H5 远程访问、IM 接入和定时任务,集中在一个 macOS / Windows / Linux APP 里。**在 macOS 上,Computer Use 能操作其他应用,同时不占用你的真实鼠标和键盘。**
|
|
||||||
|
|
||||||
<p align="center">
|
|
||||||
<a href="#桌面端预览">桌面端预览</a> · <a href="#安装桌面端">安装桌面端</a> · <a href="#桌面端亮点">桌面端亮点</a> · <a href="#更多文档">更多文档</a> · <a href="#赞助与合作">赞助与合作</a> · <a href="#用户交流群">用户交流群</a>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 桌面端预览
|
|
||||||
|
|
||||||
<p align="center">
|
|
||||||
<a href="https://github.com/NanmiCoder/cc-haha/releases"><img src="https://img.shields.io/badge/⬇_下载桌面端-macOS_%7C_Windows_%7C_Linux-FF7A00?style=for-the-badge" alt="下载桌面端"></a>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p align="center">
|
|
||||||
<a href="https://cdn.zizhi1.com/cc-haha/site/cchaha-film-1080p-v1.mp4"><img src="docs/images/readme-film-cover-zh-CN.webp" width="720" alt="观看 90 秒 cc-haha 宣传片"></a>
|
|
||||||
<br><sub>由 Opus 5.5 制作的 90 秒宣传片,点击在浏览器中播放。</sub>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
上排看**上手与日常工作**:新建、权限、改动与 Computer Use;下排看**扩展能力**:模型、技能、定时任务与 IM。截图来自真实项目,保留项目与会话列表。点击缩略图可查看完整界面。
|
|
||||||
|
|
||||||
<table>
|
|
||||||
<tr>
|
|
||||||
<td align="center" valign="top" width="25%"><a href="docs/images/app/zh-CN/session-new.webp"><img src="docs/images/readme-features/zh-CN/session-new.webp" width="100%" alt="新建会话:选择项目、权限和模型"></a><br><b>01 · 新建会话</b><br>从项目与权限开始</td>
|
|
||||||
<td align="center" valign="top" width="25%"><a href="docs/images/app/zh-CN/permission-modes.webp"><img src="docs/images/readme-features/zh-CN/permission-modes.webp" width="100%" alt="真实项目会话中的五档执行权限菜单"></a><br><b>02 · 选择权限</b><br>按任务控制操作范围</td>
|
|
||||||
<td align="center" valign="top" width="25%"><a href="docs/images/app/zh-CN/workspace-diff.webp"><img src="docs/images/readme-features/zh-CN/workspace-diff.webp" width="100%" alt="在工作区逐文件查看代码 Diff"></a><br><b>03 · 审阅改动</b><br>逐文件检查 Diff</td>
|
|
||||||
<td align="center" valign="top" width="25%"><a href="docs/images/app/zh-CN/settings-computer-use.webp"><img src="docs/images/readme-features/zh-CN/computer-use.webp" width="100%" alt="macOS Computer Use 设置:启用状态、辅助功能与屏幕录制权限"></a><br><b>04 · Computer Use</b><br>Mac 上不占用真实鼠标键盘</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td align="center" valign="top" width="25%"><a href="docs/images/app/zh-CN/settings-provider-add.webp"><img src="docs/images/readme-features/zh-CN/settings-provider-add.webp" width="100%" alt="添加模型服务商时选择预设并填写接口地址"></a><br><b>05 · 接入模型</b><br>预设、本地端点都能用</td>
|
|
||||||
<td align="center" valign="top" width="25%"><a href="docs/images/app/zh-CN/skill-market.webp"><img src="docs/images/readme-features/zh-CN/skill-market.webp" width="100%" alt="浏览技能市场并查看技能来源"></a><br><b>06 · 扩展技能</b><br>按任务安装所需能力</td>
|
|
||||||
<td align="center" valign="top" width="25%"><a href="docs/images/app/zh-CN/schedule-create.webp"><img src="docs/images/readme-features/zh-CN/schedule-create.webp" width="100%" alt="创建独立执行的定时任务"></a><br><b>07 · 定时执行</b><br>让重复任务自动跑</td>
|
|
||||||
<td align="center" valign="top" width="25%"><a href="docs/images/app/zh-CN/settings-im.webp"><img src="docs/images/readme-features/zh-CN/settings-im.webp" width="100%" alt="IM 接入页的 Slack 配置表单"></a><br><b>08 · 远程接力</b><br>在 IM 中继续会话</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
### Agent Teams
|
|
||||||
|
|
||||||
<p align="center">
|
|
||||||
<img src="docs/images/readme-features/agent-teams.webp" width="100%" alt="Agent Teams:确认团队方案后,成员按依赖泳道推进,直到报告和页面完成">
|
|
||||||
</p>
|
|
||||||
|
|
||||||
说出目标,lead 先给出团队方案:谁做什么、谁等谁。每个成员用哪个模型由你来挑,你确认后成员才出发。能同时做的并行推进,要接力的在泳道画布上按依赖解锁,每次交接都记在通讯流里;报告和页面放进同一个工作区,打开就能检查。
|
|
||||||
|
|
||||||
<sub>片段取自 cc-haha 宣传片,演示数据,画面中的时间为演示设定。</sub>
|
|
||||||
|
|
||||||
从 0 开始:[下载安装](docs/start/install.md) → [连接模型](docs/start/models.md) → [跑通第一条会话](docs/start/first-session.md) → [设置指南](docs/desktop/settings.md) → [实战案例](docs/cases/index.md)。想体验不抢鼠标的跨应用操作,接着看 [Computer Use 指南](docs/desktop/computer-use.md)。
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 赞助与合作
|
|
||||||
|
|
||||||
本项目由个人利用业余时间维护,欢迎企业或个人赞助支持持续开发,也可洽谈定制、集成或商务合作。
|
|
||||||
|
|
||||||
<table>
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th width="220">赞助商</th>
|
|
||||||
<th align="left">介绍</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td align="center" valign="middle">
|
|
||||||
<a href="https://aruhub.com/sign-up?aff=Z54g">
|
|
||||||
<img src="docs/images/sponsors/aruhub-logo.png" width="180" alt="AruHub">
|
|
||||||
</a>
|
|
||||||
</td>
|
|
||||||
<td valign="middle">
|
|
||||||
感谢 <a href="https://aruhub.com/sign-up?aff=Z54g">AruHub</a> 对本项目的赞助!AruHub 专注为开发者提供长期稳定的主力 API 上游服务。面向 Codex / Claude Code 等高频 AI Coding 场景,提供 GPT 企业分组官方接口、Claude 稳定企业分组,适合长时间持续调用;同时覆盖 GPT、Claude 等主流模型。Image 2 / 2.5 全天稳定供应,低至 0.04 元/张。按量付费,支持企业大用量、开发票及退款。通过 <a href="https://aruhub.com/sign-up?aff=Z54g">专属链接</a>注册即送 1 美元全模型通用额度,不限制模型使用。
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td align="center" valign="middle">
|
|
||||||
<a href="https://www.atlascloud.ai/?utm_source=github&utm_medium=link&utm_campaign=cc-haha">
|
|
||||||
<img src="docs/images/sponsors/atlascloud-logo-black.png#gh-light-mode-only" width="180" alt="Atlas Cloud">
|
|
||||||
<img src="docs/images/sponsors/atlascloud-logo-white.png#gh-dark-mode-only" width="180" alt="Atlas Cloud">
|
|
||||||
</a>
|
|
||||||
</td>
|
|
||||||
<td valign="middle">
|
|
||||||
感谢 <a href="https://www.atlascloud.ai/?utm_source=github&utm_medium=link&utm_campaign=cc-haha">Atlas Cloud</a> 赞助本项目!Atlas Cloud 是一个全模态 AI 推理平台,让开发者通过统一的 AI API 访问视频生成、图像生成和 LLM API,无需分别维护多个厂商集成,即可调用 300+ 精选模型。cc-haha 已内置 Atlas Cloud 供应商预设,在设置里选择后填入 API Key 即可直接使用。Atlas Cloud 最新推出 <a href="https://www.atlascloud.ai/console/coding-plan">coding plan 优惠</a>,为开发者提供更具性价比的 API 访问预算。
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td align="center" valign="middle">
|
|
||||||
<a href="https://www.apismart.ai">
|
|
||||||
<img src="docs/images/sponsors/apismart-logo.png" width="180" alt="ApiSmart">
|
|
||||||
</a>
|
|
||||||
</td>
|
|
||||||
<td valign="middle">
|
|
||||||
感谢 <a href="https://www.apismart.ai">ApiSmart</a> 赞助本项目!ApiSmart 通过单一 API 提供对主流 AI 模型的统一访问。只需一个 API Key,即可通过兼容 OpenAI 的接口连接大语言模型、图像模型和视频模型。轻松切换模型、简化账单管理,并通过智能路由和自动故障转移提升可靠性。
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
📧 **联系邮箱**:relakkes@gmail.com
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 安装桌面端
|
|
||||||
|
|
||||||
1. 前往 [Releases](https://github.com/NanmiCoder/cc-haha/releases) 下载 macOS / Windows / Linux 桌面端安装包。
|
|
||||||
2. 首次启动后,在桌面端设置里配置模型提供商、API Key 和默认模型。
|
|
||||||
3. 正式 macOS Release 需要经过签名和公证;如果安装的是 draft/unsigned 临时包,首次打开可能仍需手动放行。Windows 未签名安装包可能出现 SmartScreen 提示,点「更多信息」→「仍要运行」即可。详见 [桌面端安装指南](docs/start/install.md)。
|
|
||||||
|
|
||||||
发布可信度与隐私:[Code signing policy](docs/start/code-signing.md) · [隐私与联网说明](docs/start/privacy.md)
|
|
||||||
|
|
||||||
## 从源码启动 CLI
|
|
||||||
|
|
||||||
适合想调试底层 CLI、服务端或自行开发的用户:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
bun install
|
|
||||||
cp .env.example .env
|
|
||||||
./bin/claude-haha
|
|
||||||
```
|
|
||||||
|
|
||||||
更多配置见 [环境变量](docs/cli/env.md) 和 [命令行安装与启动](docs/cli/index.md)。
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 用户交流群
|
|
||||||
|
|
||||||
使用过程中有问题、想反馈 Bug,或者想看看别人怎么用,欢迎扫码加入 cc-haha 企业微信用户群。也可以直接来 [Issues](https://github.com/NanmiCoder/cc-haha/issues) 提问。企业定制 / 私有化部署 / Agent 定制需求,请联系作者 [NanmiCoder](https://github.com/NanmiCoder)。
|
|
||||||
|
|
||||||
<p align="center">
|
|
||||||
<img src="docs/images/community/wechat-group-qr.png" width="300" alt="cc-haha 企业微信用户群二维码">
|
|
||||||
</p>
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## ☕ 请作者喝杯咖啡
|
|
||||||
|
|
||||||
如果这个项目对您有帮助,欢迎打赏支持,您的每一份支持都是我持续更新的动力 ❤️
|
|
||||||
|
|
||||||
<table>
|
|
||||||
<tr>
|
|
||||||
<td align="center" width="33%">
|
|
||||||
<img src="docs/images/donate/wechat_pay.jpeg" width="250" alt="微信赞赏"><br>
|
|
||||||
<b>微信赞赏</b>
|
|
||||||
</td>
|
|
||||||
<td align="center" width="33%">
|
|
||||||
<img src="docs/images/donate/zfb_pay.png" width="250" alt="支付宝"><br>
|
|
||||||
<b>支付宝</b>
|
|
||||||
</td>
|
|
||||||
<td align="center" width="33%">
|
|
||||||
<a href="https://buymeacoffee.com/relakkes" target="_blank">
|
|
||||||
<img src="docs/images/donate/bmc_button.png" width="250" alt="Buy Me a Coffee">
|
|
||||||
</a><br>
|
|
||||||
<b>Buy Me a Coffee</b>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 桌面端亮点
|
|
||||||
|
|
||||||
- **多会话工作台**:标签页、项目切换、终端入口和会话历史集中管理,侧边栏宽度可拖拽。
|
|
||||||
- **全局搜索**:按 Cmd+K 跨所有会话全文搜索,一键跳到命中位置。
|
|
||||||
- **分支 / Worktree 启动**:新会话可以选择仓库分支,并决定用当前工作树还是隔离 Worktree。
|
|
||||||
- **改动逐个文件审阅**:右侧工作区列出本轮改动,点开就是带语法高亮的 Diff,整轮可撤销。
|
|
||||||
- **内置浏览器预览**:Agent 刚改完的页面直接在应用内渲染,登录态和 Cookie 真实可用。
|
|
||||||
- **五档权限模式**:从「询问权限」到「跳过权限」,危险命令、工具调用和 AI 反问都在桌面端审批。
|
|
||||||
- **模型自选**:Claude / ChatGPT / Grok 官方账号可直接登录;DeepSeek、Kimi、智谱 GLM 等第三方 API 有现成预设;LM Studio、Ollama 的本地模型也接得上。
|
|
||||||
- **图片生成**:聊天中直接生成和编辑图片——ChatGPT / Grok 授权登录即可使用,也支持接入任意 OpenAI 兼容的 Images API。
|
|
||||||
- **MCP 图形化管理**:界面化增删改 MCP Server,支持 STDIO / Streamable HTTP / SSE 三种传输方式与项目私有、共享、全局三种作用域。
|
|
||||||
- **六套配色主题**:纯白、纸墨、经典暖色、青瓷、墨夜、墨夜蓝,可跟随系统深浅色自动切换。
|
|
||||||
- **技能市场**:发现、预览、安装 ClawHub / SkillHub 的第三方技能,来源和安全状态摆在明处。
|
|
||||||
- **会话活动面板**:集中查看任务进度、后台任务、SubAgent 与来源。
|
|
||||||
- **可视化 SubAgent 管理**:图形界面创建和调校子代理,选择模型、工具与权限模式。
|
|
||||||
- **Agent Teams 协作工作台**:桌面端可视化多 Agent 协作团队——成员、任务、通信流和依赖泳道一目了然。
|
|
||||||
- **动态 Workflow 编排**:模型当场编写并运行编排脚本,并发或流水线调度多个子代理,支持阶段视图、中断与断点续跑。
|
|
||||||
- **模型请求追踪**:本地记录每轮模型请求的状态与耗时,可搜索筛选,快速定位卡死或失败调用。
|
|
||||||
- **Computer Use**:让 Agent 在授权后截图、点击、输入并控制桌面应用;macOS 原生运行时不占用你的真实鼠标和键盘。
|
|
||||||
- **桌面宠物**:搭搭、弧弧、补补、回回随任务状态换动作,也能自己做一只(默认关闭)。
|
|
||||||
- **H5 远程访问**:扫码用手机浏览器接入当前会话,锁屏切后台都不打断正在跑的任务。
|
|
||||||
- **IM 接入**:通过 Telegram / 飞书 / 微信 / 钉钉 / WhatsApp / 企业微信 / QQ / Slack 远程对话、切换项目和审批权限。
|
|
||||||
- **定时任务与用量统计**:创建计划任务在独立会话执行,并查看本机 Token 使用趋势。
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 更多文档
|
|
||||||
|
|
||||||
完整文档站:<https://cchaha.ai>
|
|
||||||
|
|
||||||
| 分区 | 文档 |
|
|
||||||
|------|------|
|
|
||||||
| **开始使用** | [这是什么](docs/start/index.md) · [下载与安装](docs/start/install.md) · [连接模型服务](docs/start/models.md) · [跑通第一条会话](docs/start/first-session.md) · [故障排查](docs/start/troubleshooting.md) |
|
|
||||||
| **桌面端功能** | [功能总览](docs/desktop/index.md) · [Computer Use](docs/desktop/computer-use.md) · [桌面宠物](docs/desktop/pets.md) · [手机 H5 与 IM 接力](docs/desktop/remote.md) |
|
|
||||||
| **IM 接入** | [总览与配对流程](docs/im/index.md) · [飞书](docs/im/feishu.md) · [Telegram](docs/im/telegram.md) · [微信](docs/im/wechat.md) · [钉钉](docs/im/dingtalk.md) · [WhatsApp](docs/im/whatsapp.md) · [企业微信](docs/im/wecom.md) · [QQ](docs/im/qq.md) · [Slack](docs/im/slack.md) |
|
|
||||||
| **命令行** | [安装与启动](docs/cli/index.md) · [命令参考](docs/cli/reference.md) · [环境变量](docs/cli/env.md) |
|
|
||||||
| **深入原理** | [桌面端架构](docs/internals/desktop.md) · [多 Agent 系统](docs/internals/agent.md) · [Skills 系统](docs/internals/skills.md) · [记忆系统](docs/internals/memory.md) · [Computer Use 架构](docs/internals/computer-use.md) · [本地 Server 与 API](docs/internals/server.md) · [Channel 系统](docs/internals/channel.md) · [项目结构](docs/internals/structure.md) · [参与贡献与质量门禁](docs/internals/contributing.md) |
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 技术栈
|
|
||||||
|
|
||||||
| 类别 | 技术 |
|
|
||||||
|------|------|
|
|
||||||
| 语言 | TypeScript |
|
|
||||||
| 桌面 APP | Electron |
|
|
||||||
| 桌面 UI | React + Vite |
|
|
||||||
| 本地运行时 | [Bun](https://bun.sh) |
|
|
||||||
| 终端 UI | React + [Ink](https://github.com/vadimdemedes/ink) |
|
|
||||||
| CLI 解析 | Commander.js |
|
|
||||||
| API | Anthropic SDK |
|
|
||||||
| 协议 | MCP, LSP |
|
|
||||||
|
|
||||||
## 致谢
|
|
||||||
|
|
||||||
感谢以下开源项目和社区实践为本项目提供参考与启发:
|
|
||||||
|
|
||||||
- [React](https://github.com/facebook/react):前端工程与组件化 UI 生态。
|
|
||||||
- [Electron](https://github.com/electron/electron):跨端桌面应用能力与工程实践。
|
|
||||||
- [cc-switch](https://github.com/farion1231/cc-switch):模型供应商配置能力参考。
|
|
||||||
- [LINUX DO](https://linux.do/):新的理想型开发者社区。
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## ⭐ Star History
|
|
||||||
|
|
||||||
如果这个项目对你有帮助,欢迎点一个 ⭐ Star,让更多人发现 cc-haha。
|
|
||||||
|
|
||||||
<a href="https://www.repostars.dev/?repos=NanmiCoder%2Fcc-haha&theme=ocean">
|
|
||||||
<img alt="Star History Chart" src="https://www.repostars.dev/api/embed?repo=NanmiCoder%2Fcc-haha&theme=ocean" />
|
|
||||||
</a>
|
|
||||||
|
Before Width: | Height: | Size: 3.7 MiB |
|
Before Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 34 KiB |
|
Before Width: | Height: | Size: 19 KiB |
|
Before Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 27 KiB |
|
Before Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 22 KiB |
|
Before Width: | Height: | Size: 44 KiB |
|
Before Width: | Height: | Size: 66 KiB |
|
Before Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 34 KiB |
|
Before Width: | Height: | Size: 19 KiB |
|
Before Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 27 KiB |
|
Before Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 22 KiB |
|
Before Width: | Height: | Size: 44 KiB |
|
Before Width: | Height: | Size: 66 KiB |
@@ -35,7 +35,7 @@ describe('evaluateChangePolicy', () => {
|
|||||||
'docs/index.md',
|
'docs/index.md',
|
||||||
'site/src/App.tsx',
|
'site/src/App.tsx',
|
||||||
'README.md',
|
'README.md',
|
||||||
'README.zh-CN.md',
|
'README.en.md',
|
||||||
])
|
])
|
||||||
|
|
||||||
expect(result.blocked).toBe(false)
|
expect(result.blocked).toBe(false)
|
||||||
|
|||||||
@@ -177,7 +177,7 @@ const policyExactPaths = new Set([
|
|||||||
|
|
||||||
const docsExactPaths = new Set([
|
const docsExactPaths = new Set([
|
||||||
'README.md',
|
'README.md',
|
||||||
'README.zh-CN.md',
|
'README.en.md',
|
||||||
'package.json',
|
'package.json',
|
||||||
'package-lock.json',
|
'package-lock.json',
|
||||||
'.github/workflows/deploy-docs.yml',
|
'.github/workflows/deploy-docs.yml',
|
||||||
|
|||||||
@@ -272,8 +272,8 @@ async function checkLocaleRedirect() {
|
|||||||
async function main() {
|
async function main() {
|
||||||
const { records } = await generateDocsManifest()
|
const { records } = await generateDocsManifest()
|
||||||
const readmes = await Promise.all([
|
const readmes = await Promise.all([
|
||||||
{ locale: 'en', sourcePath: 'README.md' },
|
{ locale: 'en', sourcePath: 'README.en.md' },
|
||||||
{ locale: 'zh', sourcePath: 'README.zh-CN.md' }
|
{ locale: 'zh', sourcePath: 'README.md' }
|
||||||
].map(async (readme) => {
|
].map(async (readme) => {
|
||||||
const absolutePath = path.join(paths.repoDir, readme.sourcePath)
|
const absolutePath = path.join(paths.repoDir, readme.sourcePath)
|
||||||
return {
|
return {
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ Updated 2026-09-26. The user explicitly supplied the video and requested this ar
|
|||||||
- `quiet-landscape.webp`: original image generated with the built-in imagegen tool, optimized to WebP. Used behind the feature gallery, onboarding and closing sections.
|
- `quiet-landscape.webp`: original image generated with the built-in imagegen tool, optimized to WebP. Used behind the feature gallery, onboarding and closing sections.
|
||||||
- `quiet-moments.webp`: original image generated with the built-in imagegen tool, optimized to 900px WebP. Editorial still life beside the task examples.
|
- `quiet-moments.webp`: original image generated with the built-in imagegen tool, optimized to 900px WebP. Editorial still life beside the task examples.
|
||||||
- `project-session.png`: the exact 3456×2168 PNG supplied by the user on 2026-09-26. The user explicitly requested displaying the real project and session list without masking. Copied unchanged; no cropping, redaction, or reconstruction. Used for the landing page's code tab in both locales and its full-size preview.
|
- `project-session.png`: the exact 3456×2168 PNG supplied by the user on 2026-09-26. The user explicitly requested displaying the real project and session list without masking. Copied unchanged; no cropping, redaction, or reconstruction. Used for the landing page's code tab in both locales and its full-size preview.
|
||||||
- Product screenshots under `docs/images/app`: refreshed on 2026-09-27 from the installed application and its H5 interface, showing the user's actual project and sessions. Native captures use the user-authorized macOS `screencapture` window capture to exclude virtual cursor overlays. The Computer Use screenshot comes from the user's original attachment. Chinese and English documentation share these real Chinese-interface captures; there are no reconstructed session lists. Desktop WebP exports are 2000px wide, mobile captures 1206px, README thumbnails 800px. All preserve the full frame and intrinsic aspect ratio. Credential and pairing sections are kept outside the captured viewport. Permission approval and floating-pet demo images were retired because those states were not active; the docs instead show the real permission menu and pet-creation dialog.
|
- Product screenshots under `docs/images/app`: refreshed on 2026-09-27 from the installed application and its H5 interface, showing the user's actual project and sessions. Native captures use the user-authorized macOS `screencapture` window capture to exclude virtual cursor overlays. The Computer Use screenshot comes from the user's original attachment. Chinese and English documentation share these real Chinese-interface captures; there are no reconstructed session lists. Desktop WebP exports are 2000px wide, mobile captures 1206px. All preserve the full frame and intrinsic aspect ratio. Credential and pairing sections are kept outside the captured viewport. Permission approval and floating-pet demo images were retired because those states were not active; the docs instead show the real permission menu and pet-creation dialog.
|
||||||
|
|
||||||
## Landscape generation prompt
|
## Landscape generation prompt
|
||||||
|
|
||||||
|
|||||||