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.
- package/README.md +13 -10
- package/dist/docs/en/configuration/config-files.md +63 -20
- package/dist/docs/en/configuration/data-locations.md +12 -4
- package/dist/docs/en/configuration/env-vars.md +4 -6
- package/dist/docs/en/configuration/overrides.md +13 -14
- package/dist/docs/en/configuration/providers.md +8 -6
- package/dist/docs/en/customization/agent-profiles.md +33 -38
- package/dist/docs/en/customization/agents.md +129 -107
- package/dist/docs/en/customization/hooks.md +41 -48
- package/dist/docs/en/customization/personas.md +19 -21
- package/dist/docs/en/customization/plugins.md +180 -156
- package/dist/docs/en/customization/prompt-fields.md +10 -6
- package/dist/docs/en/customization/skills.md +11 -13
- package/dist/docs/en/customization/skins.md +23 -27
- package/dist/docs/en/customization/themes.md +15 -15
- package/dist/docs/en/features/agents.md +85 -0
- package/dist/docs/en/features/daily.md +37 -7
- package/dist/docs/en/features/ecosystem.md +3 -1
- package/dist/docs/en/features/extend.md +7 -1
- package/dist/docs/en/features/freedom.md +4 -0
- package/dist/docs/en/features/index.md +6 -5
- package/dist/docs/en/features/long-work.md +23 -5
- package/dist/docs/en/features/look.md +1 -1
- package/dist/docs/en/features/people.md +10 -2
- package/dist/docs/en/features/spaces.md +16 -4
- package/dist/docs/en/features/workbench.md +11 -3
- package/dist/docs/en/getting-started/desktop-app.md +44 -29
- package/dist/docs/en/getting-started/first-launch.md +32 -21
- package/dist/docs/en/getting-started/installation.md +27 -12
- package/dist/docs/en/getting-started/use-cases.md +35 -35
- package/dist/docs/en/guides/goals.md +9 -7
- package/dist/docs/en/guides/interaction.md +26 -26
- package/dist/docs/en/guides/interface.md +18 -14
- package/dist/docs/en/guides/memory.md +43 -14
- package/dist/docs/en/guides/sessions.md +32 -26
- package/dist/docs/en/guides/settings.md +60 -29
- package/dist/docs/en/index.md +8 -2
- package/dist/docs/en/reference/command.md +8 -4
- package/dist/docs/en/reference/keyboard.md +18 -4
- package/dist/docs/en/reference/model-vocabulary.md +6 -8
- package/dist/docs/en/reference/slash-commands.md +4 -4
- package/dist/docs/en/reference/tools.md +92 -15
- package/dist/docs/en/release-notes/changelog.md +1 -9
- package/dist/docs/en/server/acp.md +1 -1
- package/dist/docs/en/server/ide.md +1 -1
- package/dist/docs/en/server/local-server.md +5 -5
- package/dist/docs/en/server/mcp.md +2 -2
- package/dist/docs/en/server/rest-api.md +79 -5
- package/dist/docs/en/server/sdk.md +2 -2
- package/dist/docs/zh/configuration/config-files.md +56 -15
- package/dist/docs/zh/configuration/data-locations.md +12 -4
- package/dist/docs/zh/configuration/env-vars.md +4 -6
- package/dist/docs/zh/configuration/overrides.md +13 -14
- package/dist/docs/zh/configuration/providers.md +7 -5
- package/dist/docs/zh/customization/agent-profiles.md +31 -36
- package/dist/docs/zh/customization/agents.md +120 -98
- package/dist/docs/zh/customization/hooks.md +35 -42
- package/dist/docs/zh/customization/personas.md +16 -18
- package/dist/docs/zh/customization/plugins.md +167 -142
- package/dist/docs/zh/customization/prompt-fields.md +9 -5
- package/dist/docs/zh/customization/skills.md +10 -12
- package/dist/docs/zh/customization/skins.md +19 -23
- package/dist/docs/zh/customization/themes.md +12 -12
- package/dist/docs/zh/features/agents.md +85 -0
- package/dist/docs/zh/features/daily.md +37 -7
- package/dist/docs/zh/features/ecosystem.md +3 -1
- package/dist/docs/zh/features/extend.md +7 -1
- package/dist/docs/zh/features/freedom.md +4 -0
- package/dist/docs/zh/features/index.md +6 -5
- package/dist/docs/zh/features/long-work.md +22 -4
- package/dist/docs/zh/features/look.md +1 -1
- package/dist/docs/zh/features/people.md +10 -2
- package/dist/docs/zh/features/spaces.md +15 -3
- package/dist/docs/zh/features/workbench.md +11 -3
- package/dist/docs/zh/getting-started/desktop-app.md +43 -28
- package/dist/docs/zh/getting-started/first-launch.md +32 -21
- package/dist/docs/zh/getting-started/installation.md +26 -11
- package/dist/docs/zh/getting-started/use-cases.md +35 -37
- package/dist/docs/zh/guides/goals.md +8 -8
- package/dist/docs/zh/guides/interaction.md +25 -25
- package/dist/docs/zh/guides/interface.md +18 -14
- package/dist/docs/zh/guides/memory.md +43 -14
- package/dist/docs/zh/guides/sessions.md +30 -24
- package/dist/docs/zh/guides/settings.md +54 -23
- package/dist/docs/zh/index.md +7 -1
- package/dist/docs/zh/reference/command.md +7 -3
- package/dist/docs/zh/reference/keyboard.md +18 -4
- package/dist/docs/zh/reference/model-vocabulary.md +6 -8
- package/dist/docs/zh/reference/slash-commands.md +3 -3
- package/dist/docs/zh/reference/tools.md +74 -9
- package/dist/docs/zh/release-notes/changelog.md +1 -9
- package/dist/docs/zh/server/acp.md +1 -1
- package/dist/docs/zh/server/ide.md +1 -1
- package/dist/docs/zh/server/local-server.md +5 -5
- package/dist/docs/zh/server/mcp.md +2 -2
- package/dist/docs/zh/server/rest-api.md +69 -1
- package/dist/docs/zh/server/sdk.md +2 -2
- package/dist/main.mjs +12545 -3456
- package/dist/web/assets/AppErrorBoundary-RFIAb-Uf.js +1 -0
- package/dist/web/assets/NavScopeBoundary-DY_ET7A-.js +1 -0
- package/dist/web/assets/{arc-y2SkSoyr.js → arc-CMgTB1m7.js} +1 -1
- package/dist/web/assets/{architectureDiagram-3BPJPVTR-uCwLz53m.js → architectureDiagram-3BPJPVTR-BU79ou2C.js} +1 -1
- package/dist/web/assets/{blockDiagram-GPEHLZMM-BZyWv36G.js → blockDiagram-GPEHLZMM-Bkuldod2.js} +1 -1
- package/dist/web/assets/{c4Diagram-AAUBKEIU-DKGx9i50.js → c4Diagram-AAUBKEIU-C3WMeqyu.js} +1 -1
- package/dist/web/assets/channel-DpDZUJRn.js +1 -0
- package/dist/web/assets/{chunk-2J33WTMH-CSkrhrsp.js → chunk-2J33WTMH-CesyWmwo.js} +1 -1
- package/dist/web/assets/{chunk-4BX2VUAB-CtxMoJ68.js → chunk-4BX2VUAB-C7rghYTf.js} +1 -1
- package/dist/web/assets/{chunk-55IACEB6-Dos3ftEy.js → chunk-55IACEB6-BqRHhwtz.js} +1 -1
- package/dist/web/assets/{chunk-727SXJPM-wbzEYK9z.js → chunk-727SXJPM-BhSqCRBc.js} +1 -1
- package/dist/web/assets/{chunk-AQP2D5EJ-B9GKvCD6.js → chunk-AQP2D5EJ-DdYE2ZVZ.js} +1 -1
- package/dist/web/assets/{chunk-FMBD7UC4-u5Y2P6IX.js → chunk-FMBD7UC4-BCRPUxDF.js} +1 -1
- package/dist/web/assets/{chunk-ND2GUHAM-B8rFKkTV.js → chunk-ND2GUHAM-CuvyDjTR.js} +1 -1
- package/dist/web/assets/{chunk-QZHKN3VN-EQsKtuD-.js → chunk-QZHKN3VN-BU5vAS78.js} +1 -1
- package/dist/web/assets/classDiagram-4FO5ZUOK-Bju1GfNu.js +1 -0
- package/dist/web/assets/classDiagram-v2-Q7XG4LA2-Bju1GfNu.js +1 -0
- package/dist/web/assets/client-C0oH7-8r.js +2 -0
- package/dist/web/assets/connection-BhO2nh7P.js +1 -0
- package/dist/web/assets/{cose-bilkent-S5V4N54A-D6dr5mIW.js → cose-bilkent-S5V4N54A-CXrvsA1a.js} +1 -1
- package/dist/web/assets/{dagre-BM42HDAG-Dnyhc4Hn.js → dagre-BM42HDAG-TaAea3Rt.js} +1 -1
- package/dist/web/assets/{diagram-2AECGRRQ-CYXkWdne.js → diagram-2AECGRRQ-CdEH4jGt.js} +1 -1
- package/dist/web/assets/{diagram-5GNKFQAL-DPwBf5Ag.js → diagram-5GNKFQAL-A0jZ_p-T.js} +1 -1
- package/dist/web/assets/{diagram-KO2AKTUF-DNeLYZ8X.js → diagram-KO2AKTUF-miHWORz3.js} +1 -1
- package/dist/web/assets/{diagram-LMA3HP47-zU8RsQTX.js → diagram-LMA3HP47-BlUIwEIg.js} +1 -1
- package/dist/web/assets/{diagram-OG6HWLK6-Cf9Mm94H.js → diagram-OG6HWLK6-DwDzMhEg.js} +1 -1
- package/dist/web/assets/{erDiagram-TEJ5UH35-Ch4CeiUI.js → erDiagram-TEJ5UH35-BJr5w62i.js} +1 -1
- package/dist/web/assets/export-BlxaZKEe.js +2 -0
- package/dist/web/assets/{flowDiagram-I6XJVG4X-Csn6WqEH.js → flowDiagram-I6XJVG4X-BP7KSFjx.js} +1 -1
- package/dist/web/assets/{ganttDiagram-6RSMTGT7-DsuBgEyu.js → ganttDiagram-6RSMTGT7-BstLBBof.js} +1 -1
- package/dist/web/assets/{gitGraphDiagram-PVQCEYII-CPA7jCxU.js → gitGraphDiagram-PVQCEYII-C57s7nZ-.js} +1 -1
- package/dist/web/assets/highlighted-body-OFNGDK62-BVb-7KsA.js +1 -0
- package/dist/web/assets/index-69qhvTvD.js +1 -0
- package/dist/web/assets/{index-BYUHmd8w.js → index-BDNM6yJI.js} +2 -2
- package/dist/web/assets/{index-BGgZxlEQ.js → index-BJF_gEDs.js} +2 -2
- package/dist/web/assets/index-BOwMP6BP.js +1 -0
- package/dist/web/assets/{index-C69a5Mcz.js → index-BZsyXCqm.js} +1 -1
- package/dist/web/assets/{index-C7EA7a_g.js → index-Bfl4JiNq.js} +2 -2
- package/dist/web/assets/index-BlD3AKX-.js +1 -0
- package/dist/web/assets/{index-CIymCfcP.js → index-BnvW0EvQ.js} +1 -1
- package/dist/web/assets/index-C4rmWyOm.js +1 -0
- package/dist/web/assets/index-CGLcb3HY.js +1 -0
- package/dist/web/assets/{index-kWBxPqIX.js → index-CPvOeQPX.js} +1 -1
- package/dist/web/assets/index-Cjbe0JKM.js +1 -0
- package/dist/web/assets/index-CmYoJWUm.js +1 -0
- package/dist/web/assets/index-CtUFrjKe.js +1 -0
- package/dist/web/assets/index-DDvDRMTK.js +1 -0
- package/dist/web/assets/index-DSpndwAR.css +1 -0
- package/dist/web/assets/index-D_JjTHxi.js +1 -0
- package/dist/web/assets/index-DbuwcnbT.js +1 -0
- package/dist/web/assets/index-DcXyS0nN.js +1 -0
- package/dist/web/assets/index-Dcl9ruKA.js +1 -0
- package/dist/web/assets/index-DgwALPNA.js +121 -0
- package/dist/web/assets/{index-DoN1FTEe.js → index-DkE8hRT1.js} +2 -2
- package/dist/web/assets/index-DsyRBZ4h.js +1 -0
- package/dist/web/assets/{index-29zav3JI.js → index-DuudNhLL.js} +4 -4
- package/dist/web/assets/index-Gc4F0b2f.js +1 -0
- package/dist/web/assets/index-HGqqwKoV.js +13 -0
- package/dist/web/assets/index-KchrJnno.js +3 -0
- package/dist/web/assets/{index-B0KNSyji.js → index-Tmi2BPYU.js} +1 -1
- package/dist/web/assets/index-Ya4GuDs0.js +1 -0
- package/dist/web/assets/index-_aDaKqLB.js +1 -0
- package/dist/web/assets/index-_qwOAotB.js +1 -0
- package/dist/web/assets/index-hnIkczza.js +7 -0
- package/dist/web/assets/{infoDiagram-5YYISTIA-D3Q__m62.js → infoDiagram-5YYISTIA-CifuVY6C.js} +1 -1
- package/dist/web/assets/{ishikawaDiagram-YF4QCWOH-CcvCBuZ5.js → ishikawaDiagram-YF4QCWOH-Cd60vQUi.js} +1 -1
- package/dist/web/assets/{journeyDiagram-JHISSGLW-COZU4LNt.js → journeyDiagram-JHISSGLW-Cb3Xl_wl.js} +1 -1
- package/dist/web/assets/{kanban-definition-UN3LZRKU-BrXjBoAU.js → kanban-definition-UN3LZRKU-Ei6ThuZt.js} +1 -1
- package/dist/web/assets/{linear-BgP1STFi.js → linear-CDZJx-o2.js} +1 -1
- package/dist/web/assets/mermaid-GHXKKRXX-DFxyxD7G.js +331 -0
- package/dist/web/assets/{mindmap-definition-RKZ34NQL-CgjSrE5r.js → mindmap-definition-RKZ34NQL-B0ygxzkx.js} +1 -1
- package/dist/web/assets/navViewState-Ck_HK-TK.js +1 -0
- package/dist/web/assets/{pieDiagram-4H26LBE5-DTfe1sKA.js → pieDiagram-4H26LBE5-B2FdrvDv.js} +1 -1
- package/dist/web/assets/{quadrantDiagram-W4KKPZXB-D95hfh0q.js → quadrantDiagram-W4KKPZXB-CwpOTy3d.js} +1 -1
- package/dist/web/assets/{requirementDiagram-4Y6WPE33-DtSLi7Mh.js → requirementDiagram-4Y6WPE33-ExdZNzLQ.js} +1 -1
- package/dist/web/assets/{sankeyDiagram-5OEKKPKP-gi_dJpcU.js → sankeyDiagram-5OEKKPKP-u0EZKD7D.js} +1 -1
- package/dist/web/assets/{sequenceDiagram-3UESZ5HK-DKQ9a72t.js → sequenceDiagram-3UESZ5HK-BXHMy5DY.js} +1 -1
- package/dist/web/assets/{spaces-B2Ccyh_T.js → spaces-C8n7xQPx.js} +1 -1
- package/dist/web/assets/{stateDiagram-AJRCARHV-Bz7tmSqa.js → stateDiagram-AJRCARHV-DMXx7ell.js} +1 -1
- package/dist/web/assets/stateDiagram-v2-BHNVJYJU-Bydq1_By.js +1 -0
- package/dist/web/assets/theme-BBnHttAf.js +1 -0
- package/dist/web/assets/{timeline-definition-PNZ67QCA-BfMXPwhV.js → timeline-definition-PNZ67QCA-DtqVG_4u.js} +1 -1
- package/dist/web/assets/{vennDiagram-CIIHVFJN-WLxW2KT5.js → vennDiagram-CIIHVFJN-Dom0ex8r.js} +1 -1
- package/dist/web/assets/{wardley-L42UT6IY-DiiqwIdq.js → wardley-L42UT6IY-C-RstmuQ.js} +1 -1
- package/dist/web/assets/{wardleyDiagram-YWT4CUSO-DmCukWuw.js → wardleyDiagram-YWT4CUSO-C8CzNfdf.js} +1 -1
- package/dist/web/assets/{xychartDiagram-2RQKCTM6-Cfq1W2tT.js → xychartDiagram-2RQKCTM6-1AxVTyB6.js} +1 -1
- package/dist/web/index.html +2 -2
- package/native/auth-native/prebuilds/linux-arm64/auth-native.node +0 -0
- package/native/auth-native/prebuilds/linux-x64/auth-native.node +0 -0
- package/native/auth-native/prebuilds/win32-arm64/auth-native.node +0 -0
- package/native/auth-native/prebuilds/win32-x64/auth-native.node +0 -0
- package/package.json +1 -1
- package/dist/web/assets/AppErrorBoundary-DWpgwxFV.js +0 -1
- package/dist/web/assets/NavScopeBoundary-D8Lf1G0U.js +0 -1
- package/dist/web/assets/channel-BGdXootG.js +0 -1
- package/dist/web/assets/classDiagram-4FO5ZUOK-CPcnLy_H.js +0 -1
- package/dist/web/assets/classDiagram-v2-Q7XG4LA2-CPcnLy_H.js +0 -1
- package/dist/web/assets/client-DSIbyfoz.js +0 -2
- package/dist/web/assets/connection-DYZn9oPZ.js +0 -1
- package/dist/web/assets/export-Bq8ZECqX.js +0 -2
- package/dist/web/assets/highlighted-body-OFNGDK62-CDPBxM_E.js +0 -1
- package/dist/web/assets/index-AksnytJj.js +0 -1
- package/dist/web/assets/index-B8xhhYDh.css +0 -1
- package/dist/web/assets/index-BUrlrKap.js +0 -1
- package/dist/web/assets/index-B_5-HLed.js +0 -62
- package/dist/web/assets/index-BfmoxdpP.js +0 -1
- package/dist/web/assets/index-Bo3e-ohM.js +0 -3
- package/dist/web/assets/index-BrYV9gV_.js +0 -1
- package/dist/web/assets/index-C8XUtAvK.js +0 -1
- package/dist/web/assets/index-C9uil5my.js +0 -13
- package/dist/web/assets/index-CKpWHSp9.js +0 -1
- package/dist/web/assets/index-CLKBgQxV.js +0 -1
- package/dist/web/assets/index-CTyyUNWj.js +0 -7
- package/dist/web/assets/index-D7cg9qYZ.js +0 -1
- package/dist/web/assets/index-D7dg8R_q.js +0 -1
- package/dist/web/assets/index-DCSpedV_.js +0 -1
- package/dist/web/assets/index-DLbD0Nx5.js +0 -1
- package/dist/web/assets/index-DaEzbvvu.js +0 -1
- package/dist/web/assets/index-DhbcjMZF.js +0 -1
- package/dist/web/assets/index-Dw2h88mF.js +0 -1
- package/dist/web/assets/index-FcMtfmKv.js +0 -1
- package/dist/web/assets/index-XFq9Kgg0.js +0 -1
- package/dist/web/assets/index-iI2mM43w.js +0 -1
- package/dist/web/assets/index-oXOF7lko.js +0 -1
- package/dist/web/assets/locale-CANfezJ4.js +0 -17
- package/dist/web/assets/mermaid-GHXKKRXX-_JLagMll.js +0 -321
- package/dist/web/assets/navViewState-DS5LnMYc.js +0 -1
- package/dist/web/assets/settings-CcwMWXbp.js +0 -42
- package/dist/web/assets/stateDiagram-v2-BHNVJYJU-D6-wdUbw.js +0 -1
- package/dist/web/assets/theme-DlDhDxeD.js +0 -1
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
# Installation
|
|
2
2
|
|
|
3
|
-
Kiki ships
|
|
3
|
+
Kiki ships as three forms — the **Kiki desktop app** for Windows, Linux, and macOS, the **CLI/TUI** (TUI — the text interface you type into inside a terminal), and a local **server** for browser and API clients. They share one background daemon (the process Kiki keeps running so every form sees the same session data) and one session store, so you can start a task in the terminal and pick it up in the desktop app.
|
|
4
|
+
|
|
5
|
+
This page covers installing and updating each form. [First launch](./first-launch.md) covers what to do next.
|
|
4
6
|
|
|
5
7
|
::: tip Before you install
|
|
6
|
-
Kiki's terminal form runs
|
|
8
|
+
Kiki's terminal form runs in any modern terminal. Windows Terminal and your system's built-in terminal need no changes.
|
|
7
9
|
|
|
8
|
-
|
|
10
|
+
A terminal with true-color and font ligatures renders the interface more crisply — [Kitty](https://sw.kovidgoyal.net/kitty/) and [Ghostty](https://ghostty.org/) are two good choices. Any terminal works if you skip this.
|
|
9
11
|
:::
|
|
10
12
|
|
|
11
13
|
## Install the desktop app
|
|
@@ -25,20 +27,29 @@ macOS needs **13.5 or later**; that floor comes from the bundled runtime, so it
|
|
|
25
27
|
2. Download the desktop bundle for your system and its adjacent `.sha256` file. Compare the published hash with your downloaded file (`shasum -a 256 <file>` on macOS, `sha256sum <file>` on Linux, or `Get-FileHash <file> -Algorithm SHA256` in Windows PowerShell).
|
|
26
28
|
3. Install it: run the Windows installer or `sudo apt install ./Kiki_*.deb`; on Linux AppImage, run `chmod +x Kiki_*.AppImage` then `./Kiki_*.AppImage`; on macOS, mount the dmg and drag Kiki to Applications.
|
|
27
29
|
|
|
28
|
-
The macOS dmg is **not Apple-signed or notarized**. After verifying
|
|
30
|
+
The macOS dmg is **not Apple-signed or notarized**. After verifying the hash, Control-click the app in Applications and choose **Open** on first launch, then confirm **Open** in the dialog. If macOS still blocks it, remove the quarantine flag from that copy with `xattr -dr com.apple.quarantine /Applications/Kiki.app`.
|
|
31
|
+
|
|
32
|
+
The dmg puts no `kiki` command on your `PATH`. To use the bundled CLI from a terminal, first check that `/usr/local/bin/kiki` does not already exist, then run:
|
|
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
|
+
For the Windows SmartScreen prompt and updater details, see [Kiki desktop](./desktop-app.md).
|
|
29
40
|
|
|
30
41
|
## Install the CLI
|
|
31
42
|
|
|
32
|
-
For a terminal-only install,
|
|
43
|
+
For a terminal-only install, pick the standalone executable for your platform from a `kiki-v<version>` tag on [GitHub Releases](https://github.com/X-T-E-R/kiki/releases). Windows has no standalone CLI file; the desktop installer provides `kiki` there.
|
|
33
44
|
|
|
34
45
|
| Platform | Standalone file |
|
|
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
|
-
Download its `<filename>.sha256`
|
|
50
|
+
Download the file together with its `<filename>.sha256` companion, compare the two hashes, rename the executable to `kiki`, run `chmod +x kiki`, and put it somewhere on your `PATH`. A standalone executable needs no Node.js. Once the desktop app is installed, `kiki desktop` opens it; without an installation it prints a download link.
|
|
40
51
|
|
|
41
|
-
With Node.js 24.15.0 or later
|
|
52
|
+
With Node.js 24.15.0 or later you can install from npm instead:
|
|
42
53
|
|
|
43
54
|
```sh
|
|
44
55
|
npm install -g kiki-agent # CLI/TUI and the matching desktop build
|
|
@@ -46,11 +57,13 @@ npm install -g kiki-agent-lite # CLI/TUI only
|
|
|
46
57
|
kiki --version
|
|
47
58
|
```
|
|
48
59
|
|
|
49
|
-
|
|
60
|
+
Install one of the two, not both — each one provides the same `kiki` command. `kiki-agent` also downloads the desktop build for your platform and verifies its SHA-256, so it needs network access during install and covers Windows and Linux x64 plus macOS Intel and Apple Silicon. `kiki-agent-lite` ships the CLI only.
|
|
61
|
+
|
|
62
|
+
On Windows, both packages need [Git for Windows](https://gitforwindows.org/) for their shell dependency — install it before your first run. If you installed Git Bash somewhere other than the default location, set `KIKI_SHELL_PATH` to the absolute path of `bash.exe`.
|
|
50
63
|
|
|
51
64
|
### Development from source
|
|
52
65
|
|
|
53
|
-
|
|
66
|
+
Working on the CLI itself needs Node.js `24.15.0` or later and pnpm `10.33.0`. The repository is a pnpm (Node.js package manager) workspace; from its root:
|
|
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
|
-
|
|
75
|
+
`dev:cli` starts the local development build and forwards `--help` to the CLI entry point, so nothing needs to be published or installed globally.
|
|
63
76
|
|
|
64
77
|
## Update and uninstall
|
|
65
78
|
|
|
@@ -69,9 +82,11 @@ For a release build, verify the installed version before upgrading:
|
|
|
69
82
|
kiki --version
|
|
70
83
|
```
|
|
71
84
|
|
|
72
|
-
**Update**: replace a standalone `kiki` executable with the matching
|
|
85
|
+
**Update**: replace a standalone `kiki` executable with the newer file from the matching Release asset, or run `npm install -g kiki-agent@latest` / `npm install -g kiki-agent-lite@latest` for an npm install. On Windows the desktop app can also check for and install signed NSIS updates from **Settings → About**; see [Kiki desktop](./desktop-app.md#update). Linux and macOS desktop bundles have no in-app updater, so download the newer bundle yourself.
|
|
86
|
+
|
|
87
|
+
**Uninstall**: delete a standalone `kiki` executable from your `PATH`, or run `npm uninstall -g kiki-agent` / `npm uninstall -g kiki-agent-lite`. That removes the CLI only — remove the desktop app through the system: **Installed apps** in Windows Settings, your package manager for a Linux deb, or dragging Kiki.app out of Applications on macOS. To stop working on the source, delete your checkout.
|
|
73
88
|
|
|
74
|
-
|
|
89
|
+
None of these steps touch your data. Session history and configuration live under `~/.kiki/` and are still there after you reinstall; [Data locations](../configuration/data-locations.md) explains how to remove them deliberately.
|
|
75
90
|
|
|
76
91
|
## Next steps
|
|
77
92
|
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
# Common use cases
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Each section below is a situation you will actually hit, with prompts you can send as they are. Adapt the wording to your project.
|
|
4
4
|
|
|
5
5
|
## Understanding an unfamiliar project
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
Plan mode (the agent writes out what it intends to do and waits for your go-ahead before touching files) is worth turning on before you ask for changes in code you have not read yet. Start the CLI with `--plan`, press `Shift-Tab`, or type `/plan` in a session:
|
|
8
8
|
|
|
9
|
-
```
|
|
9
|
+
```text
|
|
10
10
|
Give me an overview of this repository's architecture. Specifically:
|
|
11
11
|
1. Where is the entry point and what happens at startup?
|
|
12
12
|
2. How do the main modules depend on each other?
|
|
@@ -16,21 +16,21 @@ Finally, draw a simple module dependency diagram.
|
|
|
16
16
|
|
|
17
17
|
You can also focus on a specific question:
|
|
18
18
|
|
|
19
|
-
```
|
|
19
|
+
```text
|
|
20
20
|
How does the event loop in src/runtime work? Where do events originate, and what consumes them?
|
|
21
21
|
```
|
|
22
22
|
|
|
23
|
-
```
|
|
23
|
+
```text
|
|
24
24
|
How is "permission approval" implemented in this project? Which files are involved, and what are the key types?
|
|
25
25
|
```
|
|
26
26
|
|
|
27
|
-
For large
|
|
27
|
+
For a large investigation, ask the main agent (the one you are talking to) to split the work across sub-agents, which work in parallel on pieces of it. [Agents and sub-agents](../customization/agents.md) covers how to prompt for that.
|
|
28
28
|
|
|
29
29
|
## Implementing a new feature
|
|
30
30
|
|
|
31
|
-
|
|
31
|
+
State the requirement and what "done" looks like. For a change that touches several files, confirm the approach in Plan mode before it runs:
|
|
32
32
|
|
|
33
|
-
```
|
|
33
|
+
```text
|
|
34
34
|
Add a retry utility under src/utils:
|
|
35
35
|
- Signature: retry<T>(fn: () => Promise<T>, options): Promise<T>
|
|
36
36
|
- Options: maxAttempts, initialDelayMs, backoffFactor
|
|
@@ -40,15 +40,15 @@ Add a retry utility under src/utils:
|
|
|
40
40
|
|
|
41
41
|
If the result isn't right, just describe what you want changed — no need to edit manually:
|
|
42
42
|
|
|
43
|
-
```
|
|
43
|
+
```text
|
|
44
44
|
The backoff calculation used a fixed value. I'd like to add some jitter to avoid the thundering-herd effect. Update the implementation and the tests.
|
|
45
45
|
```
|
|
46
46
|
|
|
47
47
|
## Fixing a bug
|
|
48
48
|
|
|
49
|
-
Give the symptom,
|
|
49
|
+
Give the symptom, how to reproduce it, and what you expected — all in one message, so the agent does not have to ask you back:
|
|
50
50
|
|
|
51
|
-
```
|
|
51
|
+
```text
|
|
52
52
|
Running npm test occasionally produces this error:
|
|
53
53
|
|
|
54
54
|
TypeError: Cannot read properties of undefined (reading 'id')
|
|
@@ -57,89 +57,89 @@ Running npm test occasionally produces this error:
|
|
|
57
57
|
It only appears in test cases that concurrently trigger multiple updates. Please locate the cause and fix it, then run the full test suite to confirm.
|
|
58
58
|
```
|
|
59
59
|
|
|
60
|
-
When the
|
|
60
|
+
When you do not know the cause yet, ask for investigation before any edits:
|
|
61
61
|
|
|
62
|
-
```
|
|
62
|
+
```text
|
|
63
63
|
User feedback: after a successful login, the first page refresh sends you back to the login page; a second refresh works fine. Please find the most likely causes first and list the most suspicious locations. I'll confirm the direction before you start making changes.
|
|
64
64
|
```
|
|
65
65
|
|
|
66
|
-
|
|
66
|
+
When the fix is mechanical, you can hand it over as-is:
|
|
67
67
|
|
|
68
|
-
```
|
|
68
|
+
```text
|
|
69
69
|
Run the test suite, fix every failing test case, then run it again to confirm everything is green.
|
|
70
70
|
```
|
|
71
71
|
|
|
72
72
|
## Writing tests and refactoring
|
|
73
73
|
|
|
74
|
-
|
|
74
|
+
Work with a clear boundary and a checkable result is the easiest kind to hand over:
|
|
75
75
|
|
|
76
|
-
```
|
|
76
|
+
```text
|
|
77
77
|
src/parser/markdown.ts currently has almost no tests. Please add a unit test suite covering: normal paragraphs, nested lists, code blocks, tables, blockquotes, and mixed content. Follow the testing style already used in the project.
|
|
78
78
|
```
|
|
79
79
|
|
|
80
|
-
```
|
|
80
|
+
```text
|
|
81
81
|
Extract the repeated "read body → validate → log → respond" pattern in src/handlers into a middleware. Run the tests afterwards to make sure existing behavior is unchanged.
|
|
82
82
|
```
|
|
83
83
|
|
|
84
|
-
For
|
|
84
|
+
For a refactor that spans several files, confirm the approach in Plan mode first. Another option is to `/fork` the session, try the refactor in the copy, and switch between them from `/sessions` — the original session keeps running either way.
|
|
85
85
|
|
|
86
86
|
## One-off scripts and automation
|
|
87
87
|
|
|
88
|
-
Batch file edits, statistics
|
|
88
|
+
Batch file edits, statistics, and research comparisons each fit in a single prompt:
|
|
89
89
|
|
|
90
|
-
```
|
|
90
|
+
```text
|
|
91
91
|
Change all var declarations in .js files under src to const or let, preferring const where possible. Run lint once you're done to confirm.
|
|
92
92
|
```
|
|
93
93
|
|
|
94
|
-
```
|
|
94
|
+
```text
|
|
95
95
|
Analyze the access logs in logs/ from the past 7 days. For each API path, compute the call count, p50, and p99 response times, and output the results as a Markdown table.
|
|
96
96
|
```
|
|
97
97
|
|
|
98
|
-
```
|
|
98
|
+
```text
|
|
99
99
|
Research the main dependency injection options for TypeScript (tsyringe, inversify, awilix). Compare them across three dimensions: API style, decorator requirements, and runtime overhead. Give me a recommendation that fits on one page.
|
|
100
100
|
```
|
|
101
101
|
|
|
102
|
-
For batch
|
|
102
|
+
For a batch of work you already trust, you can stop approving each call. Start the CLI with `--yolo` or type `/yolo` in a session — both switch the session to YOLO mode, where tool calls including reads of sensitive files run without asking, unless a permission rule denies them. Exiting Plan mode is still reviewed. For a narrower option, pre-approve specific tools in the `[permission]` section of [Configuration files](../configuration/config-files.md#permission).
|
|
103
103
|
|
|
104
104
|
## Scheduled tasks and reminders
|
|
105
105
|
|
|
106
|
-
|
|
106
|
+
In an interactive session, ask the agent for a one-time reminder or a recurring task. It writes a cron expression (the standard way to express "when to run") in your local timezone and re-sends the prompt into the same session each time it fires:
|
|
107
107
|
|
|
108
|
-
```
|
|
108
|
+
```text
|
|
109
109
|
Remind me at 2:30 PM to check the deployment.
|
|
110
110
|
```
|
|
111
111
|
|
|
112
|
-
```
|
|
112
|
+
```text
|
|
113
113
|
Every weekday at 9 AM, summarize recent CI failures for me.
|
|
114
114
|
```
|
|
115
115
|
|
|
116
|
-
```
|
|
116
|
+
```text
|
|
117
117
|
Check the production health endpoint every hour and let me know if anything looks wrong.
|
|
118
118
|
```
|
|
119
119
|
|
|
120
|
-
```
|
|
120
|
+
```text
|
|
121
121
|
Come back in about 10 minutes and check whether the build has finished.
|
|
122
122
|
```
|
|
123
123
|
|
|
124
|
-
|
|
124
|
+
A schedule belongs to the session that created it. Closing the terminal is fine — resume that same session with `kiki --session` and the schedule reloads and keeps firing. A brand-new session starts with no schedules. Recurring schedules stop after 7 days; on the last run the agent is told the schedule has expired and renews it only if your original instructions asked for that.
|
|
125
125
|
|
|
126
|
-
To see what
|
|
126
|
+
To see what is pending, just ask — the agent reads the schedule list. To cancel one, tell the agent to remove it or give its 8-character ID. [Scheduled tasks](../reference/tools.md#scheduled-tasks) documents the tool, and `KIKI_DISABLE_CRON=1` turns scheduled tasks off entirely.
|
|
127
127
|
|
|
128
128
|
## Generating and maintaining documentation
|
|
129
129
|
|
|
130
|
-
```
|
|
130
|
+
```text
|
|
131
131
|
I just changed the interface signature in src/auth/login.ts. Please update the corresponding JSDoc, the example code in README, and any paragraphs in docs/en/guides that mention this interface.
|
|
132
132
|
```
|
|
133
133
|
|
|
134
|
-
```
|
|
134
|
+
```text
|
|
135
135
|
For every public function under src/api that is missing a docstring, add a documentation comment following the style of the existing ones.
|
|
136
136
|
```
|
|
137
137
|
|
|
138
|
-
```
|
|
138
|
+
```text
|
|
139
139
|
Based on the command implementations in src/cli, generate a draft command reference listing each subcommand, its arguments, and default values. Put it in docs/en/reference for me to review later.
|
|
140
140
|
```
|
|
141
141
|
|
|
142
|
-
|
|
142
|
+
To keep a record or do a retrospective, `kiki export <sessionId>` packages a session as a ZIP; `/export-md` inside the TUI writes a readable Markdown transcript.
|
|
143
143
|
|
|
144
144
|
## Next steps
|
|
145
145
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Goals
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
A goal keeps Kiki working toward an outcome across turns (one turn is a full pass of the agent handling one message). A prompt says what to do next; a goal says what must become true. Use `/goal` when there is a finish line but the next useful step depends on what the agent finds along the way — a batch of failing tests, or the root cause of a broken build.
|
|
4
4
|
|
|
5
5
|
## Start a goal
|
|
6
6
|
|
|
@@ -24,7 +24,7 @@ Avoid goals that only name a broad direction:
|
|
|
24
24
|
/goal Find all bugs in this codebase.
|
|
25
25
|
```
|
|
26
26
|
|
|
27
|
-
That goal
|
|
27
|
+
That goal says nothing about what success looks like, what to inspect, or when to stop, so the agent may block immediately or work far longer than you expected.
|
|
28
28
|
|
|
29
29
|
### When to use goals
|
|
30
30
|
|
|
@@ -78,9 +78,9 @@ A goal can stop in three ways:
|
|
|
78
78
|
- **paused**: you paused it, interrupted the turn, resumed a session that had an active goal, or hit a model, provider, or runtime error
|
|
79
79
|
- **blocked**: Kiki needs input, cannot complete the goal as stated, or reached a budget limit. When the agent blocks a goal, it writes a short message explaining why.
|
|
80
80
|
|
|
81
|
-
|
|
81
|
+
Put your stop conditions in the objective itself — there is no separate stop-limit flag.
|
|
82
82
|
|
|
83
|
-
A blocked goal does not
|
|
83
|
+
A blocked goal does not cancel work it already started. When a task launched for it finishes, the result wakes the main agent to process that one completion; the goal itself stays blocked until you resume it. The same result is held for your next message if you pause or cancel the goal, or if the budget runs out.
|
|
84
84
|
|
|
85
85
|
## Manage goals in the web UI
|
|
86
86
|
|
|
@@ -90,13 +90,13 @@ Use the strip actions to pause an active goal, resume a paused or blocked goal,
|
|
|
90
90
|
|
|
91
91
|
## Queue upcoming goals
|
|
92
92
|
|
|
93
|
-
|
|
93
|
+
When a goal finishes quickly and you already know what comes next, queue it instead of waiting:
|
|
94
94
|
|
|
95
95
|
```sh
|
|
96
96
|
/goal next Update the release notes after the tests pass
|
|
97
97
|
```
|
|
98
98
|
|
|
99
|
-
|
|
99
|
+
The agent does not see queued goals while the current one runs. Once the current goal completes, Kiki starts the first queued goal exactly as if you had typed `/goal <objective>`.
|
|
100
100
|
|
|
101
101
|
If no goal is active, `/goal next <objective>` starts that objective immediately. It behaves like `/goal <objective>` and shows a status message before the goal starts.
|
|
102
102
|
|
|
@@ -114,7 +114,9 @@ If the current goal is paused, canceled, or blocked, Kiki does not start the nex
|
|
|
114
114
|
|
|
115
115
|
Goal mode is useful for work that can be checked with files, tests, command output, generated artifacts, or a clear written report. It is less useful for a one-off edit or a question that only needs one answer.
|
|
116
116
|
|
|
117
|
-
|
|
117
|
+
Goal mode suits work you can check — files, tests, command output, generated artifacts, a written report. It is overkill for a one-off edit or a question with one answer.
|
|
118
|
+
|
|
119
|
+
Your permission mode decides whether tool calls wait for you. In `manual` mode, goal work pauses for approval on tool calls; for unattended work, pick a mode that matches the risk of the repository and the commands the agent will run.
|
|
118
120
|
|
|
119
121
|
In non-interactive prompt mode (`kiki -p`, which runs one prompt and exits), only goal creation is supported:
|
|
120
122
|
|
|
@@ -1,49 +1,47 @@
|
|
|
1
1
|
# Interaction and input
|
|
2
2
|
|
|
3
|
-
The
|
|
3
|
+
The CLI and TUI are a terminal interface built from the input box, the conversation view, and the status bar. This page covers typing and pasting, the approval flow, and the modes you can switch between.
|
|
4
4
|
|
|
5
5
|
## Input box basics
|
|
6
6
|
|
|
7
|
-
The input box accepts free-form text.
|
|
7
|
+
The input box accepts free-form text. `Enter` sends; `Shift-Enter` / `Ctrl-J` insert a newline. When it is empty, `↑` / `↓` browse what you have typed before in this working directory, shell commands included.
|
|
8
8
|
|
|
9
|
-
**
|
|
9
|
+
**Leaving the CLI**: `Ctrl-D` with an empty input box, `Ctrl-C` twice while idle, or `/exit`. All three need the agent to be idle — during streaming output, `Ctrl-C` and `Esc` only interrupt the current turn.
|
|
10
10
|
|
|
11
11
|
## Pasting images and video
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
**Video input is a distinctive Kiki capability** — you can paste a video clip and have the model analyze its content, UI flow, or code walkthrough.
|
|
13
|
+
You can paste images and video straight into the input box, so a screenshot, UI mockup, architecture diagram or code demo can go into the conversation without uploading or converting anything first.
|
|
16
14
|
|
|
17
15
|
How to paste:
|
|
18
16
|
|
|
19
17
|
- **macOS / Linux**: `Ctrl-V`
|
|
20
18
|
- **Windows**: `Alt-V`
|
|
21
19
|
|
|
22
|
-
|
|
20
|
+
The pasted media shows up as an editable placeholder; on send, the real content replaces it. A plain-text clipboard just pastes as text. Whether media works at all depends on the current model accepting image / video input (the `image_in` / `video_in` capability fields); it is enabled by default on a Kimi Code account.
|
|
23
21
|
|
|
24
22
|
## Slash commands
|
|
25
23
|
|
|
26
24
|
Anything starting with `/` is treated as a slash command. Typing `/` opens a completion menu that filters in real time as you keep typing; press `Esc` to close the menu. If nothing matches, the input is sent to the agent as a regular message.
|
|
27
25
|
|
|
28
|
-
Active [Agent Skills](../customization/skills.md) (skill packages that extend what the agent can do) are
|
|
26
|
+
Active [Agent Skills](../customization/skills.md) (skill packages that extend what the agent can do) are registered as slash commands. Ordinary external skills are invoked with `/skill:<name>`, external sub-skills appear as dotted commands such as `/parent.child`, and built-in skills appear directly as `/<name>`. When an external skill name does not clash with a system command, you can drop the `skill:` prefix and type `/<name>`.
|
|
29
27
|
|
|
30
|
-
Inside a longer prompt, typing `/` after whitespace — including at the start of a later line — opens a skill-only completion menu.
|
|
28
|
+
Inside a longer prompt, typing `/` after whitespace — including at the start of a later line — opens a skill-only completion menu. Reference several skills in one prompt that way: Kiki activates them together and runs them as a single turn, and one `/undo` reverts the whole submission. A skill mentioned inside a prompt is activated by name only and cannot carry arguments; arguments still need a standalone `/skill:<name> args`. Built-in and plugin commands only work at the very start of the input.
|
|
31
29
|
|
|
32
|
-
Some commands
|
|
30
|
+
Some commands need the agent to be idle — press `Esc` to interrupt streaming output or context compression first. Mode toggles and queries like `/yolo`, `/plan`, `/help` and `/btw` are always available. [Slash commands reference](../reference/slash-commands.md) has the full list.
|
|
33
31
|
|
|
34
32
|
## File references
|
|
35
33
|
|
|
36
|
-
Type `@` to
|
|
34
|
+
Type `@` to get file-path completion. Picking a path inserts its relative form into your message, and the agent reads the file when it picks up that message. It works in git and non-git directories alike, and folder suggestions end with `/` so you can keep completing paths inside them. While Kiki's fast file-search component is still downloading in the background, completion falls back to a plain filesystem scan. Hidden paths are suggested; `.git` is not.
|
|
37
35
|
|
|
38
36
|
> `@` references and slash commands are two separate mechanisms: `@` gives the agent file context, while `/` invokes built-in features or Skills. After whitespace, `/` offers Skill completions only; use a leading `/` for built-in and plugin commands.
|
|
39
37
|
|
|
40
38
|
## Approval flow
|
|
41
39
|
|
|
42
|
-
When
|
|
40
|
+
When a tool call has side effects — running a command, writing outside the workspace trust boundary — the TUI shows an approval panel. In a trusted working directory, `Write` / `Edit` inside it run without a per-file prompt; in manual mode, shell commands, writes outside the workspace, links to external targets and sensitive files all ask first. YOLO mode does not prompt for ordinary tool calls, and neither does Plan mode for writes to plan files.
|
|
43
41
|
|
|
44
|
-
Use the arrow keys
|
|
42
|
+
Use the arrow keys and `Enter`, or press `1` / `2` / `3` to pick by number. `Esc`, `Ctrl-C`, and `Ctrl-D` all mean reject.
|
|
45
43
|
|
|
46
|
-
The panel
|
|
44
|
+
The panel usually offers **Approve for this session**, which approves that kind of call for the rest of the session. For rules that outlive a session, add allow / deny entries in [Configuration files](../configuration/config-files.md#permission).
|
|
47
45
|
|
|
48
46
|
## Mode switching
|
|
49
47
|
|
|
@@ -54,17 +52,19 @@ In Plan mode the agent first outputs an action plan and waits for your approval
|
|
|
54
52
|
- Toggle: `Shift-Tab` or `/plan`
|
|
55
53
|
- Clear the current plan: `/plan clear` (only while idle)
|
|
56
54
|
|
|
57
|
-
After
|
|
55
|
+
After writing the plan the agent pauses for you: approve it, reject it, or ask for changes. Leaving Plan mode asks for confirmation even when YOLO mode is on — except in Auto and Approve for me, where the exit is approved for you and marked "Auto-approved" in the transcript.
|
|
58
56
|
|
|
59
57
|
### Permission modes
|
|
60
58
|
|
|
61
|
-
|
|
59
|
+
`/permission` switches between Manual, Auto, Approve for me, and YOLO.
|
|
60
|
+
|
|
61
|
+
**YOLO mode** (`/yolo`) approves agent file access without asking, including sensitive targets such as `.env` or SSH keys. An explicit deny rule still wins, and Git-control paths may still prompt. Leaving Plan mode still asks, and the agent can still put questions to you.
|
|
62
62
|
|
|
63
|
-
**Auto mode** (`/auto`) approves ordinary tool actions and plan exits without prompting
|
|
63
|
+
**Auto mode** (`/auto`) approves ordinary tool actions and plan exits without prompting, and asks before sensitive files and workspace links to external targets. Explicit deny rules still block matching calls, and dangerous Bash commands still request approval unless that guard is turned off.
|
|
64
64
|
|
|
65
|
-
**Approve for me** (`review`)
|
|
65
|
+
**Approve for me** (`review`) works like Auto but sends policy-generated approval requests to a [configured reviewer](../configuration/config-files.md#reviewer-approval) first. An explicit `ask` rule always comes to you instead. A confident reviewer decision is recorded with the reviewer's attribution; an uncertain or unavailable one falls back to your approval panel, and after three reviewer denials in a turn the rest of that turn's requests come straight to you. Agent questions are separate from reviewer decisions, and [the interaction setting](../configuration/config-files.md#interaction) decides whether a question blocks the turn.
|
|
66
66
|
|
|
67
|
-
|
|
67
|
+
With no approval client attached — an unattended scheduled run, for instance — a request that would need you is cancelled rather than granted, and a question is dismissed rather than left hanging.
|
|
68
68
|
|
|
69
69
|
::: warning
|
|
70
70
|
YOLO mode skips confirmation for file writes and command execution. Only use it in working directories you trust.
|
|
@@ -72,13 +72,13 @@ YOLO mode skips confirmation for file writes and command execution. Only use it
|
|
|
72
72
|
|
|
73
73
|
### Shell mode
|
|
74
74
|
|
|
75
|
-
Shell mode
|
|
75
|
+
Shell mode runs terminal commands without leaving the conversation. Their output goes into the conversation context, so the agent can see the results in later turns.
|
|
76
76
|
|
|
77
|
-
- Enter: type `!` in an empty input box, or paste a command
|
|
78
|
-
- Exit: press `Backspace` or `Esc` in an empty input box
|
|
79
|
-
- Recall previous commands: with the input box empty in shell mode, press
|
|
77
|
+
- Enter: type `!` in an empty input box, or paste a command starting with `!`.
|
|
78
|
+
- Exit: press `Backspace` or `Esc` in an empty input box. Submitting a command also returns you to normal mode.
|
|
79
|
+
- Recall previous commands: with the input box empty in shell mode, press `↑`; recalling one keeps you in shell mode so it runs again as a command.
|
|
80
80
|
|
|
81
|
-
|
|
81
|
+
The input box shows a `!` prompt on the left in shell mode (in the desktop GUI the border turns violet too). `!git status` checks the repository without opening another terminal, and its output lands in the conversation.
|
|
82
82
|
|
|
83
83
|
## During streaming output
|
|
84
84
|
|
|
@@ -90,9 +90,9 @@ The input box remains usable while the agent is thinking or calling tools, and s
|
|
|
90
90
|
|
|
91
91
|
## External editor
|
|
92
92
|
|
|
93
|
-
|
|
93
|
+
`Ctrl-G` sends the current input to an external editor. Save and close to write the text back into the input box; close without saving and the original stays. This is the easy way to enter long or heavily formatted text.
|
|
94
94
|
|
|
95
|
-
|
|
95
|
+
Kiki picks the editor in this order: the `/editor` config, then `$VISUAL`, then `$EDITOR`. With none of them set, run `/editor` to choose one.
|
|
96
96
|
|
|
97
97
|
## Next steps
|
|
98
98
|
|
|
@@ -1,42 +1,46 @@
|
|
|
1
1
|
# Interface overview
|
|
2
2
|
|
|
3
|
-
The
|
|
3
|
+
The desktop app and the browser UI are the same interface, and a session in either is built from three areas: the conversation view, the input box, and the right rail. This page is a tour of those three. For sessions, boards and drafts see [Workspace and session management](/en/guides/sessions); for the terminal version of the same concepts see [Interaction and input](/en/guides/interaction).
|
|
4
4
|
|
|
5
5
|
## Conversation view
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
This is the session timeline: assistant messages, tool calls, approvals, questions, and background-task notices.
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
Anything that has been resolved — a question you answered, an approval you granted, a marker — collapses into a compact one-line entry that stays where it happened. Several in a row fold into an **Activity history** row you can expand. Failed and cancelled entries always stay visible on their own. Repeating markers such as goal updates show the latest one with a count ("Goal updated ×12") when nothing else separates them.
|
|
10
|
+
|
|
11
|
+
File references can be previewed, opened, or revealed in their folder. Reopening a session, or loading an agent's saved history, shows each model change as a divider naming the old and new model; a thinking-effort change on its own does not add one.
|
|
12
|
+
|
|
13
|
+
Long tool output and other large fields arrive in stages. **Continue loading** pulls in the rest of a truncated field, and the row tells you how much is loaded so far. If that fails on a field that has an original behind it — a tool's input or output, a background task's own output — the same row offers **Download original**, which writes the complete content to your machine and reports its own saving, saved, and retry states. Retrying stays available, and not every field can be downloaded.
|
|
10
14
|
|
|
11
15
|
## Input box
|
|
12
16
|
|
|
13
|
-
The input box accepts free-form text. `Enter` sends; `Shift-Enter` / `Ctrl-J` insert a newline. When it is empty, `↑` / `↓` browse
|
|
17
|
+
The input box accepts free-form text. `Enter` sends; `Shift-Enter` / `Ctrl-J` insert a newline. When it is empty, `↑` / `↓` browse what you have typed before in this working directory. You can paste images and video from the clipboard, as long as the current model accepts them — [Interaction and input](/en/guides/interaction) covers the details.
|
|
14
18
|
|
|
15
|
-
|
|
19
|
+
The **+** menu in the input box adds SSH hosts to the session. A joined host belongs to the session rather than to each message, so **Session SSH** stays above the input box for as long as one is joined: it lists them, removes one on **X**, and reopens the host list from its own row. Adding a host makes it available to the session; it does not connect to it. In a brand-new session the control reads **SSH to join**, and the hosts you pick are joined before the first message goes out.
|
|
16
20
|
|
|
17
|
-
While the agent is busy, new
|
|
21
|
+
While the agent is busy, a new message joins the queue above the input box instead of interrupting. Each queued message carries its own timing — **when idle**, **after subagents**, or **after tasks** — and you can change it, edit the text, reorder, or send it right away from its row in the queue.
|
|
18
22
|
|
|
19
|
-
|
|
23
|
+
To pick that timing, hover the send button or focus it and press `↓`. Besides the default, you can send the message into the current turn so the agent reads it at its next safe step (the same as `Ctrl-Enter`), start it after the running subagents finish, or start it after all background tasks finish. When the main agent is blocked waiting on a foreground `AgentRun`, **Send now** moves that wait to the background without stopping the child, which still reports back when it completes; plain queueing does not. The timing you choose applies to that one message. The menu only appears while the agent is busy.
|
|
20
24
|
|
|
21
|
-
|
|
25
|
+
Stop the main agent before it has replied or called a tool and the interrupted prompt goes back into the session draft with its attachments, next to any edits you had not sent. A prompt the agent already answered or was steered by is not restored, and recovered attachments need the full prompt in the loaded transcript and stay in memory until you restart the app.
|
|
22
26
|
|
|
23
|
-
After a restart,
|
|
27
|
+
After a restart, queued messages come back held until you decide. **Send now** on one message sends only that one; **Resume queue** releases the rest. **Later** just hides the explanation — the resume button remains, and anything you submit meanwhile keeps queuing until you resume.
|
|
24
28
|
|
|
25
|
-
In a subagent's input box
|
|
29
|
+
In a subagent's input box the stop button is disabled while the stop request is in flight. If it fails, the notice says why and the button comes back so you can retry. Stopping one run leaves the subagent's other queued messages alone.
|
|
26
30
|
|
|
27
31
|
## Approvals
|
|
28
32
|
|
|
29
|
-
|
|
33
|
+
An approval appears in the timeline before a protected operation runs, with the option to allow it once or for the session. Auto mode (the default) runs routine tool calls without asking and still asks for sensitive files and external links. Manual mode asks before shell commands and writes outside the workspace, while `Write` / `Edit` inside a trusted directory run without a per-file prompt. YOLO mode skips the sensitive-file prompt unless a deny rule covers it. Pressing `Esc` stops a tool call before it executes.
|
|
30
34
|
|
|
31
35
|
## Right rail
|
|
32
36
|
|
|
33
|
-
The
|
|
37
|
+
The rail describes one agent at a time — whichever you last clicked into or focused. The main agent and every subagent get the same page, and the rail follows you into a subagent's transcript. It shows what that agent is doing now, the items waiting on you as rows you can decide from, the activity feed, and a folded capabilities block. **Dispatch capabilities** opens the panel showing how the agent hands work to subagents, and from there you can inspect a subagent's profile (its configuration file), route and executor, plus where its default model and thinking effort (how much reasoning the model invests) come from — see [Agents and subagents](../customization/agents.md#rebuilding-a-session-context).
|
|
34
38
|
|
|
35
|
-
On desktop-width screens the
|
|
39
|
+
On desktop-width screens the rail is open by default. **Standard / Cockpit** in its header widens it over the preview space while the conversation and composer stay in the main column; **Standard** or **Exit cockpit** puts the previous preview content, tabs, draft and width back.
|
|
36
40
|
|
|
37
41
|
## Sessions and workspaces
|
|
38
42
|
|
|
39
|
-
The session list groups sessions by workspace; pick one to resume or start a new draft.
|
|
43
|
+
The session list groups sessions by workspace; pick one to resume, or start a new draft there. If a saved model, profile (the agent's configuration file) or effort is no longer available, the entry stays visible with a diagnostic instead of quietly switching you to a different model. [Workspace and session management](/en/guides/sessions) covers the rest.
|
|
40
44
|
|
|
41
45
|
## Next steps
|
|
42
46
|
|