sintbot 1.3.0 → 1.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/CHANGELOG.en.json +50 -0
  2. package/CHANGELOG.json +50 -0
  3. package/README.md +138 -20
  4. package/README.zh-CN.md +144 -20
  5. package/assets/design-styles/acid-pop.md +155 -0
  6. package/assets/design-styles/archive-index.md +161 -0
  7. package/assets/design-styles/art-deco.md +164 -0
  8. package/assets/design-styles/cinematic-noir.md +178 -0
  9. package/assets/design-styles/editorial.md +121 -0
  10. package/assets/design-styles/geometric-pop.md +122 -0
  11. package/assets/design-styles/hand-drawn.md +117 -0
  12. package/assets/design-styles/islamic-geometry.md +155 -0
  13. package/assets/design-styles/liquid-glass.md +183 -0
  14. package/assets/design-styles/neo-chinese.md +136 -0
  15. package/assets/design-styles/precision-mono.md +156 -0
  16. package/assets/design-styles/quiet-luxury.md +163 -0
  17. package/assets/design-styles/riso-print.md +116 -0
  18. package/assets/design-styles/soft-friendly.md +174 -0
  19. package/assets/design-styles/swiss-grid.md +156 -0
  20. package/assets/design-styles/tech-dark.md +182 -0
  21. package/bin/sintbot-v2.js +291 -263
  22. package/docs/AI-ASSISTED-INSTALL.md +8 -8
  23. package/docs/install.md +80 -48
  24. package/docs/zh-CN/AI-ASSISTED-INSTALL.md +8 -8
  25. package/docs/zh-CN/install.md +80 -48
  26. package/install.sh +34 -81
  27. package/package.json +60 -5
  28. package/src/agent/claudecode.js +32 -3
  29. package/src/agent/claudemodels.js +60 -0
  30. package/src/agent/claudestatus.js +74 -0
  31. package/src/agent/claudeusage.js +200 -0
  32. package/src/agent/codexapp.js +21 -4
  33. package/src/agent/codexcode.js +8 -3
  34. package/src/agent/codexstatus.js +181 -0
  35. package/src/agent/privatecore.js +1 -1
  36. package/src/agent/privatecore.wasm +0 -0
  37. package/src/c2configcontrol.js +214 -0
  38. package/src/c2console.js +149 -0
  39. package/src/c2incident.js +125 -0
  40. package/src/c2install.js +247 -37
  41. package/src/c2migration.js +100 -0
  42. package/src/c2multigroupcapacity.js +103 -0
  43. package/src/c2multigroupservice.js +418 -0
  44. package/src/cdp.js +254 -0
  45. package/src/config.js +13 -2
  46. package/src/core/c2durablejournal.js +26 -9
  47. package/src/core/c2durableruntime.js +104 -1
  48. package/src/core/c2inputrejection.js +45 -0
  49. package/src/core/c2localeffectexecutor.js +12 -1
  50. package/src/core/c2payloadhandles.js +11 -0
  51. package/src/core/c2persistrelation.js +20 -0
  52. package/src/core/c2persiststate.js +28 -2
  53. package/src/core/c2platformrecoverysender.js +1 -1
  54. package/src/core/c2sourcequarantine.js +56 -1
  55. package/src/core/c2terminalprune.js +2 -1
  56. package/src/core/engineslotsadapter.js +108 -0
  57. package/src/core/issues.js +185 -0
  58. package/src/core/ledger.js +30 -0
  59. package/src/core/proxy.js +424 -0
  60. package/src/core/store.js +12 -0
  61. package/src/core/v2engine.js +427 -31
  62. package/src/design.js +5161 -0
  63. package/src/gitrepo.js +150 -0
  64. package/src/leftover.js +174 -0
  65. package/src/platform/slack.js +1294 -0
  66. package/src/platform/wecom.js +961 -0
  67. package/src/platform/wecomcli.js +128 -0
  68. package/src/platform/wecomname.js +43 -0
  69. package/src/platform/wecompoll.js +241 -0
  70. package/src/preview.js +581 -0
  71. package/src/projectmemory.js +175 -0
  72. package/src/ui/auth.js +31 -0
  73. package/src/ui/browser.html +392 -0
  74. package/src/ui/browserroutes.js +234 -0
  75. package/src/ui/console.html +5719 -0
  76. package/src/ui/dashboard.js +168 -0
  77. package/src/ui/feishulogin.js +136 -0
  78. package/src/ui/serverbase.js +2371 -0
  79. package/src/ui/sessions.js +78 -0
  80. package/src/ui/takeover.js +108 -0
  81. package/src/usage.js +144 -0
package/CHANGELOG.en.json CHANGED
@@ -1,4 +1,54 @@
1
1
  [
2
+ {
3
+ "version": "1.4.1",
4
+ "date": "2026-11-09",
5
+ "name": "A failing group stops only itself",
6
+ "items": [
7
+ {
8
+ "t": "One group's fault leaves the others working",
9
+ "d": "When a group's last task has an outcome that cannot be confirmed (for example a reply whose delivery is unknown, or a runner that exited without a result), only that group is paused; nothing is replayed or retried and the other groups keep working. A paused group answers new messages with a short notice."
10
+ },
11
+ {
12
+ "t": "One group no longer blocks startup",
13
+ "d": "If a group's records cannot be recovered, the other groups still start and the console marks that group Needs attention. The startup preflight fails and lists such groups."
14
+ },
15
+ {
16
+ "t": "Incident seal command",
17
+ "d": "Restart first; for a group that is still paused, stop the service and run sintbot incident seal --group <group ID>. The old records are kept unchanged, the group reopens with new records, and messages left unfinished before the seal are not processed again."
18
+ }
19
+ ]
20
+ },
21
+ {
22
+ "version": "1.4.0",
23
+ "date": "2026-11-08",
24
+ "name": "Multiple groups, Claude Code and chat commands",
25
+ "items": [
26
+ {
27
+ "t": "One app serves several groups",
28
+ "d": "One Feishu app can bind 1–32 groups, each to a local project with its own records; a concurrency limit caps simultaneous tasks."
29
+ },
30
+ {
31
+ "t": "Codex or Claude Code per group",
32
+ "d": "Each group chooses its runner and model. Send /model to list or switch; a switch happens only while that group is idle and starts a new conversation."
33
+ },
34
+ {
35
+ "t": "Chat commands",
36
+ "d": "Adds /help, /status, /new, /hud and /issue for status, quota and usage, a new conversation and feedback. An unsupported command gets a one-line notice and never stops the service."
37
+ },
38
+ {
39
+ "t": "Reply cards update while working",
40
+ "d": "The card appears once the model starts answering and refreshes with progress."
41
+ },
42
+ {
43
+ "t": "Local console",
44
+ "d": "Start with --ui to see every group, stop tasks, bind new groups, switch the model or project of an idle group, and handle feedback."
45
+ },
46
+ {
47
+ "t": "A failure stays in its group",
48
+ "d": "When a turn returns a model error or no result, only that group is asked to resend, with no automatic retry; other groups keep working. Groups added to the configuration are registered at restart."
49
+ }
50
+ ]
51
+ },
2
52
  {
3
53
  "version": "1.3.0",
4
54
  "date": "2026-11-08",
package/CHANGELOG.json CHANGED
@@ -1,4 +1,54 @@
1
1
  [
2
+ {
3
+ "version": "1.4.1",
4
+ "date": "2026-11-09",
5
+ "name": "一个群出问题,只停这个群",
6
+ "items": [
7
+ {
8
+ "t": "一个群出问题,其他群照常",
9
+ "d": "某个群上一个任务的结果无法确认时(例如回复是否送达不明,或执行器退出时没有结果),只暂停这个群,不重放、不重试,其他群继续处理。暂停的群收到新消息会回一句说明。"
10
+ },
11
+ {
12
+ "t": "启动时不再被一个群拖住",
13
+ "d": "某个群的记录恢复不了时,其他群照常启动,控制台把这个群标为「需要处理」。启动预检遇到这样的群会直接失败并列出原因。"
14
+ },
15
+ {
16
+ "t": "新增封存命令",
17
+ "d": "先重启服务;仍然暂停的群,在服务停止后运行 sintbot incident seal --group 群 ID。原记录原样封存,这个群换一份新记录重新开放,封存前未完成的消息不会再处理。"
18
+ }
19
+ ]
20
+ },
21
+ {
22
+ "version": "1.4.0",
23
+ "date": "2026-11-08",
24
+ "name": "多群、Claude Code 与群内命令",
25
+ "items": [
26
+ {
27
+ "t": "一个应用服务多个群",
28
+ "d": "同一个飞书应用可绑定 1–32 个群,每个群对应一个本地项目,各自记录、互不影响;同时运行的任务数可设上限。"
29
+ },
30
+ {
31
+ "t": "每个群可选 Codex 或 Claude Code",
32
+ "d": "按群选择执行器和模型;群里发 /model 查看或切换,切换只在本群空闲时进行,并开始新的一段对话。"
33
+ },
34
+ {
35
+ "t": "群内命令",
36
+ "d": "新增 /help、/status、/new、/hud、/issue,查看状态、额度与用量,开始新对话,记下反馈;不支持的命令只回一句提示,不再中断服务。"
37
+ },
38
+ {
39
+ "t": "回复卡片边做边更新",
40
+ "d": "模型开始输出后卡片就出现,并随进度刷新。"
41
+ },
42
+ {
43
+ "t": "本机控制台",
44
+ "d": "带 --ui 启动后可查看各群状态、停止任务、绑定新群、切换空闲群的模型或项目目录、处理群内反馈。"
45
+ },
46
+ {
47
+ "t": "出错只影响当前群",
48
+ "d": "某一轮模型报错或没有结果时,只在本群提示重新发送,不自动重试,其他群照常;新加的群在重启时自动登记。"
49
+ }
50
+ ]
51
+ },
2
52
  {
3
53
  "version": "1.3.0",
4
54
  "date": "2026-11-08",
package/README.md CHANGED
@@ -1,41 +1,159 @@
1
- # SintBot
1
+ <p align="center">
2
+ <a href="https://sintbot.com"><picture><source srcset="https://raw.githubusercontent.com/sintlab/sintbot/main/docs/assets/hero.svg" type="image/svg+xml"><img src="https://raw.githubusercontent.com/sintlab/sintbot/main/docs/assets/banner.png" alt="SintBot — the group-project AI daemon, running on your own machine" width="880"></picture></a>
3
+ </p>
2
4
 
3
- [简体中文](./README.zh-CN.md) · [Install](./docs/install.md) · [Website](https://sintbot.com)
5
+ <p align="center"><b>Say it in the group. Any model, one memory. On your own machine.</b></p>
4
6
 
5
- SintBot runs a coding agent on your Mac from a Feishu group. Bind **one group to one local project**, send a request, and receive progress and the final reply in that group.
7
+ <p align="center">
8
+ <a href="https://www.npmjs.com/package/sintbot"><img src="https://img.shields.io/npm/v/sintbot?style=flat-square&color=d68f44" alt="npm version"></a>
9
+ <a href="https://github.com/sintlab/sintbot/actions/workflows/test.yml"><img src="https://img.shields.io/github/actions/workflow/status/sintlab/sintbot/test.yml?branch=main&style=flat-square&label=tests" alt="tests"></a>
10
+ <img src="https://img.shields.io/node/v/sintbot?style=flat-square" alt="node version">
11
+ <a href="./LICENSE"><img src="https://img.shields.io/badge/license-PolyForm%20Shield-blue?style=flat-square" alt="PolyForm Shield license"></a>
12
+ </p>
6
13
 
7
- ## Version 1.3.0
14
+ <p align="center">
15
+ <a href="https://sintbot.com">Website</a> ·
16
+ <a href="./README.zh-CN.md">简体中文</a> ·
17
+ <a href="./docs/install.md">Install guide</a> ·
18
+ <a href="https://github.com/sintlab/sintbot/releases">Releases</a>
19
+ </p>
8
20
 
9
- This first built-in-core release supports **macOS, Node.js 22 or newer, one Feishu group and Codex message turns**. You need a working local Codex installation and login, plus a Feishu custom app. Model usage follows your Codex account's terms and limits.
21
+ ---
10
22
 
11
- The application runs in the foreground. Keep its terminal open; stop it with Ctrl-C and wait for shutdown to finish. This release does not install an automatic background service.
23
+ SintBot is a self-hosted daemon that puts a coding agent in your team's group chat. You bind a group to a project directory, and then anyone in that group can hand it work. It reads and changes code, designs, runs scripts and reports back, all on your own machine.
12
24
 
13
- Multiple groups, Claude and other model routes, Slack, WeCom, international Lark, the management console, scheduled tasks, terminal chat, busy-turn steering and whiteboards are outside this release's supported scope. Existing installations using those features should keep their current version. Support will expand in subsequent releases.
25
+ SintBot uses **Claude Code** and **Codex** as agent runners, with tools, MCP servers, skills and project instructions. Each group chooses its runner and model: Claude through Claude Code, GPT through Codex, or GLM, MiniMax, DeepSeek and other compatible endpoints through Claude Code.
14
26
 
15
- ## Install and connect
27
+ SintBot is distributed under the [PolyForm Shield License 1.0.0](./LICENSE).
16
28
 
17
- Follow the [installation guide](./docs/install.md) to install the exact version into a separate directory, configure one group, initialize a new receipt journal and start the bot. The installer leaves existing installations and services in place.
29
+ ## How it works
30
+
31
+ <p align="center"><img src="https://raw.githubusercontent.com/sintlab/sintbot/main/docs/assets/how-it-works.svg" alt="Group (Slack, Feishu or WeCom) → SintBot on your machine → Claude Code or Codex in the project directory → the model chosen for that group; progress and results flow back to the group" width="880"></p>
32
+
33
+ - **One group, one project.** Each group gets its own project directory, session, queue, permissions and scheduled tasks.
34
+ - **Same agent, any brain.** Switch models with `/model` in the chat. Project files and shared notes in `CLAUDE.md` and `AGENTS.md` carry over. Switching starts a new conversation; save important decisions in the project first.
35
+ - **Stays on your machine.** Projects, sessions, memory and logs live on your disk and never pass through a SintBot server. Prompts and the code the model reads still go to the provider you chose.
36
+ - **No public IP.** Every platform uses an outbound long connection (Socket Mode on Slack). One daemon can serve Slack, Feishu and WeCom at the same time.
37
+
38
+ ## Quick start
39
+
40
+ **1. Install** on macOS with Node.js 22 or newer:
18
41
 
19
42
  ```bash
20
- curl -fsSL https://sintbot.com/install.sh -o /tmp/sintbot-install.sh
21
- bash /tmp/sintbot-install.sh --dry-run
22
- bash /tmp/sintbot-install.sh
43
+ curl -fsSL https://sintbot.com/install.sh | bash
23
44
  ```
24
45
 
25
- The installer installs the package only. It does not authenticate Codex, collect credentials, connect the group or start a service. An [AI-assisted installation guide](./docs/AI-ASSISTED-INSTALL.md) covers the same steps.
46
+ The script checks the environment, installs SintBot and verifies the result, without `sudo`. You can read [install.sh](./install.sh) before running it. Installation does not sign in to a model account, connect a group or start a service.
47
+
48
+ **2. Connect your group and project.** Follow the [installation guide](https://sintbot.com/guide/install/) to prepare Codex or Claude Code, connect a Feishu app and bind the group to a local project. The guide covers the currently distributed package, its configuration and startup steps.
49
+
50
+ Installing with an AI assistant? Use the [AI-assisted install and first-use guide](./docs/AI-ASSISTED-INSTALL.md).
51
+
52
+ **3. @ the bot in your group.** Start with a read-only request: “Read the first line of this project's README and reply with that line.” Then try a concrete task, such as investigating a bug or reviewing a page. See the [usage guide](https://sintbot.com/guide/usage/) for examples.
53
+
54
+ ### Pick a model: no single provider required
55
+
56
+ The runner handles tools and project work; the model handles reasoning and generation. They are separate choices:
57
+
58
+ | Runner | Models and providers |
59
+ |---|---|
60
+ | **Claude Code** | Claude, or GLM, MiniMax, DeepSeek and other Anthropic-compatible endpoints |
61
+ | **Codex** | GPT models available through your configured Codex account |
62
+
63
+ Choose a model for each project and keep durable context in shared project notes. Account requirements, available models and usage limits follow the provider you choose. See [models on the website](https://sintbot.com/#models) for the product overview and the installation guide for setup.
64
+
65
+ ## What you get
66
+
67
+ | Area | What it does |
68
+ |---|---|
69
+ | **In the group** | Send tasks, reference images and files in Feishu, Slack or WeCom. Follow progress and receive results in the same project group. |
70
+ | **Commands** | Check status, switch models, stop work or start a fresh conversation from the group. See the [usage guide](https://sintbot.com/guide/usage/). |
71
+ | **Permissions** | Set permissions per group: read-only, developer or full trust. Configure allowed tools, mask secrets in outgoing messages and choose how personal data is handled. |
72
+ | **Scheduled tasks** | Cron, aliases such as `daily`, or plain “every day at 09:00”. A task can wake the agent, post a reminder or run a script, once or on a schedule. |
73
+ | **Design** | Work from an existing project style, extract one from references or choose a style preset. Save it in `DESIGN.md`, and iterate through annotations on Feishu whiteboards. |
74
+ | **Images** | Generate images, edit existing artwork, repaint a masked region or produce a transparent background. |
75
+ | **Previews & browser** | Share interactive HTML prototypes with the team. When a browser task needs sign-in or verification, a group member takes over through a one-time link. |
76
+ | **Console** | One local page for groups, projects, models, permissions, plugins, previews, running tasks, queues and live activity. Available in English or Chinese. |
77
+ | **Operations** | Manage task limits and concurrency, follow failures and check progress from the console. Preserve task state when investigating an interrupted run. |
78
+
79
+ ## Everyday use
80
+
81
+ Give the agent a concrete task in the group, just as you would in the terminal:
82
+
83
+ - “Find the cause of this error and explain it before changing files.”
84
+ - “Adjust the homepage for mobile. Keep the current visual style.”
85
+ - “Review this change and report any regressions.”
86
+ - “Save the decisions and next steps in the project's shared notes.”
87
+
88
+ The [usage guide](https://sintbot.com/guide/usage/) covers group workflows; the [installation guide](./docs/install.md) contains the executable commands and configuration for the package you install.
89
+
90
+ ## Installation details
91
+
92
+ This README introduces SintBot's overall product workflow. For installation requirements, supported setup and exact startup instructions, use the [installation guide](./docs/install.md); for release changes, see [Releases](https://github.com/sintlab/sintbot/releases).
93
+
94
+ “Feishu” means the China edition (open.feishu.cn); international Lark uses a separate platform.
95
+
96
+ ## Security
97
+
98
+ - The bot **executes commands** on the machine running it. Start with read-only permissions and grant broader access only to groups you trust. A bound project directory is not a shell sandbox.
99
+ - Project files, configuration, shared notes and task state stay on your machine. Chat platforms receive messages and replies; model input goes to the provider you choose. Local execution does not mean offline execution.
100
+ - Keep credentials out of group messages and repositories. Configure authentication before exposing a management console beyond the local machine.
101
+ - Check your model provider's account and team-use terms. If a task's outcome is uncertain, preserve its state and investigate before resending it. Recovery guidance is in the [installation guide](./docs/install.md).
102
+
103
+ ## FAQ
104
+
105
+ <details>
106
+ <summary><b>Do I need a Claude subscription?</b></summary>
107
+
108
+ No. Claude Code can use compatible model providers such as GLM, MiniMax and DeepSeek; Codex provides the GPT route. Follow the installation guide for the currently distributed setup and the chosen provider’s account requirements.
109
+ </details>
110
+
111
+ <details>
112
+ <summary><b>Can I use it in mainland China?</b></summary>
113
+
114
+ Feishu and providers such as DeepSeek, GLM and MiniMax offer mainland services. Choose the appropriate regional endpoint and check that the machine can reach your chat platform and model provider. The [Chinese website](https://sintbot.com/zh/) has the product introduction and installation instructions.
115
+ </details>
116
+
117
+ <details>
118
+ <summary><b>Do I need a server or a public IP?</b></summary>
119
+
120
+ No. SintBot runs on a computer you keep on; a Mac is the tested setup. It only makes outbound connections: Socket Mode for Slack, a WebSocket long connection for Feishu and a long connection for WeCom. The console stays local unless you open it.
121
+ </details>
122
+
123
+ <details>
124
+ <summary><b>Does switching models lose the project's memory?</b></summary>
125
+
126
+ A switch starts a fresh conversation. Project files and saved shared notes in `CLAUDE.md` and `AGENTS.md` remain available, but the full chat transcript and an agent's private memory are not automatically shared. Save important decisions in the project before switching.
127
+ </details>
128
+
129
+ <details>
130
+ <summary><b>How is it different from cc-bot?</b></summary>
131
+
132
+ Both are free. [cc-bot](https://github.com/WaterTian/cc-bot) is a Claude Code plugin: it runs inside your own interactive session, on that session's model. SintBot is a standalone daemon: each group has its own project, model and permissions, with Claude Code and Codex routes and a local console. Follow the installation guide for how to run the installed package.
133
+ </details>
134
+
135
+ ## Documentation
26
136
 
27
- ## First task
137
+ | Topic | Docs |
138
+ |---|---|
139
+ | Getting started | [Website install guide](https://sintbot.com/guide/install/) · [Repository install guide](./docs/install.md) · [AI-assisted install](./docs/AI-ASSISTED-INSTALL.md) |
140
+ | Product and workflows | [Features](https://sintbot.com/#features) · [Models](https://sintbot.com/#models) · [Usage guide](https://sintbot.com/guide/usage/) |
141
+ | Project | [Contributing](./CONTRIBUTING.md) · [Security](./SECURITY.md) · [Changelog](./CHANGELOG.en.json) · [Releases](https://github.com/sintlab/sintbot/releases) |
28
142
 
29
- Start with a read-only request in your configured group, for example: “Read the first line of this project's README and reply with that line.” Check the answer against the local file, stop the foreground process cleanly, then start it again. A successful package install alone does not verify the group connection or a model turn.
143
+ ## Feedback
30
144
 
31
- ## Data and recovery
145
+ Please report bugs and request features in [GitHub Issues](https://github.com/sintlab/sintbot/issues). Include the following, with secrets redacted:
32
146
 
33
- Project files, configuration and persistent receipts remain on your Mac. Feishu receives messages and replies, and Codex sends model input to its configured provider. Read-only is the recommended initial permission level; granting full access allows the agent to change files and execute commands.
147
+ - the installed version and your OS
148
+ - your chat platform and agent runner
149
+ - reproduction steps, the expected result and what happened
150
+ - relevant error output, with credentials and private project data removed
34
151
 
35
- If startup reports unresolved receipts or uncertain external effects, preserve the state and investigate. Do not delete the journal, clear receipts or resend the task merely to get past startup: the prior request may already have executed. Existing multi-group state is not automatically migrated by 1.3.0.
152
+ Report security issues privately through [GitHub Security Advisories](https://github.com/sintlab/sintbot/security/advisories/new); see [SECURITY.md](./SECURITY.md).
36
153
 
37
154
  ## License
38
155
 
39
- SintBot is distributed under [PolyForm Shield 1.0.0](./LICENSE). The package includes a built-in core. Use of the software is covered by the included license. Dependency notices are in [THIRD-PARTY-NOTICES.md](./THIRD-PARTY-NOTICES.md).
156
+ SintBot is distributed under the [PolyForm Shield License 1.0.0](./LICENSE) © WaterTian. The package includes a built-in core. The license text governs. Dependency notices are in [THIRD-PARTY-NOTICES.md](./THIRD-PARTY-NOTICES.md).
40
157
 
41
- Author: **WaterTian**.
158
+ - You may use, modify and run it for yourself, your team or your company.
159
+ - You may not use it to offer a product that competes with SintBot, paid or free.
package/README.zh-CN.md CHANGED
@@ -1,41 +1,165 @@
1
- # SintBot
1
+ <p align="center">
2
+ <a href="https://sintbot.com/zh/"><picture><source srcset="https://raw.githubusercontent.com/sintlab/sintbot/main/docs/assets/hero-zh.svg" type="image/svg+xml"><img src="https://raw.githubusercontent.com/sintlab/sintbot/main/docs/assets/banner-zh.png" alt="SintBot —— 群项目 AI 守护进程,跑在你自己的机器上" width="880"></picture></a>
3
+ </p>
2
4
 
3
- [English](./README.md) · [安装指南](./docs/zh-CN/install.md) · [官网](https://sintbot.com)
5
+ <p align="center"><b>一群一项目,一句话就开工;模型随时换,记忆不丢;全程在你自己的机器上。</b></p>
4
6
 
5
- SintBot 让你在飞书群里驱动 Mac 上的编码助手。**一个群绑定一个本机项目**,发出任务后,过程与最终回复回到同一个群里。
7
+ <p align="center">
8
+ <a href="https://www.npmjs.com/package/sintbot"><img src="https://img.shields.io/npm/v/sintbot?style=flat-square&color=d68f44" alt="npm 版本"></a>
9
+ <a href="https://github.com/sintlab/sintbot/actions/workflows/test.yml"><img src="https://img.shields.io/github/actions/workflow/status/sintlab/sintbot/test.yml?branch=main&style=flat-square&label=tests" alt="测试"></a>
10
+ <img src="https://img.shields.io/node/v/sintbot?style=flat-square" alt="Node 版本">
11
+ <a href="./LICENSE"><img src="https://img.shields.io/badge/license-PolyForm%20Shield-blue?style=flat-square" alt="PolyForm Shield 许可"></a>
12
+ </p>
6
13
 
7
- ## 1.3.0 版本
14
+ <p align="center">
15
+ <a href="https://sintbot.com/zh/">官网</a> ·
16
+ <a href="./README.md">English</a> ·
17
+ <a href="./docs/zh-CN/install.md">安装说明</a> ·
18
+ <a href="https://github.com/sintlab/sintbot/releases">版本发布</a>
19
+ </p>
8
20
 
9
- 首个内置核心版本支持 **macOS、Node.js 22 及以上、一个飞书群和 Codex 消息轮次**。需要本机已安装并登录的 Codex,以及一个飞书企业自建应用。模型使用遵循你的 Codex 账号条款与额度。
21
+ ---
10
22
 
11
- 程序以前台方式运行,需要保持终端开启;按 Ctrl-C 后等待退出。本版不安装自动后台服务。
23
+ SintBot 是一个跑在你自己机器上的守护进程,把能写代码的 AI 放进团队的聊天群。一个群绑一个项目目录,群里谁都能派活。它会读代码、改代码、做设计、跑脚本、回报结果,全程在你自己的机器上。
12
24
 
13
- 多群、Claude 及其他模型通道、Slack、企业微信、国际版 Lark、管理控制台、定时任务、终端聊天、忙时跟进和画布不在本版支持范围。已经使用这些能力的安装应保留当前版本,后续版本再逐步扩展支持。
25
+ SintBot 通过 **Claude Code** 或 **Codex** 执行项目任务,接入工具、MCP、skills 和项目说明。执行器与模型按群选择:Claude Code 可使用 Claude,也可接 GLM、MiniMax、DeepSeek 等兼容服务;Codex 对应 GPT 模型。
14
26
 
15
- ## 安装与接入
27
+ SintBot 按 [PolyForm Shield 1.0.0 许可](./LICENSE) 分发。
16
28
 
17
- 按[安装指南](./docs/zh-CN/install.md)把精确版本装到独立目录,配置一个群,初始化全新收据日志,再启动机器人。安装器保留已有安装和服务。
29
+ ## 怎么跑
30
+
31
+ <p align="center"><img src="https://raw.githubusercontent.com/sintlab/sintbot/main/docs/assets/how-it-works-zh.svg" alt="群(飞书、Slack 或企业微信)→ 你机器上的 SintBot → 项目目录里的 Claude Code 或 Codex → 这个群选的模型;进度与结果回到群里" width="880"></p>
32
+
33
+ - **一群一项目。** 每个群各有自己的项目目录、会话、排队、权限和定时任务。
34
+ - **同一套 agent,任意大脑。** 群里发 `/model` 就能换模型。项目文件及 `CLAUDE.md`、`AGENTS.md` 中的共享记录可以延续。换模型会开新对话,重要决定先写进项目。
35
+ - **数据留在本机。** 项目、会话、记忆、日志都在你自己的硬盘上,不经过任何 SintBot 服务器。提示词和模型读到的代码照常发给你选的模型服务商。
36
+ - **不要公网 IP。** 每个平台都是机器主动往外连的长连接(Slack 用 Socket Mode)。一个守护进程可以同时接飞书、Slack、企业微信。
37
+
38
+ ## 快速开始
39
+
40
+ **1. 安装**,需要 macOS 和 Node.js 22 及以上:
18
41
 
19
42
  ```bash
20
- curl -fsSL https://sintbot.com/install.sh -o /tmp/sintbot-install.sh
21
- bash /tmp/sintbot-install.sh --dry-run
22
- bash /tmp/sintbot-install.sh
43
+ curl -fsSL https://sintbot.com/install.sh | bash
23
44
  ```
24
45
 
25
- 安装器只安装程序包,不登录 Codex、不收集凭据、不连接群,也不启动服务。也可以按 [AI 辅助安装指南](./docs/zh-CN/AI-ASSISTED-INSTALL.md)完成这些步骤。
46
+ 脚本会检查环境、安装 SintBot 并验证结果,不用 `sudo`。也可以先读 [install.sh](./install.sh)。安装本身不登录模型账号、不连接群,也不启动服务。
47
+
48
+ **2. 接入群和项目。** 按[安装指南](https://sintbot.com/zh/guide/install/)准备 Codex 或 Claude Code、连接飞书应用,并把群绑定到本机项目目录。当前安装包的配置与启动步骤以指南为准。
49
+
50
+ 想让本机 AI 助手帮忙安装并完成首次使用?先看 [AI 安装与首次使用说明](./docs/zh-CN/AI-ASSISTED-INSTALL.md)。
51
+
52
+ **3. 在群里 @ 机器人。** 先发一条只读请求:“读取这个项目 README 的第一行,只回复这一行。”再尝试排查问题、检查页面等具体任务,更多示例见[使用说明](https://sintbot.com/zh/guide/usage/)。
53
+
54
+ ### 选模型:不绑定单一服务商
55
+
56
+ 执行器负责调用工具、处理项目,模型负责理解与生成,两者分开选择:
57
+
58
+ | 执行器 | 模型与服务 |
59
+ |---|---|
60
+ | **Claude Code** | Claude,或 GLM、MiniMax、DeepSeek 等 Anthropic 兼容端点 |
61
+ | **Codex** | 通过已配置的 Codex 账号使用 GPT 模型 |
62
+
63
+ 按项目选择模型,把需要长期保留的上下文写进共享项目记录。账号要求、可用模型与额度以所选服务商为准。产品介绍见[官网模型说明](https://sintbot.com/zh/#models),实际接入步骤见安装指南。
64
+
65
+ ### 在中国大陆
66
+
67
+ - **聊天平台可选飞书。**
68
+ - **模型服务**可选 DeepSeek、智谱 GLM、MiniMax 等国内站点;按账号选择对应区域的端点,确认本机能访问所用平台和模型服务。
69
+ - **GitHub 打不开**:中文介绍、安装步骤和使用说明在[官网](https://sintbot.com/zh/)上都有。
70
+
71
+ ## 能做什么
72
+
73
+ | 方面 | 说明 |
74
+ |---|---|
75
+ | **群里** | 在飞书、Slack 或企业微信里发任务、参考图和文件,查看进度,在同一个项目群里接收结果。 |
76
+ | **命令** | 在群里查看状态、切换模型、停止任务或开启新对话,使用方式见[使用说明](https://sintbot.com/zh/guide/usage/)。 |
77
+ | **权限** | 按群选择只读、开发或全信任权限,配置允许的工具。消息发出前遮盖密钥,个人信息的处理方式按群设置。 |
78
+ | **定时任务** | cron、`daily` 这类别名,或直接写“每天 09:00”。到点可以叫醒 agent、只发提醒,或只跑一个脚本,支持一次性和周期任务。 |
79
+ | **设计** | 沿用现有项目风格,从参考素材提炼风格,或选择风格预设。保存为 `DESIGN.md`,在飞书画板上标注、迭代。 |
80
+ | **生图** | 生成图片、修改原图、遮罩局部重绘或输出透明底素材。 |
81
+ | **预览与浏览器** | 把可交互的 HTML 原型分享给团队。浏览器任务遇到登录或验证时,群成员通过一次性入口接管。 |
82
+ | **控制台** | 一个本地网页管理群、项目、模型、权限、插件、预览、运行任务、消息队列与实时活动,支持中英文。 |
83
+ | **运维** | 管理任务时限与并发,在控制台查看失败原因和任务进展;排查中断任务时保留现场状态。 |
84
+
85
+ ## 日常使用
86
+
87
+ 像在终端里一样,在群里交代具体任务:
88
+
89
+ - “找到这个报错的原因,先解释,再修改。”
90
+ - “调整首页手机布局,沿用现在的视觉风格。”
91
+ - “审查这次改动,指出可能引入的问题。”
92
+ - “把决定和下一步写进项目的共享记录。”
93
+
94
+ 群内工作方式见[使用说明](https://sintbot.com/zh/guide/usage/);当前安装包可执行的命令和配置见[安装指南](./docs/zh-CN/install.md)。
95
+
96
+ ## 安装说明
97
+
98
+ 本 README 介绍 SintBot 的整体产品与工作方式。安装环境、支持的接入方式及准确启动步骤见[安装指南](./docs/zh-CN/install.md),发行变更见[版本发布](https://github.com/sintlab/sintbot/releases)。
99
+
100
+ 这里的飞书指中国版(open.feishu.cn);国际版 Lark 使用另一套开放平台。
101
+
102
+ ## 安全须知
103
+
104
+ - 机器人能在运行它的机器上**执行命令**。先从只读权限开始,更高权限只给信任的群。绑定项目目录不等于为命令行提供沙箱。
105
+ - 项目文件、配置、共享记录和任务状态保存在本机。聊天平台接收消息与回复,模型输入发送到所选服务商;本机执行不等于离线运行。
106
+ - 不要把凭据发进群或提交到仓库。将管理控制台开放给本机以外的访问前,应配置身份验证。
107
+ - 团队使用前核对模型服务商的账号条款。任务结果不明确时,保留状态并查清后再重发,恢复说明见[安装指南](./docs/zh-CN/install.md)。
108
+
109
+ ## 常见问题
110
+
111
+ <details>
112
+ <summary><b>必须有 Claude 订阅吗?</b></summary>
113
+
114
+ 不需要绑定 Claude。Claude Code 可接入 GLM、MiniMax、DeepSeek 等兼容服务,Codex 对应 GPT 路线。当前安装包的接入方式按安装指南操作,账号要求以所选服务商为准。
115
+ </details>
116
+
117
+ <details>
118
+ <summary><b>在中国大陆能用吗?</b></summary>
119
+
120
+ 飞书及 DeepSeek、GLM、MiniMax 等服务有国内站点。按账号选择对应区域的端点,并确认本机能访问所用的聊天平台和模型服务。中文介绍与安装步骤也可以直接在官网查看。
121
+ </details>
122
+
123
+ <details>
124
+ <summary><b>需要服务器或公网 IP 吗?</b></summary>
125
+
126
+ 不需要。它跑在一台你一直开着的电脑上(Mac 是验证过的环境),只向外连接:飞书用 WebSocket 长连接,Slack 用 Socket Mode,企业微信用长连接。控制台默认只在本机,除非你自己选择开放。
127
+ </details>
128
+
129
+ <details>
130
+ <summary><b>换模型会丢掉项目记忆吗?</b></summary>
131
+
132
+ 换模型会开一段新对话,项目文件及 `CLAUDE.md`、`AGENTS.md` 中保存的共享记录仍然可用,但完整聊天记录和各执行器的私有记忆不会自动互通。需要延续的决定先写进项目。
133
+ </details>
134
+
135
+ <details>
136
+ <summary><b>它和 cc-bot 有什么区别?</b></summary>
137
+
138
+ 两者都免费。[cc-bot](https://github.com/WaterTian/cc-bot) 是 Claude Code 插件,运行在你自己的交互会话里,用的就是该会话的模型。SintBot 是独立的守护进程:每个群有自己的项目、模型和权限,提供 Claude Code、Codex 两条执行路线,并有本地控制台。当前安装包如何运行,以安装指南为准。
139
+ </details>
140
+
141
+ ## 文档
26
142
 
27
- ## 第一个任务
143
+ | 主题 | 文档 |
144
+ |---|---|
145
+ | 上手 | [官网安装指南](https://sintbot.com/zh/guide/install/) · [仓库安装指南](./docs/zh-CN/install.md) · [AI 辅助安装](./docs/zh-CN/AI-ASSISTED-INSTALL.md) |
146
+ | 产品与工作方式 | [功能介绍](https://sintbot.com/zh/#features) · [模型说明](https://sintbot.com/zh/#models) · [使用说明](https://sintbot.com/zh/guide/usage/) |
147
+ | 项目 | [参与开发](./CONTRIBUTING.zh-CN.md) · [安全](./SECURITY.zh-CN.md) · [更新日志](./CHANGELOG.json) · [版本发布](https://github.com/sintlab/sintbot/releases) |
28
148
 
29
- 先在配置的群里发一条只读请求,例如:“读取这个项目 README 的第一行,只回复这一行。”把回复和本地文件对照,正常停止前台进程,再启动一次。安装成功本身不代表群连接或模型轮次已经通过。
149
+ ## 反馈
30
150
 
31
- ## 数据与恢复
151
+ 碰到问题或想要新功能,请到 [GitHub Issues](https://github.com/sintlab/sintbot/issues) 提。请附上以下信息,贴之前先遮掉密钥:
32
152
 
33
- 项目文件、配置及持久收据保存在你的 Mac 上。飞书接收消息和回复,Codex 向它配置的模型服务发送输入。建议初次使用只读权限;授予完全访问后,助手可以修改文件、执行命令。
153
+ - 安装版本与操作系统
154
+ - 聊天平台与执行器
155
+ - 复现步骤、预期结果和实际情况
156
+ - 相关报错输出,去除凭据与私有项目数据
34
157
 
35
- 如果启动提示未结收据或外部效果不明,应保留状态并核对。不要为了启动而删除日志、清空收据或重发任务:之前的请求可能已经执行。1.3.0 不自动迁移已有多群状态。
158
+ 安全问题请通过 [GitHub 私密漏洞报告](https://github.com/sintlab/sintbot/security/advisories/new)私下提交,别发公开 issue,详见 [SECURITY.md](./SECURITY.zh-CN.md)。
36
159
 
37
160
  ## 许可
38
161
 
39
- SintBot 按 [PolyForm Shield 1.0.0](./LICENSE) 分发。安装包包含内置核心,软件使用适用随包许可;依赖声明见 [THIRD-PARTY-NOTICES.md](./THIRD-PARTY-NOTICES.md)。
162
+ SintBot 按 [PolyForm Shield 1.0.0 许可](./LICENSE) 分发,© WaterTian。安装包包含内置核心,准确边界以许可原文为准;依赖声明见 [THIRD-PARTY-NOTICES.md](./THIRD-PARTY-NOTICES.md)。
40
163
 
41
- 作者:**WaterTian**。
164
+ - 可以自己用、团队或公司内部用,也可以修改和运行。
165
+ - 不可以拿它做成与 SintBot 竞争的产品,收费、免费都不行。