kiki-agent-lite 0.3.1 → 0.3.2

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 (228) hide show
  1. package/README.md +13 -10
  2. package/dist/docs/en/configuration/config-files.md +63 -20
  3. package/dist/docs/en/configuration/data-locations.md +12 -4
  4. package/dist/docs/en/configuration/env-vars.md +4 -6
  5. package/dist/docs/en/configuration/overrides.md +13 -14
  6. package/dist/docs/en/configuration/providers.md +8 -6
  7. package/dist/docs/en/customization/agent-profiles.md +33 -38
  8. package/dist/docs/en/customization/agents.md +129 -107
  9. package/dist/docs/en/customization/hooks.md +41 -48
  10. package/dist/docs/en/customization/personas.md +19 -21
  11. package/dist/docs/en/customization/plugins.md +180 -156
  12. package/dist/docs/en/customization/prompt-fields.md +10 -6
  13. package/dist/docs/en/customization/skills.md +11 -13
  14. package/dist/docs/en/customization/skins.md +23 -27
  15. package/dist/docs/en/customization/themes.md +15 -15
  16. package/dist/docs/en/features/agents.md +85 -0
  17. package/dist/docs/en/features/daily.md +37 -7
  18. package/dist/docs/en/features/ecosystem.md +3 -1
  19. package/dist/docs/en/features/extend.md +7 -1
  20. package/dist/docs/en/features/freedom.md +4 -0
  21. package/dist/docs/en/features/index.md +6 -5
  22. package/dist/docs/en/features/long-work.md +23 -5
  23. package/dist/docs/en/features/look.md +1 -1
  24. package/dist/docs/en/features/people.md +10 -2
  25. package/dist/docs/en/features/spaces.md +16 -4
  26. package/dist/docs/en/features/workbench.md +11 -3
  27. package/dist/docs/en/getting-started/desktop-app.md +44 -29
  28. package/dist/docs/en/getting-started/first-launch.md +32 -21
  29. package/dist/docs/en/getting-started/installation.md +27 -12
  30. package/dist/docs/en/getting-started/use-cases.md +35 -35
  31. package/dist/docs/en/guides/goals.md +9 -7
  32. package/dist/docs/en/guides/interaction.md +26 -26
  33. package/dist/docs/en/guides/interface.md +18 -14
  34. package/dist/docs/en/guides/memory.md +43 -14
  35. package/dist/docs/en/guides/sessions.md +32 -26
  36. package/dist/docs/en/guides/settings.md +60 -29
  37. package/dist/docs/en/index.md +8 -2
  38. package/dist/docs/en/reference/command.md +8 -4
  39. package/dist/docs/en/reference/keyboard.md +18 -4
  40. package/dist/docs/en/reference/model-vocabulary.md +6 -8
  41. package/dist/docs/en/reference/slash-commands.md +4 -4
  42. package/dist/docs/en/reference/tools.md +92 -15
  43. package/dist/docs/en/release-notes/changelog.md +1 -9
  44. package/dist/docs/en/server/acp.md +1 -1
  45. package/dist/docs/en/server/ide.md +1 -1
  46. package/dist/docs/en/server/local-server.md +5 -5
  47. package/dist/docs/en/server/mcp.md +2 -2
  48. package/dist/docs/en/server/rest-api.md +79 -5
  49. package/dist/docs/en/server/sdk.md +2 -2
  50. package/dist/docs/zh/configuration/config-files.md +56 -15
  51. package/dist/docs/zh/configuration/data-locations.md +12 -4
  52. package/dist/docs/zh/configuration/env-vars.md +4 -6
  53. package/dist/docs/zh/configuration/overrides.md +13 -14
  54. package/dist/docs/zh/configuration/providers.md +7 -5
  55. package/dist/docs/zh/customization/agent-profiles.md +31 -36
  56. package/dist/docs/zh/customization/agents.md +120 -98
  57. package/dist/docs/zh/customization/hooks.md +35 -42
  58. package/dist/docs/zh/customization/personas.md +16 -18
  59. package/dist/docs/zh/customization/plugins.md +167 -142
  60. package/dist/docs/zh/customization/prompt-fields.md +9 -5
  61. package/dist/docs/zh/customization/skills.md +10 -12
  62. package/dist/docs/zh/customization/skins.md +19 -23
  63. package/dist/docs/zh/customization/themes.md +12 -12
  64. package/dist/docs/zh/features/agents.md +85 -0
  65. package/dist/docs/zh/features/daily.md +37 -7
  66. package/dist/docs/zh/features/ecosystem.md +3 -1
  67. package/dist/docs/zh/features/extend.md +7 -1
  68. package/dist/docs/zh/features/freedom.md +4 -0
  69. package/dist/docs/zh/features/index.md +6 -5
  70. package/dist/docs/zh/features/long-work.md +22 -4
  71. package/dist/docs/zh/features/look.md +1 -1
  72. package/dist/docs/zh/features/people.md +10 -2
  73. package/dist/docs/zh/features/spaces.md +15 -3
  74. package/dist/docs/zh/features/workbench.md +11 -3
  75. package/dist/docs/zh/getting-started/desktop-app.md +43 -28
  76. package/dist/docs/zh/getting-started/first-launch.md +32 -21
  77. package/dist/docs/zh/getting-started/installation.md +26 -11
  78. package/dist/docs/zh/getting-started/use-cases.md +35 -37
  79. package/dist/docs/zh/guides/goals.md +8 -8
  80. package/dist/docs/zh/guides/interaction.md +25 -25
  81. package/dist/docs/zh/guides/interface.md +18 -14
  82. package/dist/docs/zh/guides/memory.md +43 -14
  83. package/dist/docs/zh/guides/sessions.md +30 -24
  84. package/dist/docs/zh/guides/settings.md +54 -23
  85. package/dist/docs/zh/index.md +7 -1
  86. package/dist/docs/zh/reference/command.md +7 -3
  87. package/dist/docs/zh/reference/keyboard.md +18 -4
  88. package/dist/docs/zh/reference/model-vocabulary.md +6 -8
  89. package/dist/docs/zh/reference/slash-commands.md +3 -3
  90. package/dist/docs/zh/reference/tools.md +74 -9
  91. package/dist/docs/zh/release-notes/changelog.md +1 -9
  92. package/dist/docs/zh/server/acp.md +1 -1
  93. package/dist/docs/zh/server/ide.md +1 -1
  94. package/dist/docs/zh/server/local-server.md +5 -5
  95. package/dist/docs/zh/server/mcp.md +2 -2
  96. package/dist/docs/zh/server/rest-api.md +69 -1
  97. package/dist/docs/zh/server/sdk.md +2 -2
  98. package/dist/main.mjs +12545 -3456
  99. package/dist/web/assets/AppErrorBoundary-RFIAb-Uf.js +1 -0
  100. package/dist/web/assets/NavScopeBoundary-DY_ET7A-.js +1 -0
  101. package/dist/web/assets/{arc-y2SkSoyr.js → arc-CMgTB1m7.js} +1 -1
  102. package/dist/web/assets/{architectureDiagram-3BPJPVTR-uCwLz53m.js → architectureDiagram-3BPJPVTR-BU79ou2C.js} +1 -1
  103. package/dist/web/assets/{blockDiagram-GPEHLZMM-BZyWv36G.js → blockDiagram-GPEHLZMM-Bkuldod2.js} +1 -1
  104. package/dist/web/assets/{c4Diagram-AAUBKEIU-DKGx9i50.js → c4Diagram-AAUBKEIU-C3WMeqyu.js} +1 -1
  105. package/dist/web/assets/channel-DpDZUJRn.js +1 -0
  106. package/dist/web/assets/{chunk-2J33WTMH-CSkrhrsp.js → chunk-2J33WTMH-CesyWmwo.js} +1 -1
  107. package/dist/web/assets/{chunk-4BX2VUAB-CtxMoJ68.js → chunk-4BX2VUAB-C7rghYTf.js} +1 -1
  108. package/dist/web/assets/{chunk-55IACEB6-Dos3ftEy.js → chunk-55IACEB6-BqRHhwtz.js} +1 -1
  109. package/dist/web/assets/{chunk-727SXJPM-wbzEYK9z.js → chunk-727SXJPM-BhSqCRBc.js} +1 -1
  110. package/dist/web/assets/{chunk-AQP2D5EJ-B9GKvCD6.js → chunk-AQP2D5EJ-DdYE2ZVZ.js} +1 -1
  111. package/dist/web/assets/{chunk-FMBD7UC4-u5Y2P6IX.js → chunk-FMBD7UC4-BCRPUxDF.js} +1 -1
  112. package/dist/web/assets/{chunk-ND2GUHAM-B8rFKkTV.js → chunk-ND2GUHAM-CuvyDjTR.js} +1 -1
  113. package/dist/web/assets/{chunk-QZHKN3VN-EQsKtuD-.js → chunk-QZHKN3VN-BU5vAS78.js} +1 -1
  114. package/dist/web/assets/classDiagram-4FO5ZUOK-Bju1GfNu.js +1 -0
  115. package/dist/web/assets/classDiagram-v2-Q7XG4LA2-Bju1GfNu.js +1 -0
  116. package/dist/web/assets/client-C0oH7-8r.js +2 -0
  117. package/dist/web/assets/connection-BhO2nh7P.js +1 -0
  118. package/dist/web/assets/{cose-bilkent-S5V4N54A-D6dr5mIW.js → cose-bilkent-S5V4N54A-CXrvsA1a.js} +1 -1
  119. package/dist/web/assets/{dagre-BM42HDAG-Dnyhc4Hn.js → dagre-BM42HDAG-TaAea3Rt.js} +1 -1
  120. package/dist/web/assets/{diagram-2AECGRRQ-CYXkWdne.js → diagram-2AECGRRQ-CdEH4jGt.js} +1 -1
  121. package/dist/web/assets/{diagram-5GNKFQAL-DPwBf5Ag.js → diagram-5GNKFQAL-A0jZ_p-T.js} +1 -1
  122. package/dist/web/assets/{diagram-KO2AKTUF-DNeLYZ8X.js → diagram-KO2AKTUF-miHWORz3.js} +1 -1
  123. package/dist/web/assets/{diagram-LMA3HP47-zU8RsQTX.js → diagram-LMA3HP47-BlUIwEIg.js} +1 -1
  124. package/dist/web/assets/{diagram-OG6HWLK6-Cf9Mm94H.js → diagram-OG6HWLK6-DwDzMhEg.js} +1 -1
  125. package/dist/web/assets/{erDiagram-TEJ5UH35-Ch4CeiUI.js → erDiagram-TEJ5UH35-BJr5w62i.js} +1 -1
  126. package/dist/web/assets/export-BlxaZKEe.js +2 -0
  127. package/dist/web/assets/{flowDiagram-I6XJVG4X-Csn6WqEH.js → flowDiagram-I6XJVG4X-BP7KSFjx.js} +1 -1
  128. package/dist/web/assets/{ganttDiagram-6RSMTGT7-DsuBgEyu.js → ganttDiagram-6RSMTGT7-BstLBBof.js} +1 -1
  129. package/dist/web/assets/{gitGraphDiagram-PVQCEYII-CPA7jCxU.js → gitGraphDiagram-PVQCEYII-C57s7nZ-.js} +1 -1
  130. package/dist/web/assets/highlighted-body-OFNGDK62-BVb-7KsA.js +1 -0
  131. package/dist/web/assets/index-69qhvTvD.js +1 -0
  132. package/dist/web/assets/{index-BYUHmd8w.js → index-BDNM6yJI.js} +2 -2
  133. package/dist/web/assets/{index-BGgZxlEQ.js → index-BJF_gEDs.js} +2 -2
  134. package/dist/web/assets/index-BOwMP6BP.js +1 -0
  135. package/dist/web/assets/{index-C69a5Mcz.js → index-BZsyXCqm.js} +1 -1
  136. package/dist/web/assets/{index-C7EA7a_g.js → index-Bfl4JiNq.js} +2 -2
  137. package/dist/web/assets/index-BlD3AKX-.js +1 -0
  138. package/dist/web/assets/{index-CIymCfcP.js → index-BnvW0EvQ.js} +1 -1
  139. package/dist/web/assets/index-C4rmWyOm.js +1 -0
  140. package/dist/web/assets/index-CGLcb3HY.js +1 -0
  141. package/dist/web/assets/{index-kWBxPqIX.js → index-CPvOeQPX.js} +1 -1
  142. package/dist/web/assets/index-Cjbe0JKM.js +1 -0
  143. package/dist/web/assets/index-CmYoJWUm.js +1 -0
  144. package/dist/web/assets/index-CtUFrjKe.js +1 -0
  145. package/dist/web/assets/index-DDvDRMTK.js +1 -0
  146. package/dist/web/assets/index-DSpndwAR.css +1 -0
  147. package/dist/web/assets/index-D_JjTHxi.js +1 -0
  148. package/dist/web/assets/index-DbuwcnbT.js +1 -0
  149. package/dist/web/assets/index-DcXyS0nN.js +1 -0
  150. package/dist/web/assets/index-Dcl9ruKA.js +1 -0
  151. package/dist/web/assets/index-DgwALPNA.js +121 -0
  152. package/dist/web/assets/{index-DoN1FTEe.js → index-DkE8hRT1.js} +2 -2
  153. package/dist/web/assets/index-DsyRBZ4h.js +1 -0
  154. package/dist/web/assets/{index-29zav3JI.js → index-DuudNhLL.js} +4 -4
  155. package/dist/web/assets/index-Gc4F0b2f.js +1 -0
  156. package/dist/web/assets/index-HGqqwKoV.js +13 -0
  157. package/dist/web/assets/index-KchrJnno.js +3 -0
  158. package/dist/web/assets/{index-B0KNSyji.js → index-Tmi2BPYU.js} +1 -1
  159. package/dist/web/assets/index-Ya4GuDs0.js +1 -0
  160. package/dist/web/assets/index-_aDaKqLB.js +1 -0
  161. package/dist/web/assets/index-_qwOAotB.js +1 -0
  162. package/dist/web/assets/index-hnIkczza.js +7 -0
  163. package/dist/web/assets/{infoDiagram-5YYISTIA-D3Q__m62.js → infoDiagram-5YYISTIA-CifuVY6C.js} +1 -1
  164. package/dist/web/assets/{ishikawaDiagram-YF4QCWOH-CcvCBuZ5.js → ishikawaDiagram-YF4QCWOH-Cd60vQUi.js} +1 -1
  165. package/dist/web/assets/{journeyDiagram-JHISSGLW-COZU4LNt.js → journeyDiagram-JHISSGLW-Cb3Xl_wl.js} +1 -1
  166. package/dist/web/assets/{kanban-definition-UN3LZRKU-BrXjBoAU.js → kanban-definition-UN3LZRKU-Ei6ThuZt.js} +1 -1
  167. package/dist/web/assets/{linear-BgP1STFi.js → linear-CDZJx-o2.js} +1 -1
  168. package/dist/web/assets/mermaid-GHXKKRXX-DFxyxD7G.js +331 -0
  169. package/dist/web/assets/{mindmap-definition-RKZ34NQL-CgjSrE5r.js → mindmap-definition-RKZ34NQL-B0ygxzkx.js} +1 -1
  170. package/dist/web/assets/navViewState-Ck_HK-TK.js +1 -0
  171. package/dist/web/assets/{pieDiagram-4H26LBE5-DTfe1sKA.js → pieDiagram-4H26LBE5-B2FdrvDv.js} +1 -1
  172. package/dist/web/assets/{quadrantDiagram-W4KKPZXB-D95hfh0q.js → quadrantDiagram-W4KKPZXB-CwpOTy3d.js} +1 -1
  173. package/dist/web/assets/{requirementDiagram-4Y6WPE33-DtSLi7Mh.js → requirementDiagram-4Y6WPE33-ExdZNzLQ.js} +1 -1
  174. package/dist/web/assets/{sankeyDiagram-5OEKKPKP-gi_dJpcU.js → sankeyDiagram-5OEKKPKP-u0EZKD7D.js} +1 -1
  175. package/dist/web/assets/{sequenceDiagram-3UESZ5HK-DKQ9a72t.js → sequenceDiagram-3UESZ5HK-BXHMy5DY.js} +1 -1
  176. package/dist/web/assets/{spaces-B2Ccyh_T.js → spaces-C8n7xQPx.js} +1 -1
  177. package/dist/web/assets/{stateDiagram-AJRCARHV-Bz7tmSqa.js → stateDiagram-AJRCARHV-DMXx7ell.js} +1 -1
  178. package/dist/web/assets/stateDiagram-v2-BHNVJYJU-Bydq1_By.js +1 -0
  179. package/dist/web/assets/theme-BBnHttAf.js +1 -0
  180. package/dist/web/assets/{timeline-definition-PNZ67QCA-BfMXPwhV.js → timeline-definition-PNZ67QCA-DtqVG_4u.js} +1 -1
  181. package/dist/web/assets/{vennDiagram-CIIHVFJN-WLxW2KT5.js → vennDiagram-CIIHVFJN-Dom0ex8r.js} +1 -1
  182. package/dist/web/assets/{wardley-L42UT6IY-DiiqwIdq.js → wardley-L42UT6IY-C-RstmuQ.js} +1 -1
  183. package/dist/web/assets/{wardleyDiagram-YWT4CUSO-DmCukWuw.js → wardleyDiagram-YWT4CUSO-C8CzNfdf.js} +1 -1
  184. package/dist/web/assets/{xychartDiagram-2RQKCTM6-Cfq1W2tT.js → xychartDiagram-2RQKCTM6-1AxVTyB6.js} +1 -1
  185. package/dist/web/index.html +2 -2
  186. package/native/auth-native/prebuilds/linux-arm64/auth-native.node +0 -0
  187. package/native/auth-native/prebuilds/linux-x64/auth-native.node +0 -0
  188. package/native/auth-native/prebuilds/win32-arm64/auth-native.node +0 -0
  189. package/native/auth-native/prebuilds/win32-x64/auth-native.node +0 -0
  190. package/package.json +1 -1
  191. package/dist/web/assets/AppErrorBoundary-DWpgwxFV.js +0 -1
  192. package/dist/web/assets/NavScopeBoundary-D8Lf1G0U.js +0 -1
  193. package/dist/web/assets/channel-BGdXootG.js +0 -1
  194. package/dist/web/assets/classDiagram-4FO5ZUOK-CPcnLy_H.js +0 -1
  195. package/dist/web/assets/classDiagram-v2-Q7XG4LA2-CPcnLy_H.js +0 -1
  196. package/dist/web/assets/client-DSIbyfoz.js +0 -2
  197. package/dist/web/assets/connection-DYZn9oPZ.js +0 -1
  198. package/dist/web/assets/export-Bq8ZECqX.js +0 -2
  199. package/dist/web/assets/highlighted-body-OFNGDK62-CDPBxM_E.js +0 -1
  200. package/dist/web/assets/index-AksnytJj.js +0 -1
  201. package/dist/web/assets/index-B8xhhYDh.css +0 -1
  202. package/dist/web/assets/index-BUrlrKap.js +0 -1
  203. package/dist/web/assets/index-B_5-HLed.js +0 -62
  204. package/dist/web/assets/index-BfmoxdpP.js +0 -1
  205. package/dist/web/assets/index-Bo3e-ohM.js +0 -3
  206. package/dist/web/assets/index-BrYV9gV_.js +0 -1
  207. package/dist/web/assets/index-C8XUtAvK.js +0 -1
  208. package/dist/web/assets/index-C9uil5my.js +0 -13
  209. package/dist/web/assets/index-CKpWHSp9.js +0 -1
  210. package/dist/web/assets/index-CLKBgQxV.js +0 -1
  211. package/dist/web/assets/index-CTyyUNWj.js +0 -7
  212. package/dist/web/assets/index-D7cg9qYZ.js +0 -1
  213. package/dist/web/assets/index-D7dg8R_q.js +0 -1
  214. package/dist/web/assets/index-DCSpedV_.js +0 -1
  215. package/dist/web/assets/index-DLbD0Nx5.js +0 -1
  216. package/dist/web/assets/index-DaEzbvvu.js +0 -1
  217. package/dist/web/assets/index-DhbcjMZF.js +0 -1
  218. package/dist/web/assets/index-Dw2h88mF.js +0 -1
  219. package/dist/web/assets/index-FcMtfmKv.js +0 -1
  220. package/dist/web/assets/index-XFq9Kgg0.js +0 -1
  221. package/dist/web/assets/index-iI2mM43w.js +0 -1
  222. package/dist/web/assets/index-oXOF7lko.js +0 -1
  223. package/dist/web/assets/locale-CANfezJ4.js +0 -17
  224. package/dist/web/assets/mermaid-GHXKKRXX-_JLagMll.js +0 -321
  225. package/dist/web/assets/navViewState-DS5LnMYc.js +0 -1
  226. package/dist/web/assets/settings-CcwMWXbp.js +0 -42
  227. package/dist/web/assets/stateDiagram-v2-BHNVJYJU-D6-wdUbw.js +0 -1
  228. package/dist/web/assets/theme-DlDhDxeD.js +0 -1
@@ -22,14 +22,30 @@ title: 长时间的活
22
22
 
23
23
  一个进行中的目标,下面排着两条排队消息,每条各自带着发送时机。
24
24
 
25
+ 进行中目标下展开的队列,每条排队消息各自带着发送时机,以及编辑、立即发送和移除。
26
+
25
27
  ## 跨会话存活的活
26
28
 
27
29
  有两个功能让活跨过单次对话。两者都在全局层面列出,而不是挂在某个会话上,但各自保存的东西范围不同。
28
30
 
29
31
  **定时任务。** 智能体可以安排一条提示词在未来某个时间触发,一次性或者按你本地时区的 cron 表达式,全局面板列出所有计划。计划由「打开着这个会话」的 Kiki 触发——交互式 daemon 或 server,或 print 模式为本次运行已打开的会话触发。它不会扫描 home 中的其它会话,也不会唤醒未打开的会话,所以计划只在有 Kiki 持有该会话时才会触发。周期任务会被确定性地往后错开,避免所有人在整点同时触发;错过了若干触发时刻的周期任务会带着次数补发一次。计划绑定在它所属的会话上,不会带进一个全新的会话;一个会话最多有 50 个活跃计划。见[定时任务](/zh/reference/tools#定时任务)。
30
32
 
33
+ 定时任务面板:上面是启用中的一次性和周期任务,下面是已暂停的一条,每条都能立即运行、暂停、恢复或删除。
34
+
35
+ ### 手动管理日程
36
+
37
+ 定时任务页也是你自己改日程的地方。每一条开头写的是它什么时候跑,用的是人话而不是 cron 表达式:「每小时整点」「每天 09:00」「每周一 08:30」。表达式本身还在,在这条的详情面板里点开就能看到,同时还有完整提示词、所属对话,以及服务端算出的下次触发时间。
38
+
39
+ **新建定时任务**用来创建,**编辑**用来修改。表单先问它是只跑一次还是重复,然后问按什么重复:每 N 小时、每天某个时刻、每周几天、每月几号。你要选它属于哪个对话,可以按标题搜索,并按工作区分组——那是它的产出送到哪儿去的地方。
40
+
41
+ 比这些控件更具体的日程,比如一天里多个时刻、把某月的某天钉在某个星期几,会直接以 cron 表达式的形式打开,并按原样保存。编辑这样的任务不会悄悄把它换成一条更简单的规则。服务端拒绝的保存会把你填的东西都留在表单里,重试不费事。
42
+
43
+ **立即触发**单独占一条,位于每条的左下角,与暂停和删除分开:它只跑这一次,不动日程。把已有任务改绑到另一个对话时,只能选同一个工作区里的对话。
44
+
31
45
  **任务看板。** 每个工作区有一块看板,需求是卡片,每张卡片关联到正在处理它的会话。卡片是长期存在的要求,不是智能体的运行记录——读一张卡片不会改变它,看板也不会跟着待办清单自动更新。主智能体自己就能用 `BoardRead` 和 `BoardWrite` 读写看板,走正常的审批规则。从主智能体右栏底部的固定按钮打开它。见[任务看板](/zh/guides/sessions#任务看板)。
32
46
 
47
+ 任务看板:需求卡片分在「待办」「进行中」「已暂停」「已完成」几列里,每张都关联到处理它的会话。
48
+
33
49
  ## 上下文窗口:满了怎么办
34
50
 
35
51
  对话变长时,Kiki 会在上下文接近窗口上限时压缩历史。压缩点定在哪、到了压缩点之后做什么,都由你决定。
@@ -38,11 +54,11 @@ title: 长时间的活
38
54
 
39
55
  这张卡里还有**续上下文策略**——到了压缩点时做什么的三选一:
40
56
 
41
- - **压缩(Summarize,默认)**:把历史压成摘要继续。
57
+ - **压缩(Summarize)**:把历史压成摘要继续。
42
58
  - **清空重开(Fresh)**:不带历史,只从智能体的工作笔记重启。
43
- - **自动(Auto)**:每次运行由智能体自己选。
59
+ - **自动(Auto,主智能体内置默认)**:工作笔记足以安全覆盖当前工作时重启,否则生成摘要。
44
60
 
45
- 旁边的来源标签说明当前值来自哪一层(会话、profile、全局,或继承而来),它同时也是把值保存到更大范围或恢复继承的控件。子智能体和外部执行器只读这个值,不改它。
61
+ 旁边的来源标签说明当前值来自哪一层(会话、profile、全局,或继承而来),它同时也是把值保存到更大范围或恢复继承的控件。会话选择优先于 profile,其次是全局设置,最后才是内置默认。子智能体有独立默认,外部执行器自行管理上下文;两者在这里都是只读。
46
62
 
47
63
  **Fresh 有真实条件。** 从笔记重启意味着丢掉对话,所以只有不会丢东西时 Kiki 才这么做:历史可用、工作笔记存在且在当前窗口里已被审阅、重启后放得下。如果上次交接之后又来了新内容,或者有从笔记里取不回来的结果,Kiki 会走压缩而不是清空。所以 Fresh 的意思是「安全时从笔记重启」,不是「随时都能清空」。
48
64
 
@@ -50,11 +66,13 @@ title: 长时间的活
50
66
 
51
67
  上下文用量详情卡:上下文窗口轨道,以及选中「清空重开」作为续上下文策略。
52
68
 
69
+ 运行中会话上打开的上下文详情卡:选中「清空重开」,下方是本会话的累计 token 数。
70
+
53
71
  ## 记忆让事实跨会话留下
54
72
 
55
73
  会话会结束,记忆不会。智能体把你的偏好、反馈、已核实的项目事实和参考指引存下来,之后再找回来。在 `/memory` 页上你选正在看哪一部分记忆:**全局**、某个**工作区**,或某个**角色**。角色自己的条目与其他角色隔离;默认情况下角色也能读到共享的全局和工作区记忆。
56
74
 
57
- 记忆默认开启,侧栏的 `/memory` 页是它永久的家——关着的时候是「怎么打开」的说明页,开着的时候是管理台。你可以搜索条目、按类型筛选、编辑、置顶和删除,每次改动都能逐条撤销——删除也可以撤销,所以确认框说的是这件事,而不是声称删了就找不回。记忆审批设为 `review` 时,改动提议会先在收件箱页等你接受或丢弃,不会自己生效。
75
+ 记忆默认开启,侧栏的 `/memory` 页是它永久的家——关着的时候是「怎么打开」的说明页,开着的时候是管理台。你可以搜索条目、按类型筛选、编辑、置顶和删除,每次改动都能逐条撤销,删除也可以撤销。记忆审批设为 `review` 时,改动提议会先在收件箱页等你接受或丢弃,不会自己生效。
58
76
 
59
77
  智能体用 `MemoryWrite` 写记忆,用 `MemorySearch` 和 `MemoryRead` 读回来。完整说明、审批收件箱和怎么关掉,见[记忆](/zh/guides/memory)。
60
78
 
@@ -19,7 +19,7 @@ Kiki 可以长得像你的编辑器,而不是像所有人的编辑器。**皮
19
19
  | **Iris × Starveil** | 紫罗兰白纸面和鸢尾墨色;暗色是靛紫层配银丁香控件。 |
20
20
  | **High contrast × Obsidian** | 可见边框和 AAA 正文对比度;暗色是层叠炭灰、冰青焦点和近白控件。 |
21
21
 
22
- 完整表格和已退役的配色见[内置皮肤](/zh/customization/skins#内置皮肤)。
22
+ 完整表格见[内置皮肤](/zh/customization/skins#内置皮肤)。
23
23
 
24
24
  外观设置页:皮肤选择器、背景,以及微调控件。
25
25
 
@@ -27,6 +27,8 @@ memory:
27
27
 
28
28
  `model_alias` 和 `thinking_effort` 是可选的:它们为这个角色选一个已配置的模型和思考档位,并不授予权限。`tools` 字段会被拒绝,因为工具属于 profile。
29
29
 
30
+ **角色页**就是那个文件的表单视图。单个角色的设置排在一列里:它挂在哪个 profile 上、模型与思考档位、对话默认的工作目录、是否固定在侧栏,以及它能读哪些记忆范围。
31
+
30
32
  动手改之前有两点值得先知道。每个会话都会冻结自己的角色快照,所以改角色卡不会悄悄改掉正在进行中的对话——新建会话或重建上下文后修改才生效。开场白在你明确回复之前只是本地展示,单纯打开会话不会把它放进模型历史。
31
33
 
32
34
  角色页还支持 Character Card V3 的 JSON、PNG 和 CHARX 导入导出,头像选择器接受 PNG、JPEG、WebP。**移除头像**恢复首字母头像,不删除角色或其记忆;复制会创建新身份,不复制会话状态或私有记忆;归档会把角色从常规选择里藏起来,但不抹掉数据。
@@ -35,6 +37,8 @@ memory:
35
37
 
36
38
  角色卡:名字、头像、职责,以及它该怎样工作的长期约定。
37
39
 
40
+ 单个角色的设置:它挂在哪个 profile、模型与思考档位、工作目录、默认投递方式、是否置顶或从侧栏隐藏,以及它能读的记忆。
41
+
38
42
  ## 固定的日常对话入口
39
43
 
40
44
  每个角色都有一个固定的日常对话地址——侧栏那一行、切换器、顶栏和角色页指向的都是它。点角色的名字,落进的就是那一个对话,所以「找小岚」每次都是同一件事。如果它还不存在,入口会先开一份新的日常草稿,等它真正建立后再接管。
@@ -55,20 +59,24 @@ memory:
55
59
 
56
60
  房间给两到六个成员一个共同的对话,有主持人、有预算、有暂停和继续。角色成员在房间里各自获得独立的消息模式会话;已有线程也可以以自己身份加入,沿用它自己的会话、工作区和权限。GUI 里可以在侧栏按住 Ctrl/⌘ 多选线程后选**拉进新房间**,在线程菜单用**加入房间…**,在房间「添加成员」的「线程」页签里找,或者在线程链接上选**和这些线程开房间**。
57
61
 
58
- 成员依次运行,所以后发言的人看得见前面发言者的结果,而不是各说各的。调度只有三条规则,没有别的:
62
+ 角色成员依次运行,已有线程则各有自己的队列。成员被唤醒时会收到房间消息汇总;一轮汇总成功完成后,其中已覆盖的旧通知不会再单独开启轮次。调度遵循三条规则:
59
63
 
60
64
  1. 用户 @ 谁就唤醒谁;`@everyone`(`@所有人`)选择全部成员。
61
65
  2. 用户没有 @ 任何人时交给主持人,主持人不论是角色还是线程。
62
- 3. 角色或 Bot 消息只唤醒它 @ 到的成员。没有 @ 的发言不会继续触发讨论。
66
+ 3. 角色或线程的房间消息只唤醒它 @ 到的成员。没有 @ 的发言会记入房间,但不会唤醒任何人。
63
67
 
64
68
  预算限制每条用户消息之后的成员发言数,默认 12 条。用尽后讨论暂停,**继续**会重置预算并恢复保留的活。**暂停**取消排队的唤醒,但让当前轮次跑完。某个成员唤醒不了时,房间会显示失败原因和恢复操作,而不是承诺自动重试:模型没登录就去**设置 → 模型与提供商 → 连接服务**登录,或者打开该成员的会话选一个可用模型,然后重发一条房间消息,失败成员不是主持人时记得 @ 它。
65
69
 
70
+ 一个成员预算用尽的房间:讨论停在 12 条 / 12 条,并给出「继续」和「调整上限」,旁边是成员列表。
71
+
66
72
  改名、换主持人、静音和更换归类工作区都不会改写成员的系统提示词或权限。
67
73
 
68
74
  见[在房间中讨论](/zh/customization/personas#在房间中讨论)和[协作类工具](/zh/reference/tools#协作类)。
69
75
 
70
76
  一个房间,三个角色在讨论一次发布,每条发言都标着是谁说的。
71
77
 
78
+ 一个也容纳了线程的房间:去添加成员时,线程列在它们自己的页签下。
79
+
72
80
  ## 下一步
73
81
 
74
82
  - [角色、Bot 与房间](/zh/customization/personas)——角色、常驻对话和房间的完整参考
@@ -18,18 +18,26 @@ Kiki 跑在哪儿由你决定,它能触达的东西也由你决定。这一页
18
18
 
19
19
  空间列表:主空间旁边两个已登记的空间,一个共享账号,一个独立。
20
20
 
21
+ 单个空间自己的设置面板:每一行都标出它是跟随主空间还是在这里单独设置,每行带一个「更改」。
22
+
23
+ 选择空间的凭据范围:沿用主空间的账号和密钥,还是让这个空间自己单独一份。
24
+
21
25
  ## 远端连接:一个 Kiki 指向另一个
22
26
 
23
27
  远端连接是从这个 Kiki 的 home 指向另一台机器上另一个 Kiki home 的单向链路。它不是共用登录:目标有它自己的身份,而且必须先批准来源,才有东西能流过去。
24
28
 
25
29
  接收默认关闭。在目标上打开这个开关本身不批准任何人——你还要生成一个邀请,交给来源,来源再据此注册一条连接。每条连接是列表里的一行,带着自己的状态、最近一次的测量值,以及只影响这一条链路的动作:启用、停用、重试、移除。`inbound revoke <grantId>` 停掉某一个来源的读取和流,不影响其他已批准的来源;`inbound disable` 关闭全部对等访问,但保留允许列表。移除一条连接会释放本地凭据和它自己建立的隧道,但不会停掉目标守护进程,也不会撤销它已经启动的活。目标离线时保留的是最近一次的测量值和它的时间戳,而不是报一个编出来的零。
26
30
 
27
- 命令这一侧先规划后执行。`kiki connections ... ssh plan` 只做查询;`ssh execute PLAN_ID` 才会挂接;只有显式的 `--ensure` 才可能启动远端守护进程,而且它会一直跑到你停掉为止。两者都不会顺带打开入站访问。两台机器都要有兼容的 Kiki,以及能用的 SSH 认证和 known-host 校验,Kiki 不会替你往远端装东西。
31
+ 命令这一侧先规划后执行。`kiki connections ... ssh plan` 只做查询;`ssh execute PLAN_ID` 才会挂接;只有显式的 `--ensure` 才可能启动远端守护进程,而且它会一直跑到你停掉为止。两者都不会顺带打开入站访问。GUI 挂接已运行的目标时也会重新查询,但不会启动它,也不多问一次确认。两端需要兼容的连接协议,以及能用的 SSH 认证和 known-host 校验;Kiki 的版本字符串不必完全相同。Kiki 不会替你往远端装东西。
32
+
33
+ 如果目标暂时关闭入站访问,等所有者重新打开后,再尝试你的操作即可。某一个操作被拒绝,不会把整条连接判成未登录,Kiki 也不会自动重发被拒绝的写入。令牌失效或授权被撤销仍会拒绝访问;请先更新连接的凭据或授权,再尝试。
28
34
 
29
35
  见 [`kiki connections`](/zh/reference/command#kiki-connections)。
30
36
 
31
37
  远端连接列表:每个对端 Kiki 一行,各带自己的状态和最后一次读数的时间。
32
38
 
39
+ 这个 Kiki 的身份串,以及决定哪些 Kiki 可以连进来的开关——默认关闭,每个被允许的都列出来并可撤销。
40
+
33
41
  ## Thread bridge:能说话,不能浏览
34
42
 
35
43
  Thread bridge 是两个 home 之间传线程消息的单向通道。它比远端连接窄得多,这是有意的:目标 home 批准的正是确切的来源与目标范围、确切的操作——`read`、`send`、`wait`,以及你明确要求的 `wake`——和一个过期时间,桥只带这些,别的一概不带。没有 `wake`,发送就保持挂起,不会真的在对面启动一轮模型。
@@ -54,9 +62,13 @@ Web 访问和远端连接是两个不同的对象。远端 Kiki 是另一个 Kik
54
62
 
55
63
  ## 会话内 SSH
56
64
 
57
- 会话可以持有 SSH 主机。用输入框的 **+** 菜单加入,输入框上方的**本会话 SSH**控件会列出已加入的主机,点 **X** 移出,也可以从这一行重新打开同一个列表增减。已加入的主机是会话的资源,不会随每条消息重复携带——所以时间线不会堆满主机气泡,移除主机也只影响这个会话,不动你机器上的东西。
65
+ 会话可以持有 SSH 主机。用输入框的 **+** 菜单加入,输入框上方的**SSH**控件会列出已加入的主机,点 **X** 移出,也可以从这一行重新打开同一个列表增减。已加入的主机是会话的资源,不会随每条消息重复携带——所以时间线不会堆满主机气泡,移除主机也只影响这个会话,不动你机器上的东西。
66
+
67
+ 这个控件只在会话已经持有主机时出现。一个还没加入任何主机的会话,输入框上方不会有 SSH 这一行,**+** 菜单仍然是加入第一台主机的入口。主机还在,控件就一直留着,轮次之间也在——因为「已加入」是会话自己的状态,跟此刻有没有请求在跑无关。
68
+
69
+ 加入主机只是让会话可以用它,并不会立即连接。新会话里,在**+** 菜单选中主机后,第一条消息发出前就会显示同一个**SSH**控件;你选的主机会在那条消息发出前加入创建好的会话。
58
70
 
59
- 加入主机只是让会话可以用它,并不会立即连接。新会话里该控件显示为**待加入 SSH**,你选的主机会在第一条消息发出前加入创建好的会话。
71
+ 输入框上方的 SSH 面板:列出已加入这个会话的主机,以及还可以添加的主机。
60
72
 
61
73
  见[界面导览](/zh/guides/interface#输入框)。
62
74
 
@@ -18,15 +18,15 @@ title: 一个工作台,好几条线
18
18
 
19
19
  你交给主智能体一个任务——一次代码改动、一个调研问题、一个要查到底的 bug。它自己规划、调用工具,遇到能干净切开的活就派子智能体去处理那些更聚焦的部分:摸清一个陌生代码库、并行审几份实现、或者在不动主上下文的前提下规划一次大重构。
20
20
 
21
- 子智能体收到任务描述,在自己的隔离上下文里干活,然后交回结论。它不直接和你对话,中间的推理和工具调用记录也不会混进主智能体的历史。主智能体只留结果。这就是为什么你同时跑四五条线,主上下文也不会被细节淹掉。
21
+ 子智能体收到任务描述,在自己的隔离上下文里干活,然后交回结论、结束时也会报一声。它完整的推理和工具调用记录不会整份混进主智能体的历史,所以你同时跑四五条线,主上下文也不会被细节淹掉。而你随时可以点开其中任何一个,自己把每一步都读一遍。
22
22
 
23
- 新装的实例带两个 subagent profile:`general` 是通用助手,`explore` 只读探索。什么时候派谁由主智能体自己判断——看任务复杂度、上下文消耗、子任务之间是否独立,你不用指定。当然你也可以指定:直接跟主智能体说一声,或者在它派出来时逐次确认。
23
+ 新装的实例带两个 subagent profile:`general` 是通用助手,`explore` 只读探索。什么时候派谁由主智能体自己判断——看任务复杂度、上下文消耗、子任务之间是否独立,你不用指定。当然你也可以指定:直接跟主智能体说一声;权限模式是 `manual` 时,每次派发还会停下来等你批准。
24
24
 
25
25
  完整的派发合同、上下文隔离和权限继承见 [Agent 与 subagent](/zh/customization/agents)。
26
26
 
27
27
  ## 每个角色可以跑不同的模型
28
28
 
29
- 不同的活不一定要共用一个模型。把主智能体、各个子智能体、审查者分别绑到不同的模型或不同的厂商上,一个会话里就能同时跑起来。强推理模型负责规划,便宜的模型跑日常;换个厂商做审查,审查就不会和实现共享同一批盲区。
29
+ 不同的活不一定要共用一个模型。把主智能体、各个子智能体、审查者分别绑到不同的模型或不同的厂商上,一个会话里就能同时跑起来。强推理模型负责规划,便宜的模型跑日常;让审查跑在另一个模型家族上,也能给实现者已经做过的决定补上一个外部视角。
30
30
 
31
31
  主 `agent` profile 总会拿到三个子智能体工具(`AgentRun`、`AgentList`、`AgentSend`),不需要实验开关,每次调用都能指定子智能体该跑哪个模型。哪里都没绑模型时,派发会以 `model.not_configured` 失败,而不是悄悄替你猜一个。Kimi 开箱即用;Anthropic、OpenAI 兼容服务、OpenAI Responses API、Gemini、Vertex AI 都能接,也可以用 GitHub Copilot 或 ChatGPT 账号登录。
32
32
 
@@ -34,12 +34,18 @@ title: 一个工作台,好几条线
34
34
 
35
35
  同一个会话里用了好几种模型:派发树中每个角色绑定不同的模型。
36
36
 
37
+ 一个会话同时跑着几个角色:右栏列出主智能体的状态、待办,以及每个子智能体和它绑定的模型。
38
+
37
39
  ## 子智能体有自己的记录
38
40
 
39
41
  点开任何一个被派出去的子智能体,就能在主会话旁边读它自己的记录:它被要求做什么、做了什么、结论是什么——不用把主智能体的对话一起载入。同一个右栏会跟着你进到子智能体里,所以查看它的上下文和花费用的是同一套方式。
40
42
 
41
43
  你也可以在它自己的输入框里给它发消息;之后用 `AgentRun` 把它接回来继续同一个任务,而不是从头再来。见 [具名子 Agent](/zh/customization/agents#具名子-agent)和[右侧栏](/zh/guides/interface#右侧栏)。
42
44
 
45
+ 子智能体自己的会话:它独立的记录、它自己的输入框,以及标明这条消息在回复谁的输入行。
46
+
47
+ 子智能体的右栏:和主智能体一样的那套状态、待办、工作笔记与会话概览。
48
+
43
49
  ## 后台任务自己回来报到
44
50
 
45
51
  耗时的 shell 命令和子智能体不必占着前台。把它们丢到后台,Kiki 会在它们结束时自动通知主智能体,结果直接带在通知里,并保留完整输出的文件路径——你和智能体都不用反复去查。你可以随时查看某个运行中任务的状态和输出,也可以随时停掉它。停掉一个智能体任务时,还会告诉它下面还有哪些直属子智能体在跑。
@@ -48,6 +54,8 @@ title: 一个工作台,好几条线
48
54
 
49
55
  任务页:一个后台任务正在跑并带停止按钮,一个已完成,一个失败。
50
56
 
57
+ 任务页的全部任务视图:一个运行中、一个已完成、一个失败,每个都带它跑过的命令,顶部是筛选行。
58
+
51
59
  ## 下一步
52
60
 
53
61
  - [长时间的活](/zh/features/long-work)——目标、队列、定时任务、看板与记忆
@@ -1,74 +1,89 @@
1
1
  # Kiki 桌面版
2
2
 
3
- Kiki 桌面版支持 Windows x64(当前用户的 NSIS 安装包)、Linux x64(AppImage 与 deb)以及 macOS Apple Silicon 和 Intel(dmg)。Windows 安装包同时安装 CLI/TUI,并将 `kiki` 加入用户 `PATH`;Linux deb 也附带 CLI。本页主要说明 Windows 专属的签名更新器;Linux/macOS 使用手动更新,安装方法见[安装](./installation.md#安装桌面版)。Windows 安装程序、更新签名、SHA256 校验和与版本化更新清单会保留在 [GitHub Releases](https://github.com/X-T-E-R/kiki/releases) 中。
3
+ Windows 版带签名应用内更新器,macOS 和 Linux 版没有:更新它们需要自己下载新版构建。本页说明两种更新方式、更新期间数据会怎样,以及如何回滚。安装步骤见[安装](./installation.md#安装桌面版)。
4
+
5
+ | 平台 | 安装包 | 更新方式 |
6
+ | --- | --- | --- |
7
+ | Windows x64 | `Kiki_*_x64-setup.exe`(当前用户安装,内含 CLI) | 应用内更新器,或运行新版安装包 |
8
+ | Linux x64 | `Kiki_*_amd64.deb` / `Kiki_*_amd64.AppImage` | 下载并安装新版构建 |
9
+ | macOS Apple Silicon | `Kiki_*_aarch64.dmg` | 下载新版 dmg |
10
+ | macOS Intel | `Kiki_*_x64.dmg` | 下载新版 dmg |
11
+
12
+ 各版本的 Windows 安装程序、更新签名、SHA256 校验和与更新清单都会保留在 [GitHub Releases](https://github.com/X-T-E-R/kiki/releases) 中。
4
13
 
5
14
  ::: warning 注意
6
- 首个公开版本的 Kiki Windows 安装程序没有 Authenticode 签名(Windows 用来验证发布者身份的官方代码签名)。因此,即使文件来自官方 Release,Windows SmartScreen 也可能把发布者显示为未知。
15
+ Windows 安装包没有 Authenticode 签名(Windows 的官方代码签名机制,签名后系统才会显示经过验证的发布者名称)。因此即使文件来自官方 Release,SmartScreen 仍可能显示「未知发布者」。见[SmartScreen 与更新签名](#smartscreen-与更新签名)。
7
16
  :::
8
17
 
9
18
  ## 系统要求与发布通道
10
19
 
11
- 桌面版支持 Windows x64,正常情况下可为当前 Windows 账户安装,无需管理员权限。如果系统缺少所需运行时,安装期间可能会下载 Microsoft Edge WebView2 引导程序(桌面界面依赖的微软网页组件)。
20
+ Windows 版为当前 Windows 账户安装,无需管理员权限。若系统缺少所需运行时,安装程序会下载 Microsoft Edge WebView2 引导程序(桌面界面渲染所用的微软网页组件)。
12
21
 
13
- macOS 桌面版需要 **13.5 或更高版本**,这是内置运行时自身的下限。Intel 与 Apple Silicon 分开下载,不是同一个通用应用。Linux 桌面版为 x64(deb 或 AppImage);CLI/TUI 另外提供 arm64。终端聊天等无桌面场景不需要任何图形界面或显示环境。
22
+ macOS 需要 **13.5 或更高版本**,这是应用内置运行时的下限。Intel 与 Apple Silicon 分开下载,不是同一个通用应用。Linux 桌面版为 x64(deb 或 AppImage),CLI/TUI 另外提供 arm64。Kiki 并不要求桌面环境,CLI/TUI 在没有显示器的机器上也能使用。
14
23
 
15
- | 通道 | 适用场景 | 公开 feed(更新通道的元数据地址,非 RSS 订阅源) |
24
+ | 通道 | 提供什么 | 更新 feed |
16
25
  | --- | --- | --- |
17
- | Stable | 普通日常使用 | `https://x-t-e-r.github.io/kiki/updater/stable/latest.json` |
18
- | Beta | 提前使用经过测试的较新版本 | `https://x-t-e-r.github.io/kiki/updater/beta/latest.json` |
26
+ | Stable | 当前的稳定版构建 | `https://x-t-e-r.github.io/kiki/updater/stable/latest.json` |
27
+ | Beta | 已经过测试、但尚未转正的较新构建 | `https://x-t-e-r.github.io/kiki/updater/beta/latest.json` |
19
28
 
20
- Stable feed 指向已发布的最高 stable 版本,在首个 stable 发布前暂不存在。公开 beta 阶段可直接使用 Beta feed;stable 发布后,Beta feed 再按 SemVer(Semantic Versioning,语义化版本号的比较规则,即比较主版本、次版本与修订号)比较最高 stable 与 beta 版本并指向其中较高者。
29
+ 每个 feed 都是更新器读取的 JSON 文件,你不需要手动打开。Stable feed 指向已发布的最高 stable 版本,在首个 stable 发布前内容为空。只有 beta 构建的阶段,beta feed 才有内容;两者都存在之后,beta feed 按 SemVer(语义化版本号的比较规则,即比较主版本、次版本与修订号)指向其中更高的那个,所以选了 Beta 也可能拿到的就是当前稳定版。
21
30
 
22
31
  ## 安装与校验
23
32
 
24
- 安装应从版本化 Release 开始,而不是使用未版本化的下载链接。这样可以保证安装程序、校验和与更新元数据都绑定到同一个 `kiki-v<version>` tag。
33
+ 请从版本化 Release 下载,不要用「latest 下载链接」,这样安装程序、校验和和更新元数据都来自同一个 `kiki-v<version>` tag。
25
34
 
26
- 1. 打开 [Kiki Releases 页面](https://github.com/X-T-E-R/kiki/releases),选择所需的 stable 或 beta 版本。
27
- 2. 下载 `Kiki_*_x64-setup.exe` 安装程序及旁边的 `.sha256` 文件。
28
- 3. 在下载目录中打开 PowerShell,粘贴运行以下命令,并把示例文件名替换为实际下载的安装程序(第一条命令显示官方发布的校验和,第二条命令计算你下载文件的校验和,两条输出一致即表示文件完整无损):
35
+ 1. 打开 [Kiki Releases 页面](https://github.com/X-T-E-R/kiki/releases),选择你要的 stable 或 beta 版本。
36
+ 2. 下载 `Kiki_*_x64-setup.exe` 安装程序和旁边的 `.sha256` 文件。
37
+ 3. 在下载目录中打开 PowerShell,把下面的文件名换成你实际下载的文件名,运行这两条命令:第一条显示官方发布的校验和,第二条计算你手上文件的校验和。
29
38
 
30
39
  ```powershell
31
40
  Get-Content .\Kiki_1.0.0_x64-setup.exe.sha256
32
41
  (Get-FileHash .\Kiki_1.0.0_x64-setup.exe -Algorithm SHA256).Hash.ToLower()
33
42
  ```
34
43
 
35
- 4. 确认两处十六进制哈希完全相同。
44
+ 4. 确认两串十六进制字符完全相同。
36
45
  5. 运行安装程序,然后从 Windows 开始菜单启动 Kiki。
37
46
 
38
- `.sig` asset 包含完整的 Tauri 更新签名(Tauri 是 Kiki 桌面版使用的应用框架,这里的签名供其内置更新器使用);它与手动下载校验所用的 SHA256 校验和相互独立。
47
+ `.sig` asset 是 Tauri 更新签名(Tauri 是桌面版使用的应用框架),供应用内更新器校验。手动安装时不需要它——上面的 `.sha256` 就是手动校验用的文件。
39
48
 
40
49
  ## 更新
41
50
 
42
- Kiki 桌面版会在启动后按当前通道检查一次更新。你也可以在 **设置 → 关于** 中选择 Stable 或 Beta,并手动检查更新。发现新版本后,Kiki 会先显示版本号和发布说明,再请求安装确认。
51
+ 更新相关的设置都在 **设置 → 关于**:这里显示当前版本,可以选择**更新通道**(Stable 或 Beta),并开关自动检查。打开自动检查后,Kiki 每天会找一次新版本;开关下面的**发现新版本时**决定那时怎么做——**通知我**弹出更新对话框,**下载并安装**则直接进入安装流程。两种模式都会在关闭有运行中任务的空间之前先问你。**检查更新**始终按你当前选的通道检查,无论自动检查开不开。
52
+
53
+ **通知我**模式下,对话框会显示版本号和一小段变更摘要,然后停下来等你。三个按钮并不是同一种决定:
43
54
 
44
- 确认安装后,Kiki 桌面进程和内置 sidecar(与桌面界面一同运行的后台服务进程)会退出,随后校验已签名的安装程序并运行 NSIS 更新。正在运行的任务会被中断,因此请先完成或停止重要任务。切换通道不会自动降级到旧版本。
55
+ - **明天再提醒我**——同一个版本 24 小时后再问一次。
56
+ - **跳过此版本**——Kiki 不再就这个通道上的这个版本问你,并且记住了。更新的版本仍会提示,在 Stable 上跳过也不会让 Beta 安静下来。
57
+ - **立即更新**——装上它。
45
58
 
46
- 如果应用内更新失败,请关闭 Kiki,从目标版本的准确 Release 下载较新的安装程序,校验其 SHA256 文件,然后手动运行安装程序。把较新版本安装到现有的当前用户安装位置时,正常的应用数据位置会保持不变。
59
+ 用窗口按钮或 `Esc` 关掉对话框只关掉这一次提醒,什么都不记,之后仍可能再提示同一个版本。
47
60
 
48
- 以上应用内更新是 Windows 更新器。macOS 与 Linux 的桌面版需要你自己下载较新的构建,因此请先退出 Kiki,把新构建装到旧版本之上再重新启动。在 macOS 或 Linux 上换过应用之后,启动新版本前请先退出仍在使用同一数据家目录的旧 Kiki 进程——见 [`KIKI_HOME`](../configuration/env-vars.md#kiki-home)。
61
+ 安装之前,Kiki 会在你选的通道上重新查一次版本。通道或版本在这期间变过,它就刷新出新的一份,而不是装上与你同意的不一样的那个。如果还有某个空间存在运行中的会话或等待处理的输入,Kiki 会把这些空间列出来,请你确认后才关闭任何东西;拒绝确认,你的会话照常运行。确认之后,Kiki 关掉它所管理的后端,再下载和安装。切换通道不会把已安装的版本降级。
49
62
 
50
- 公开 `latest.json` 文件为 stable 与 beta 客户端提供带签名的更新元数据。每份清单都指向特定 `kiki-v<version>` tag 下的安装程序,而不是可变的 latest 下载链接;其中的 `signature` 字段就是该安装程序 `.sig` asset 的内容。
63
+ 下载或安装这一步失败时,Kiki 会说明情况,安装按钮变成再试一次。你的会话要不要重新启动,取决于它走到了哪一步:更新界面还能用就直接重试,只有需要把那些会话恢复回来时才重启 Kiki。如果自动检查开关或通道选择没能保存,对话框会留在原地并提示再试一次。
64
+
65
+ 如果应用内更新一直失败,请关闭 Kiki,从你要更新的那个 Release 准确下载新版安装程序,校验它的 `.sha256` 文件后手动运行。覆盖安装到现有的当前用户安装位置时,应用数据位置保持不变。
66
+
67
+ macOS 与 Linux 上请先退出 Kiki,把新版构建装到旧版本之上,再重新启动。如果还有旧 Kiki 进程在使用同一个数据家目录,请先退出它——见 [`KIKI_HOME`](../configuration/env-vars.md#kiki-home)。
51
68
 
52
69
  ## 后端日志
53
70
 
54
- 桌面版启动自己的后端时,会将诊断 stderr(进程的错误输出流)记录到当前空间 `logs` 目录中的 `desktop-backend.log`(该目录即此 home 的日志文件夹,与服务端自己的 `kimi-code.log` 并列)。当前文件达到 5 MiB 时轮转,并保留三个编号备份(`.1` 最新)。打开已有的超大日志时也会轮转,旧文件保留为备份。单条超大的新日志会截断为 UTF-8 尾部。日志写入失败不会停止后端,启动诊断仍会在内存中保留最后 100 条非空记录。
71
+ 桌面版启动自己的后端时,后端的错误输出会写入当前空间 `logs` 目录中的 `desktop-backend.log`,与服务端自己的 `kimi-code.log` 并列。该文件达到 5 MiB 时轮转,保留三个编号备份,`.1` 是最新的一个。
55
72
 
56
- 后端默认级别为 `warn`。设置控件接入前,可以退出桌面版,在当前空间的 `desktop.json` 中设置 `"logLevel": "debug"`,并保留其他字段。支持 `fatal`、`error`、`warn`、`info`、`debug`、`trace` 和 `silent`。空间没有自己的覆盖值时,会继承主 home 的级别。更改在下次由桌面版启动后端时生效,不影响已经运行的后端或外部管理的服务器。桌面集成可调用日志目录与路径命令;连接远端服务器的浏览器不能打开其宿主目录。
73
+ 后端默认以 `warn` 级别记录。要更改,退出桌面版,在当前空间的 `desktop.json` 里设置 `"logLevel"`,保留其他字段不变。可选值为 `fatal`、`error`、`warn`、`info`、`debug`、`trace` 和 `silent`。没有自己 `desktop.json` 的空间沿用主 home 的设置。新级别在桌面版下次启动后端时生效。
57
74
 
58
75
  ## SmartScreen 与更新签名
59
76
 
60
- SmartScreen 信誉与更新签名解决的是两个不同的问题:SmartScreen 关心的是「这个安装程序是谁发布的」,更新签名关心的是「这个文件是否被篡改过」。因为安装程序没有 Authenticode 签名,Windows 无法显示经过验证的发布者身份;而 Tauri `.sig` 更新签名则允许应用内更新器确认下载的安装程序由 Kiki 更新密钥签名。两条信息互补、并不冲突。
61
-
62
- 如果出现 SmartScreen,先确认 URL 位于 `github.com/X-T-E-R/kiki/releases/` 下,并确认 SHA256 值一致。只有完成这些检查并接受未知发布者风险后,才选择 **更多信息** 和 **仍要运行**。不要安装通过聊天、邮件或第三方镜像收到的副本。
77
+ 出现 SmartScreen 时,先核对 URL 和哈希再继续:URL 应位于 `github.com/X-T-E-R/kiki/releases/` 下,SHA256 应与官方发布的值一致。两项都对得上,再选择 **更多信息** 和 **仍要运行**。通过聊天、邮件或第三方镜像收到的副本必然过不了这一关,不要安装。
63
78
 
64
79
  ## 窗口、托盘与打开文件
65
80
 
66
- 在 Windows 与 macOS 上,关窗会隐藏到托盘;要真正退出,请用托盘菜单的**退出**,或平时的退出命令。如果托盘图标无法创建,Kiki 仍能正常打开,关窗时会改为请你确认退出。Linux 上有可用托盘时,关窗同样改为最小化,方便窗口管理器把它调回;没有托盘时,关窗会请你确认退出。全局快捷键只是便利功能——注册不上也不影响应用启动。
81
+ Windows 和 macOS 上关窗会隐藏到托盘,真正退出请用托盘菜单的**退出**。Linux 上有可用托盘时,关窗改为最小化,方便窗口管理器把窗口调回;没有托盘时,关窗会请你确认退出。
67
82
 
68
- 从文件菜单打开文件,会交给系统中与该文件类型关联的程序处理。该菜单拒绝打开一组已知的启动目标,而不是照常打开它们:macOS 的 `.app` 与 `.command`、Linux 的 `.desktop`,以及 Windows 的可执行文件与脚本——真实目标指向这些类型的链接同样被拒绝。普通文本文件正常打开,在文件管理器中显示和保存也不受影响。请把这份拒绝清单理解为只覆盖上述类型,而不是对所有文件关联的通用承诺。
83
+ 从文件菜单打开文件,会交给系统中与该文件类型关联的程序。macOS 的 `.app` 与 `.command`、Linux 的 `.desktop`、Windows 的可执行文件与脚本不会打开——直接启动这些文件等于在应用之外运行代码。指向这些类型的快捷链接同样被拒绝。其他文件(包括普通文本文件)正常打开,**在文件管理器中显示** 也不受影响。
69
84
 
70
85
  ## 回滚
71
86
 
72
- 回滚使用 Releases 页面上保留的不可变 asset。先备份重要的工作区数据并关闭 Kiki,再从准确 tag 下载上一个版本的安装程序和 `.sha256` 文件,校验哈希后运行该安装程序。
87
+ 要退回上一个版本:先备份重要的数据、关闭 Kiki,然后从准确的 tag 下载旧版安装程序和它的 `.sha256` 文件,校验哈希后运行该安装程序。
73
88
 
74
- 如果 Windows 拒绝在较新版本上安装旧版本,请在 **已安装的应用** 中卸载 Kiki,然后运行旧版安装程序。除非你还希望重置本地设置和会话,否则卸载时不要删除 Kiki 的应用数据。回滚后请使用 stable feed,或继续从 stable Release 手动更新,避免再次立即选择较新的 beta。
89
+ 如果 Windows 拒绝在较新版本上安装旧版,请先在 **已安装的应用** 中卸载 Kiki,再运行旧版安装程序。卸载时保留 Kiki 的应用数据,除非你确实想重置本地设置和会话。回滚后请留在 stable 通道,否则下次检查更新又会提示你安装 beta。
@@ -1,6 +1,6 @@
1
1
  # 首次启动
2
2
 
3
- 本页承接安装之后的第一步:启动 Kiki、配置 API 来源,并完成第一次对话。
3
+ Kiki 已经装好了。这一页带你走完最初的十分钟:在项目目录里启动、连上模型、拿到第一个有用的回答。
4
4
 
5
5
  ## 启动 Kiki
6
6
 
@@ -11,54 +11,65 @@ cd your-project
11
11
  kiki
12
12
  ```
13
13
 
14
- 从源码开发时,请在仓库根目录运行 `pnpm dev:cli`。要在不进入交互界面的情况下执行单条指令,使用 `-p`(prompt 模式):
14
+ 如果你在源码检出里开发,请在仓库根目录运行 `pnpm dev:cli`。要在不进入交互界面的情况下执行单条指令,使用 `-p`(prompt 模式):
15
15
 
16
16
  ```sh
17
17
  kiki -p "Take a look at this project's directory structure"
18
18
  ```
19
19
 
20
- 要恢复上一次会话,加上 `-c`(`--continue` 的短写;与 `--session` 等恢复方式的区别见[工作区与会话管理](../guides/sessions.md#启动与恢复会话)):
20
+ 加上 `-c`(`--continue` 的短写)即可恢复上一次会话;它与 `--session` 等恢复方式的区别见[工作区与会话管理](../guides/sessions.md#启动与恢复会话):
21
21
 
22
22
  ```sh
23
23
  kiki -c
24
24
  ```
25
25
 
26
- ## 配置 API 来源
26
+ ## 连接模型
27
27
 
28
- 首次启动需要配置 API 来源。在交互界面中输入 `/login` 开始登录流程:
28
+ Kiki 需要先连上一个模型才能开始回答。在交互界面输入 `/login`:
29
29
 
30
30
  ```sh
31
31
  /login
32
32
  ```
33
33
 
34
- `/login` 打开平台选择器,支持两种方式:
34
+ 弹出的选择器提供四个选项:
35
35
 
36
- - **Kimi Code(OAuth)** —— 设备码授权流程;在任意设备打开链接、登录并输入授权码
37
- - **Kimi Platform API key** —— 输入来自 `platform.kimi.com` 或 `platform.kimi.ai` 的 API 密钥
36
+ - **Kimi Code (kimi.com/code)** —— 托管订阅,走设备码授权:在任意设备上打开链接、登录、输入授权码
37
+ - **Kimi Code (kimi.ai/code)** —— 同一套流程,对应国际站端点
38
+ - **Kimi Platform (API key · platform.kimi.com)** —— 填入国内平台控制台的 API 密钥
39
+ - **Kimi Platform (API key · platform.kimi.ai)** —— 填入国际平台控制台的 API 密钥
38
40
 
39
- 要退出登录,输入 `/logout` 清除当前凭据。
41
+ 输入 `/logout` 可以清除当前凭据。
40
42
 
41
- ::: tip 使用其他 AI 平台
42
- 如果想连接 Anthropic、OpenAI、Google 等平台,直接编辑 `~/.kiki/config.toml` 配置 API 密钥。详见[平台与模型](../configuration/providers.md)。全部配置项的完整参考见[配置文件](../configuration/config-files.md)、[环境变量](../configuration/env-vars.md)和[配置覆盖](../configuration/overrides.md)。
43
+ ::: tip 其他平台
44
+ Anthropic、OpenAI、Google 等平台在 `~/.kiki/config.toml` 中配置,见[平台与模型](../configuration/providers.md)。全部可配置项分散在[配置文件](../configuration/config-files.md)、[环境变量](../configuration/env-vars.md)和[配置覆盖](../configuration/overrides.md)三页。
43
45
  :::
44
46
 
45
- 在桌面应用和浏览器界面中,首次启动会打开一个可选的设置向导,共四页:选择语言与外观;用 API 密钥(最通用)连接模型,或用 Kimi Code、GitHub Copilot、ChatGPT(Codex)账号登录;选择新会话的默认权限模式(推荐「自动」);最后一页可选,介绍联网搜索、SSH、外部引擎、插件与 MCP、定时任务等能力,每项可以直接打开对应设置,或点「让 Kiki 帮你配置」新建一个预填好 `/kiki-ops` 请求的会话(不会自动发送)。向导不询问工作目录:新会话默认使用最近的工作区,没有时在 Kiki 主目录里新建一个文件夹。模型步骤中的 API 密钥模板按厂商、网关和本地服务分组。连接后可在 **设置 → 模型与提供商 → 可用模型** 搜索并星标新会话默认使用的模型。每一步都可以跳过,之后在设置中补完;设置中的 **重新进入引导** 可以再走一遍。完成后会打开一个输入框为空的新会话,下方的起步建议可以帮你填入第一条消息,你发送之前什么都不会发出。之后想配置搜索、MCP 或自己的智能体角色,用 `/kiki-ops` 问 Kiki 即可;模型选择方式见 [Agent 与 subagent](../customization/agents.md#内置-subagent)。
47
+ 如果不用终端,桌面应用和浏览器界面首次启动时会打开一个设置向导,同样是四步:
48
+
49
+ 1. **语言与外观** —— 每选一项,弹窗后面的窗口会即时预览。
50
+ 2. **连接模型** —— API 密钥适用范围最广,也可以用 Kimi Code、GitHub Copilot 或 ChatGPT(Codex)账号登录。模板按厂商、网关和本地服务分组;点 **测试连接** 只校验表单里填的值,不会保存。
51
+ 3. **权限** —— 选择新会话的默认权限模式。推荐「自动」:在工作区内自主执行,涉及敏感或外部操作时先问你。
52
+ 4. **Kiki 还能做什么** —— 联网搜索与历史检索、记忆、SSH 远程主机、外部引擎、插件与 Skill 与 MCP、定时任务、任务看板、Bot。每一项都可以直接打开对应设置,或点「让 Kiki 帮你配置」,新建一个已经替你填好 `/kiki-ops` 请求的会话,由你确认后再发送。
53
+
54
+ 任何一页都可以跳过,之后再补:模型连接在 **设置 → 模型与提供商** 里管理,设置中的 **重新进入引导** 可以重跑整个向导。连接提供商之后,在 **设置 → 模型与提供商 → 可用模型** 中搜索并星标你要用的模型,新会话会优先使用已星标的模型。
55
+
56
+ 点「让 Kiki 帮我配置」会打开一个新会话(位置是 Kiki 主目录下的新文件夹),输入框里已经写好一条配置请求:Kiki 会先问你主要用它做什么,再看你是否需要第一份智能体配置,并一起选 Explore(只读探索)这个 subagent 的默认模型和思考强度——也可以保持原样,或把这个角色关掉。点「以后再说」则跳过这些,直接关闭引导窗口。两种方式都不发送任何内容,需要你自己按发送;新会话页下方给出几条起步建议。至于工作目录,新会话页本身仍默认使用最近的工作区,没有时在 Kiki 主目录下新建一个文件夹。这些配置之后也能随时用 `/kiki-ops` 交给 Kiki 帮你完成;模型选择方式见 [Agent 与 subagent](../customization/agents.md#内置-subagent)。
46
57
 
47
58
  ## 你的第一次对话
48
59
 
49
- 登录后,用自然语言描述任务。一个不错的起点是让 Kiki 先熟悉项目:
60
+ 登录后,用自然语言描述你想要什么。先让 Kiki 熟悉一下项目是个不错的起点:
50
61
 
51
- ```
62
+ ```text
52
63
  Take a look at this project's directory structure and briefly describe what each directory is for.
53
64
  ```
54
65
 
55
- Kiki 会自动调用文件读取、搜索等工具(工具是 Agent 可以调用的内置能力,例如读文件、搜索代码、运行命令)浏览相关内容,然后再回答。默认情况下,只读操作自动执行、无需确认。
66
+ Kiki 通过工具(Agent 可调用的内置能力,例如读文件、搜索代码、运行命令)来回答,所以它会先看你的项目再作答,而不是凭空猜测。只读调用不会中途停下来问你。
56
67
 
57
- 新会话默认使用 Auto 模式:普通工具调用(包括 Shell 命令)会直接运行。访问 `.env` 文件、私钥等敏感文件仍需审批;危险 Bash 命令默认也会请求审批。manual 模式下,已信任工作目录内的 `Write` / `Edit` 不再逐项询问,Shell 命令和工作区外写入则先请求审批。用 `/permission` 可在四种模式间切换:`manual`、`auto`、`review`(「替我审批」:先交给你配置的审查者判断,拿不准再问你)和 `yolo`。模式区别见[权限模式](../guides/interaction.md#权限模式)。
68
+ 新会话默认使用 Auto 模式:普通工具调用(包括 Shell 命令)直接执行,访问 `.env`、私钥等敏感文件前会先请求你的审批。用 `/permission` 可切换到 `manual`、`auto`、`review`(「替我审批」,先交给你配置的审查者判断)或 `yolo`;各模式分别会问什么,见[权限模式](../guides/interaction.md#权限模式)。
58
69
 
59
- 也可以直接描述一个更具体的任务:
70
+ 你也可以跳过这一步,直接给一个具体任务:
60
71
 
61
- ```
72
+ ```text
62
73
  Add a function in src/utils that converts any string to kebab-case, and add a unit test for it.
63
74
  ```
64
75
 
@@ -68,9 +79,9 @@ Kiki 会规划步骤、修改代码、运行测试,并在每一步告诉你它
68
79
  随时输入 `/help` 打开内置命令和快捷键面板。用 `↑`/`↓` 浏览,`Esc` 关闭。退出可以输入 `/exit`、空闲时连按两次 `Ctrl-C`,或在输入框为空时按 `Ctrl-D`。
69
80
  :::
70
81
 
71
- ## 常用命令与快捷键
82
+ ## 现在就该记住的命令与快捷键
72
83
 
73
- 初次使用只需了解以下内容:
84
+ 如果这一页你只记住一段内容,就记住下面这些:
74
85
 
75
86
  **会话命令**
76
87
 
@@ -96,7 +107,7 @@ Kiki 会规划步骤、修改代码、运行测试,并在每一步告诉你它
96
107
 
97
108
  ## 数据存储在哪里
98
109
 
99
- Kiki 默认将本地数据存放在 `~/.kiki/` —— 配置文件、会话记录、日志和更新缓存。要移到别处,通过 `KIKI_HOME` 环境变量指定新路径。注意未设置 `KIKI_HOME` 时,桌面应用的 OAuth 凭据默认在兼容家目录 `~/.kimi-code/`;完整说明见[数据路径](../configuration/data-locations.md)。
110
+ Kiki 的本地数据默认放在 `~/.kiki/`:配置文件、会话记录、日志和更新缓存。设置 `KIKI_HOME` 环境变量即可整体换到别的位置。一个例外:未设置 `KIKI_HOME` 时,桌面应用会从兼容家目录 `~/.kimi-code/` 读取 OAuth 凭据。全部路径和各自存放的内容见[数据路径](../configuration/data-locations.md)。
100
111
 
101
112
  ## 下一步
102
113
 
@@ -1,11 +1,13 @@
1
1
  # 安装
2
2
 
3
- Kiki 以三种形态发布,共享同一个 daemon(Kiki 在后台持续运行的常驻进程,各端通过它共享会话数据):支持 Windows、Linux 和 macOS 的 **Kiki 桌面版**、面向终端的 **CLI/TUI**(TUI 即终端里的文字交互界面),以及面向浏览器与 API 客户端的本地**服务器**。本页介绍如何安装与更新各形态;安装后的第一步请见[首次启动](./first-launch.md)。
3
+ Kiki 有三种形态:支持 Windows、Linux 和 macOS 的 **Kiki 桌面版**、面向终端的 **CLI/TUI**(TUI 即终端里的文字交互界面),以及面向浏览器与 API 客户端的本地**服务器**。三种形态共享同一个 daemon(Kiki 在后台持续运行的常驻进程,因此各端看到的是同一份会话数据)和同一份会话存储,你可以在终端里开始一个任务,再在桌面版里接着看。
4
+
5
+ 本页介绍如何安装与更新各形态。安装完成后请看[首次启动](./first-launch.md)。
4
6
 
5
7
  ::: tip 安装之前
6
8
  Kiki 的终端形态在任何现代终端里都能正常运行,Windows Terminal、系统自带终端等无需任何调整。
7
9
 
8
- 想要最佳的视觉体验(更细腻的字体渲染和图标显示),推荐使用支持真彩色与连字的现代终端,例如 [Kitty](https://sw.kovidgoyal.net/kitty/) 或 [Ghostty](https://ghostty.org/)。这是可选项,不装也完全不影响使用。
10
+ 支持真彩色和字体连字的终端渲染效果更细腻,[Kitty](https://sw.kovidgoyal.net/kitty/) 和 [Ghostty](https://ghostty.org/) 都是不错的选择。不换终端也不影响使用。
9
11
  :::
10
12
 
11
13
  ## 安装桌面版
@@ -25,20 +27,29 @@ macOS 需要 **13.5 或更高版本**;这个下限来自内置运行时,因
25
27
  2. 下载对应桌面构建和同名的 `.sha256` 文件,比较发布哈希与下载文件的哈希。macOS 用 `shasum -a 256 <文件>`,Linux 用 `sha256sum <文件>`,Windows PowerShell 用 `Get-FileHash <文件> -Algorithm SHA256`。
26
28
  3. Windows 运行安装包;Linux deb 运行 `sudo apt install ./Kiki_*.deb`;Linux AppImage 先运行 `chmod +x Kiki_*.AppImage`,再运行 `./Kiki_*.AppImage`;macOS 挂载 dmg 并把 Kiki 拖入「应用程序」。
27
29
 
28
- macOS dmg **未经 Apple 签名或公证**。校验后,首次启动时在「应用程序」里按住 Control 键点按 Kiki,选择 **打开** 并确认。若系统仍阻拦且你信任已校验的下载,可运行 `xattr -dr com.apple.quarantine /Applications/Kiki.app` 清除这份应用的隔离标记。需从终端使用内置 CLI 时,先确认 `/usr/local/bin/kiki` 不存在,再依次运行 `sudo mkdir -p /usr/local/bin` 和 `sudo ln -s /Applications/Kiki.app/Contents/MacOS/kiki-server /usr/local/bin/kiki`。Windows SmartScreen 提示与更新细节见 [Kiki 桌面版](./desktop-app.md)。
30
+ macOS dmg **未经 Apple 签名或公证**。校验哈希后,首次启动时在「应用程序」里按住 Control 键点按 Kiki,选择 **打开** 并确认;若系统仍然阻拦,可运行 `xattr -dr com.apple.quarantine /Applications/Kiki.app` 清除这份应用的隔离标记。
31
+
32
+ dmg 不会把 `kiki` 命令加入 `PATH`。若要在终端使用内置 CLI,先确认 `/usr/local/bin/kiki` 不存在,再依次运行:
33
+
34
+ ```sh
35
+ sudo mkdir -p /usr/local/bin
36
+ sudo ln -s /Applications/Kiki.app/Contents/MacOS/kiki-server /usr/local/bin/kiki
37
+ ```
38
+
39
+ Windows 的 SmartScreen 提示与更新细节见 [Kiki 桌面版](./desktop-app.md)。
29
40
 
30
41
  ## 安装 CLI
31
42
 
32
- 若只需终端,请在 [GitHub Releases](https://github.com/X-T-E-R/kiki/releases) 的 `kiki-v<version>` 版本中选择独立可执行文件。Windows 不再单独分发 CLI 文件,由桌面安装包提供 `kiki`。
43
+ 只需终端时,在 [GitHub Releases](https://github.com/X-T-E-R/kiki/releases) 的 `kiki-v<version>` 版本中按平台下载独立可执行文件。Windows 不单独分发 CLI 文件,Windows 上的 `kiki` 由桌面安装包提供。
33
44
 
34
45
  | 平台 | 独立文件 |
35
46
  | --- | --- |
36
47
  | Linux x64 / ARM64 | `kiki-linux-x64` / `kiki-linux-arm64` |
37
48
  | macOS Intel / Apple Silicon | `kiki-darwin-x64` / `kiki-darwin-arm64` |
38
49
 
39
- 下载对应的 `<文件名>.sha256` 并比较哈希。把文件改名为 `kiki`,执行 `chmod +x kiki`,再将其放入 `PATH`。独立 SEA 可执行文件无需 Node.js。`kiki desktop` 可打开已安装的桌面版,未安装则显示安装链接。
50
+ 把可执行文件和同名的 `<文件名>.sha256` 一起下载并比较哈希,然后改名为 `kiki`,执行 `chmod +x kiki`,放到 `PATH` 下的任意目录即可。独立可执行文件不需要 Node.js。桌面版安装之后,`kiki desktop` 会直接打开它;未安装时则会打印下载链接。
40
51
 
41
- 使用 Node.js 24.15.0 或更新版本时,也可选择以下 npm 安装方式:
52
+ 有 Node.js 24.15.0 或更新版本时,也可以从 npm 安装:
42
53
 
43
54
  ```sh
44
55
  npm install -g kiki-agent # CLI/TUI + 对应平台的桌面版
@@ -46,11 +57,13 @@ npm install -g kiki-agent-lite # 仅 CLI/TUI
46
57
  kiki --version
47
58
  ```
48
59
 
49
- 两个 npm 包都提供 `kiki` 命令,同一环境中只选一个。完整版安装时会从 GitHub 下载并校验桌面构建,需要联网;支持 Windows/Linux x64 与 macOS Intel/Apple Silicon。lite 包不下载桌面构建。Windows 下两种方式都需要先安装 [Git for Windows](https://gitforwindows.org/);若 Git Bash 安装在自定义位置,请把 `KIKI_SHELL_PATH` 设置为 `bash.exe` 的绝对路径。
60
+ 两个包只选一个安装,它们提供的是同一个 `kiki` 命令。`kiki-agent` 会在安装时下载并校验对应平台的桌面构建,因此需要联网,覆盖 Windows 与 Linux x64 以及 macOS Intel 和 Apple Silicon;`kiki-agent-lite` 只包含 CLI。
61
+
62
+ Windows 上两个包都依赖 [Git for Windows](https://gitforwindows.org/) 提供的 shell,请在首次运行前装好。Git Bash 装在非默认位置时,把 `KIKI_SHELL_PATH` 设置为 `bash.exe` 的绝对路径。
50
63
 
51
64
  ### 从源码开发
52
65
 
53
- Kiki 的源码仓库是一个 pnpm(Node.js 的包管理器)工作区,源码开发适合想参与开发或调试 CLI 本身的用户。需要 Node.js `24.15.0` 或更高版本以及 pnpm `10.33.0`。在仓库根目录执行:
66
+ 需要 Node.js `24.15.0` 或更高版本和 pnpm `10.33.0`。仓库是 pnpm(Node.js 的包管理器)工作区,在仓库根目录执行:
54
67
 
55
68
  ```sh
56
69
  node --version
@@ -59,7 +72,7 @@ pnpm install
59
72
  pnpm dev:cli -- --help
60
73
  ```
61
74
 
62
- 根目录的 `dev:cli` 脚本会启动本地开发环境,并把 `--help` 转发给 CLI 入口;无需已发布的包或全局安装。
75
+ `dev:cli` 会启动本地开发构建,并把 `--help` 转发给 CLI 入口,不需要发布任何包或做全局安装。
63
76
 
64
77
  ## 更新与卸载
65
78
 
@@ -69,9 +82,11 @@ pnpm dev:cli -- --help
69
82
  kiki --version
70
83
  ```
71
84
 
72
- **更新**:独立 CLI 可用新版 Release 文件替换;npm 安装则运行 `npm install -g kiki-agent@latest` 或 `npm install -g kiki-agent-lite@latest`。Windows 桌面版可在 **设置 → 关于** 中检查并安装已签名的 NSIS 更新,见 [Kiki 桌面版](./desktop-app.md#更新)。Linux 和 macOS 的桌面构建需要手动下载新版,不使用 Windows 的更新 feed。
85
+ **更新**:独立 CLI 用新版 Release 文件替换;npm 安装则运行 `npm install -g kiki-agent@latest` 或 `npm install -g kiki-agent-lite@latest`。Windows 桌面版还可以在 **设置 → 关于** 中检查并安装已签名的 NSIS 更新,见 [Kiki 桌面版](./desktop-app.md#更新)。Linux 和 macOS 桌面版没有应用内更新器,需要自己下载新版构建。
86
+
87
+ **卸载**:独立 CLI 从 `PATH` 中删除;npm 包运行 `npm uninstall -g kiki-agent` 或 `npm uninstall -g kiki-agent-lite`。这两条只卸载 CLI,桌面应用请通过系统卸载:Windows 在「已安装的应用」中操作,Linux deb 用系统包管理器,macOS 把「应用程序」里的 Kiki.app 拖到废纸篓。源码开发直接删除仓库检出即可。
73
88
 
74
- **卸载**:独立 CLI 从 `PATH` 删除;npm 包运行 `npm uninstall -g kiki-agent` 或 `npm uninstall -g kiki-agent-lite`。npm 卸载不会自动删除安装包安装的 Windows 应用或已复制到「应用程序」的 macOS 应用,仍需在系统中卸载。源码开发可删除仓库检出。Windows 桌面版在「已安装的应用」卸载,Linux deb 使用系统包管理器,macOS 删除「应用程序」里的 Kiki.app。删除可执行文件不会删除你的数据——会话历史与配置位于 `~/.kiki/`,下次安装仍可使用;如需一并删除,见[数据路径](../configuration/data-locations.md)。
89
+ 以上操作都不会动你的数据。会话历史与配置位于 `~/.kiki/`,重装后依然可用;[数据路径](../configuration/data-locations.md)说明了如何一并清理。
75
90
 
76
91
  ## 下一步
77
92