opencami 1.6.0 → 1.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +48 -31
- package/dist/client/assets/{CSPContext-Bq8j4nl9.js → CSPContext-CCZJblsW.js} +1 -1
- package/dist/client/assets/{DirectionContext-BdX86BHP.js → DirectionContext-CAS2SgNN.js} +1 -1
- package/dist/client/assets/{_sessionKey-DsjnpErt.js → _sessionKey-f5UgmhlK.js} +4 -4
- package/dist/client/assets/agents-DBx41wBT.js +2 -0
- package/dist/client/assets/{agents-screen-DwIY8hze.js → agents-screen-CjqM2uOb.js} +1 -1
- package/dist/client/assets/bots-BqD0EQcs.js +2 -0
- package/dist/client/assets/{bots-screen-c78I920d.js → bots-screen-ivWEgfTv.js} +1 -1
- package/dist/client/assets/{button-Dg7VFQQn.js → button-DzGUU5Tc.js} +1 -1
- package/dist/client/assets/{composite-DBl8R3ae.js → composite-afaLtloO.js} +1 -1
- package/dist/client/assets/{connect-NYvOqiBJ.js → connect-9Vns9nqk.js} +1 -1
- package/dist/client/assets/{file-explorer-screen-BSMbs0vi.js → file-explorer-screen-Di0232pk.js} +1 -1
- package/dist/client/assets/files-BlMyTMb7.js +2 -0
- package/dist/client/assets/{index-CMATW8VA.js → index-BvN0Cj0s.js} +1 -1
- package/dist/client/assets/{index-rOIRO-8E.js → index-CRgPm0pb.js} +1 -1
- package/dist/client/assets/{keyboard-shortcuts-dialog-BTGWdJMl.js → keyboard-shortcuts-dialog-C5kjcplH.js} +1 -1
- package/dist/client/assets/{main-B_dlfHME.js → main-ZPHfbCuz.js} +3 -3
- package/dist/client/assets/{markdown-BVzT7z4x.js → markdown-1-xJ1B1H.js} +1 -1
- package/dist/client/assets/memory-rR6pG57i.js +2 -0
- package/dist/client/assets/{memory-screen-C-Z9o31m.js → memory-screen-BV4YRKim.js} +1 -1
- package/dist/client/assets/{menu-DHNgWk_8.js → menu-9GT8MQlt.js} +1 -1
- package/dist/client/assets/{opencami-logo-BQQETnJG.js → opencami-logo-CxC-KcS9.js} +1 -1
- package/dist/client/assets/{owner-CpRnf1fI.js → owner-Bm20thei.js} +1 -1
- package/dist/client/assets/{popupStateMapping-BRPDXnjv.js → popupStateMapping-C797EAip.js} +1 -1
- package/dist/client/assets/{proxy-BcUh9kMA.js → proxy-aJlrsYWj.js} +1 -1
- package/dist/client/assets/{react-irH8OzhB.js → react-DuiuJSA1.js} +1 -1
- package/dist/client/assets/{search-dialog-B96zx_ng.js → search-dialog-DD_ESAph.js} +1 -1
- package/dist/client/assets/{session-export-dialog-DPuHnhgv.js → session-export-dialog-5X5WKL4z.js} +1 -1
- package/dist/client/assets/{settings-dialog-DZcRCaPj.js → settings-dialog-Bd0RXSk3.js} +1 -1
- package/dist/client/assets/skills-DAKbQw5l.js +2 -0
- package/dist/client/assets/{skills-panel-WDUfIwnI.js → skills-panel-oNmWCyiv.js} +1 -1
- package/dist/client/assets/styles-Ecf_rLDJ.css +1 -0
- package/dist/client/assets/{switch-DPocNFRG.js → switch-BJY4FNiL.js} +1 -1
- package/dist/client/assets/{tabs-B0cro1hL.js → tabs-DBIBgGyG.js} +1 -1
- package/dist/client/assets/{tooltip-Dg9fy-vT.js → tooltip-BoKzJ7ag.js} +1 -1
- package/dist/client/assets/{use-file-explorer-state-DzT0bksg.js → use-file-explorer-state-EK2HTABk.js} +1 -1
- package/dist/client/assets/{useButton-Cbl_9oFG.js → useButton-Bh6gEhdL.js} +1 -1
- package/dist/client/assets/{useCompositeItem-BDAzTxVe.js → useCompositeItem-BR34_3gK.js} +1 -1
- package/dist/client/assets/{useControlled-Dscz_s4f.js → useControlled-byIifl1i.js} +1 -1
- package/dist/client/assets/{useMutation-B1FlDsNN.js → useMutation-D5JCmjGc.js} +1 -1
- package/dist/client/assets/{visuallyHidden-ONmQ-0U2.js → visuallyHidden-ChUPUs-q.js} +1 -1
- package/dist/server/assets/{_sessionKey-B0ZlLAjH.js → _sessionKey-BCdHKOq7.js} +3 -3
- package/dist/server/assets/{_tanstack-start-manifest_v-D5UVTs1o.js → _tanstack-start-manifest_v-XVyva8_b.js} +1 -1
- package/dist/server/assets/{index-CiUjUD0t.js → index-r4KOEzK3.js} +1 -1
- package/dist/server/assets/{router-Uuagl6O7.js → router-CkcOXH0V.js} +5 -5
- package/dist/server/assets/{search-dialog-DZTS5SEi.js → search-dialog-CuuZvlyq.js} +2 -2
- package/dist/server/assets/{settings-dialog-CSYDj2qm.js → settings-dialog-S2HICL7l.js} +2 -2
- package/dist/server/server.js +2 -2
- package/package.json +1 -1
- package/dist/client/assets/agents-DwxKcpP6.js +0 -2
- package/dist/client/assets/bots-CRlm-3-d.js +0 -2
- package/dist/client/assets/files-BJbMx0_w.js +0 -2
- package/dist/client/assets/memory-S3Yws6a5.js +0 -2
- package/dist/client/assets/skills-YZe3I63y.js +0 -2
- package/dist/client/assets/styles-Bwo-K6Y4.css +0 -1
package/README.md
CHANGED
|
@@ -4,11 +4,6 @@
|
|
|
4
4
|
|
|
5
5
|
A beautiful web client for [OpenClaw](https://github.com/openclaw/openclaw).
|
|
6
6
|
|
|
7
|
-
```bash
|
|
8
|
-
npm install -g opencami
|
|
9
|
-
opencami
|
|
10
|
-
```
|
|
11
|
-
|
|
12
7
|
[](https://www.npmjs.com/package/opencami)
|
|
13
8
|
[](LICENSE)
|
|
14
9
|
|
|
@@ -16,14 +11,18 @@ opencami
|
|
|
16
11
|
|
|
17
12
|
## Quick Start
|
|
18
13
|
|
|
19
|
-
|
|
14
|
+
```bash
|
|
15
|
+
curl -fsSL https://opencami.xyz/install.sh | bash
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
Or via npm:
|
|
20
19
|
|
|
21
20
|
```bash
|
|
22
21
|
npm install -g opencami
|
|
23
22
|
opencami
|
|
24
23
|
```
|
|
25
24
|
|
|
26
|
-
|
|
25
|
+
Opens your browser to the chat interface.
|
|
27
26
|
|
|
28
27
|
### Options
|
|
29
28
|
|
|
@@ -43,30 +42,48 @@ docker run -p 3000:3000 opencami
|
|
|
43
42
|
|
|
44
43
|
## Features
|
|
45
44
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
45
|
+
### 💬 Chat & Communication
|
|
46
|
+
- ⚡ **Real-time streaming** — persistent WebSocket + SSE, token-by-token
|
|
47
|
+
- 🖼️ **Image attachments** — drag & drop with compression
|
|
48
|
+
- 🔊 **Voice playback (TTS)** — ElevenLabs → OpenAI → Edge TTS fallback
|
|
49
|
+
- 🎤 **Voice input (STT)** — ElevenLabs Scribe → OpenAI Whisper → Browser
|
|
50
|
+
- 🔔 **Browser notifications** — background tab alerts when assistant replies
|
|
51
|
+
|
|
52
|
+
### 🧠 Smart Features
|
|
53
|
+
- 🏷️ **Smart titles** — LLM-generated session titles
|
|
54
|
+
- 💡 **Smart follow-ups** — contextual suggestions after each response
|
|
55
|
+
- 🧠 **Thinking level toggle** — reasoning depth (off/low/medium/high) per message
|
|
56
|
+
- 🔎 **Search sources badge** — see which search engines were used
|
|
57
|
+
- 📊 **Context window meter** — visual token usage indicator
|
|
58
|
+
|
|
59
|
+
### 🔧 Workspace
|
|
60
|
+
- 📂 **File explorer** — browse & edit 30+ file types with built-in editor
|
|
61
|
+
- 🧠 **Memory viewer** — browse and edit MEMORY.md and daily memory files
|
|
62
|
+
- 🤖 **Agent manager** — create, edit, delete agents from the sidebar
|
|
63
|
+
- 🧩 **Skills browser** — discover and install skills from ClawHub
|
|
64
|
+
- ⏰ **Cron jobs panel** — manage scheduled automations
|
|
65
|
+
- 🔧 **Workspace settings** — toggle each tool on/off in Settings
|
|
66
|
+
|
|
67
|
+
### 🎨 Customization
|
|
68
|
+
- 🎨 **Model selector** — switch AI models per message
|
|
69
|
+
- 🎭 **Persona picker** — 20 AI personalities
|
|
70
|
+
- 🦎 **Chameleon theme** — light/dark/system with accent colors
|
|
71
|
+
- 🔤 **Text size** — S / M / L / XL
|
|
72
|
+
- 🔌 **Multi-provider LLM** — OpenAI, OpenRouter, Ollama, or custom
|
|
73
|
+
|
|
74
|
+
### 📁 Organization
|
|
75
|
+
- 📁 **Session folders** — grouped by kind (chats, subagents, cron, other)
|
|
76
|
+
- 📌 **Pin sessions** — pinned always on top
|
|
77
|
+
- 🗑️ **Bulk delete** — select multiple sessions, delete at once
|
|
78
|
+
- 🛡️ **Protected sessions** — prevent accidental deletion
|
|
79
|
+
- 📥 **Export** — Markdown, JSON, or plain text
|
|
80
|
+
|
|
81
|
+
### 📱 Platform
|
|
82
|
+
- 📱 **PWA** — installable, offline shell, auto-update
|
|
83
|
+
- 🖥️ **Tauri desktop app** (Beta) — native wrapper for macOS/Windows/Linux
|
|
84
|
+
- ⌨️ **Keyboard shortcuts** — full power-user navigation
|
|
85
|
+
- 💬 **Slash commands** — inline help and actions
|
|
86
|
+
- 🔍 **Conversation search** — current (⌘F) and global (⌘⇧F)
|
|
70
87
|
|
|
71
88
|
## Development
|
|
72
89
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as t}from"./main-
|
|
1
|
+
import{r as t}from"./main-ZPHfbCuz.js";const e=t.createContext(void 0),o={disableStyleElements:!1};function s(){return t.useContext(e)??o}export{s as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as l}from"./main-
|
|
1
|
+
import{r as l}from"./main-ZPHfbCuz.js";const E=["top","right","bottom","left"],p=Math.min,h=Math.max,L=Math.round,k=Math.floor,q=t=>({x:t,y:t}),x={left:"right",right:"left",bottom:"top",top:"bottom"},d={start:"end",end:"start"};function R(t,e,n){return h(t,p(e,n))}function T(t,e){return typeof t=="function"?t(e):t}function m(t){return t.split("-")[0]}function g(t){return t.split("-")[1]}function b(t){return t==="x"?"y":"x"}function A(t){return t==="y"?"height":"width"}const P=new Set(["top","bottom"]);function y(t){return P.has(m(t))?"y":"x"}function M(t){return b(y(t))}function v(t,e,n){n===void 0&&(n=!1);const s=g(t),i=M(t),o=A(i);let r=i==="x"?s===(n?"end":"start")?"right":"left":s==="start"?"bottom":"top";return e.reference[o]>e.floating[o]&&(r=a(r)),[r,a(r)]}function z(t){const e=a(t);return[c(t),e,c(e)]}function c(t){return t.replace(/start|end/g,e=>d[e])}const u=["left","right"],f=["right","left"],O=["top","bottom"],S=["bottom","top"];function C(t,e,n){switch(t){case"top":case"bottom":return n?e?f:u:e?u:f;case"left":case"right":return e?O:S;default:return[]}}function B(t,e,n,s){const i=g(t);let o=C(m(t),n==="start",s);return i&&(o=o.map(r=>r+"-"+i),e&&(o=o.concat(o.map(c)))),o}function a(t){return t.replace(/left|right|bottom|top/g,e=>x[e])}function w(t){return{top:0,right:0,bottom:0,left:0,...t}}function F(t){return typeof t!="number"?w(t):{top:t,right:t,bottom:t,left:t}}function G(t){const{x:e,y:n,width:s,height:i}=t;return{width:s,height:i,top:n,left:e,right:e+s,bottom:n+i,x:e,y:n}}const j=l.createContext(void 0);function H(){return l.useContext(j)?.direction??"ltr"}export{y as a,a as b,z as c,B as d,T as e,k as f,m as g,v as h,g as i,h as j,M as k,F as l,p as m,G as n,A as o,R as p,b as q,L as r,E as s,q as t,H as u};
|