clisbot 0.1.40 → 0.1.42

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 CHANGED
@@ -28,7 +28,7 @@ The challenge is not whether AI is useful. It is how to make it work at enterpri
28
28
  - Learns from and integrates the two biggest strengths that made OpenClaw popular: memory and native channel integration with deep, channel-specific conversation and presentation capabilities.
29
29
  - Not just a tmux bridge. Slack and Telegram are treated as real channel surfaces with routing, thread or topic continuity, pairing, follow-up control, and attachment-aware interaction instead of plain text passthrough so you can work from your laptop or on the go without giving up a real coding workspace.
30
30
  - Team-first by design, with `AGENTS`, `USER`, and `MEMORY` context bootstrapping shaped for shared team reality instead of only personal solo-assistant flows.
31
- - Useful for coding, operations, teamwork, and general assistant work, with fast chat controls such as `!<command>` and `/bash <command>` for terminal-like control, `/loop` to bring loop-style automation beyond Claude, `/queue` to add follow-up prompts in the same session without interrupting the current run, and `/streaming on` to view real-time processing progress for coding tasks.
31
+ - Useful for coding, operations, teamwork, and general assistant work, with fast chat controls such as `!<command>` and `/bash <command>` for terminal-like control, `/loop` to bring loop-style automation beyond Claude, `/queue` to add follow-up prompts in the same session without interrupting the current run, `/streaming on` to view real-time processing progress for coding tasks, and `/mention`, `/mention channel`, or `/mention all` to tighten follow-up policy at conversation, route, or bot scope.
32
32
 
33
33
  ## What to expect
34
34
 
@@ -40,6 +40,24 @@ The challenge is not whether AI is useful. It is how to make it work at enterpri
40
40
  - Slack and Telegram are not treated as plain-text sinks: routed conversations can carry thread or topic identity, pairing, and file-aware workflows.
41
41
  - Advanced multi-agent setup is available later, but it is not required for day one.
42
42
 
43
+ ## CLI Compatibility Snapshot
44
+
45
+ `clisbot` currently works best with `codex`.
46
+
47
+ `claude` and `gemini` are both usable, but they need a bit more operator awareness today.
48
+
49
+ | CLI | Current Stability | Short Take |
50
+ | ----------| ---------------------| -------------------------------------------------------------------------------------------------------------|
51
+ | `codex` | Best today | Strongest default for routed coding work. |
52
+ | `claude` | Usable with caveats | Claude can surface its own plan-approval and auto-mode behavior even when launched with bypass-permissions. |
53
+ | `gemini` | Usable with caveats | Runner support is solid, but auth/setup gating and routed reply behavior still need more care. |
54
+
55
+ CLI-specific operator notes:
56
+
57
+ - [Codex CLI Guide](docs/user-guide/codex-cli.md)
58
+ - [Claude CLI Guide](docs/user-guide/claude-cli.md)
59
+ - [Gemini CLI Guide](docs/user-guide/gemini-cli.md)
60
+
43
61
  ## Quick Start
44
62
 
45
63
  Platform support:
@@ -61,14 +79,17 @@ clisbot start \
61
79
 
62
80
  If you want to try first without persisting the token yet, just remove `--persist`.
63
81
 
64
- Current auth note:
65
-
66
- - DMs currently start in pairing mode by default.
67
- - If no app owner is configured yet, the first DM user during the first `ownerClaimWindowMinutes` becomes app `owner` automatically and does not need pairing approval.
68
- - Today, if you want an owner or app admin, grant that principal explicitly with the platform prefix plus the channel-native user id, for example `telegram:1276408333` or `slack:U123ABC456`.
69
- - Example commands:
70
- - `clisbot auth add-user app --role owner --user telegram:1276408333`
71
- - `clisbot auth add-user app --role admin --user slack:U123ABC456`
82
+ Next steps:
83
+
84
+ - For security, just as openclaw, direct message with the bot currently requires pairing and groups need explicit specified in allowlist by default.
85
+ - However, `clisbot` has smart autopairing feature to help you get started frictionless. Just send direct message to your bot (through telegram or slack) within 30 minutes so you can claim owner role automatically, and use the bot right away without pairing. After this 30 minutes window you need to approve pairing following instructions by the bot in direct message.
86
+ - To chat with the bot in a group:
87
+ - telegram: Add bot to group, then use slash command in that group /start, you will be guided with command to add a group. Run that command directly or copy that command and chat directly with the bot in DM to ask it do for you (since you are the owner, you are authorized to run that command). After completed, come back to the group and start talk with the bot.
88
+ - Notice that group has require mention (or tag the bot) enabled by default to avoid abuse. But it also has smart follow up within 5 minutes by default so you dont need to tag it again. You could change the mode by asking the bot to do for you.
89
+ - If you want stricter mention behavior, use `/mention` for this conversation only, `/mention channel` for the current channel or group default, or `/mention all` for the current bot default.
90
+ - For long running task such as coding, you might want to toggle streaming mode on with slash command inside the chat "/streaming on", check streaming status anytime with "/streaming status". In slack, native slash command is unconventional so you can get around to use slash command with a space prefix such as " /streaming on", or use alias "\streaming on". This is also true for any other slash command supported by `clisbot`.
91
+ - slack:
92
+ - If you want to add more owner or app admin, grant that principal explicitly with the platform prefix plus the channel-native user id, for example `clisbot auth add-user app --role owner --user telegram:1276408333` or `clisbot auth add-user app --role admin --user slack:U123ABC456`.
72
93
  - `clisbot auth --help` now covers role scopes, permission sets, and add/remove flows for users and permissions.
73
94
  - App-level auth and owner-claim semantics in [Authorization And Roles](docs/user-guide/auth-and-roles.md) describe both the current runtime reality and the remaining target-model gaps.
74
95
 
@@ -269,26 +290,18 @@ trust_level = "trusted"
269
290
 
270
291
  Most users only need a small set of commands at first:
271
292
 
272
- - `clisbot start`
273
- - `clisbot restart`
274
- - `clisbot stop`
275
- - `clisbot status`
276
- - `clisbot logs`
277
- - `clisbot auth show app`
278
- - `clisbot auth show agent-defaults`
279
- - `clisbot auth add-user app --role owner --user <principal>`
280
- - `clisbot auth add-user agent --agent <id> --role admin --user <principal>`
281
- - `clisbot pairing approve slack <CODE>`
282
- - `clisbot pairing approve telegram <CODE>`
283
- - `clisbot bots list`
284
- - `clisbot bots add --channel telegram --bot default --bot-token TELEGRAM_BOT_TOKEN --persist`
285
- - `clisbot bots add --channel slack --bot default --app-token SLACK_APP_TOKEN --bot-token SLACK_BOT_TOKEN --persist`
286
- - `clisbot routes add --channel telegram group:<chatId> --bot default`
287
- - `clisbot routes add --channel telegram topic:<chatId>:<topicId> --bot default`
288
- - `clisbot routes add --channel slack channel:<channelId> --bot default`
289
- - `clisbot routes set-agent --channel telegram group:<chatId> --bot default --agent <id>`
290
- - `clisbot routes set-agent --channel slack channel:<channelId> --bot default --agent <id>`
291
- - `clisbot --help`
293
+ - `clisbot start`: start the bot runtime and create the default first-run setup when needed.
294
+ - `clisbot restart`: restart the runtime cleanly; use this first when the bot stops responding.
295
+ - `clisbot stop`: stop the runtime cleanly before upgrades, config changes, or maintenance.
296
+ - `clisbot status`: check whether the runtime, channels, and active sessions look healthy.
297
+ - `clisbot logs`: inspect recent runtime logs when startup, routing, or replies look wrong.
298
+ - `clisbot runner list`: list the live tmux-backed runner sessions and see what is active.
299
+ - `clisbot runner watch <session-name>`: live-watch one specific session when debugging a real run.
300
+ - `clisbot runner watch --latest`: jump straight into the most recently active session.
301
+
302
+ Full operator command reference:
303
+
304
+ - [CLI Commands Guide](docs/user-guide/cli-commands.md)
292
305
 
293
306
  If you are running from the repo instead of the global package:
294
307
 
@@ -302,7 +315,7 @@ If you are running from the repo instead of the global package:
302
315
 
303
316
  ## In Chat
304
317
 
305
- `clisbot` supports a small set of chat-native commands for thread control, transcript access, and quick shell execution.
318
+ `clisbot` supports a small set of chat-native commands for thread control and workflow acceleration inside Slack and Telegram.
306
319
 
307
320
  Native coding-CLI command compatibility:
308
321
 
@@ -320,37 +333,26 @@ Common commands:
320
333
 
321
334
  - `/start`: show onboarding or route-status help for the current conversation.
322
335
  - `/help`: show the available clisbot conversation commands.
323
- - `/status`: show the current route status, follow-up policy, and operator setup hints.
324
- - `/whoami`: show the current sender and route identity for the active conversation.
325
336
  - `/stop`: interrupt the current running turn.
326
- - `/followup status`: show the current thread follow-up mode.
327
- - `/followup auto`: allow natural in-thread follow-up after the bot has replied.
328
- - `/followup mention-only`: require an explicit mention for later turns in the thread.
329
- - `/followup pause`: pause passive follow-up so the bot does not keep interrupting the thread unless explicitly mentioned again.
330
- - `/followup resume`: restore the default follow-up behavior for that conversation.
331
- - `/transcript`: return the current conversation transcript when the route `verbose` policy allows it.
332
- - `::transcript` or `\transcript`: transcript shortcuts from the default slash-style prefixes.
333
- - `/bash <command>`: run a shell command in the current agent workspace when the resolved agent role allows `shellExecute`.
334
- - `!<command>`: shorthand for `/bash <command>`.
337
+ - `/streaming on`, `/streaming off`, `/streaming status`: turn live progress on when you want to follow long coding work, then turn it back off when you only want final answers; in Slack, use ` /streaming on` or `\streaming on` when Slack grabs the raw slash command.
338
+ - `/followup status`, `/followup auto`, `/followup mention-only`, `/followup pause`, `/followup resume`: control whether the bot keeps naturally following the thread, stays quiet, or requires an explicit mention again; fast shorthands include `/mention`, `/pause`, and `/resume`.
339
+ - `/queue <message>`: queue the next prompt behind the current run so the bot can finish one thing, then keep going automatically without you babysitting every step.
340
+ - `/loop <schedule or count> <message>`: turn one instruction into repeated work, from recurring automation to brute-force progress like `/loop 3 tiếp đi em` when you want the AI to keep pushing instead of stopping early.
335
341
 
336
- Command prefix defaults:
342
+ Why `/queue` and `/loop` matter:
337
343
 
338
- - slash-style shortcuts: `["::", "\\"]`
339
- - bash shortcuts: `["!"]`
340
- - both are configurable with `bots.defaults.commandPrefixes`, `bots.slack.defaults.commandPrefixes`, or `bots.telegram.defaults.commandPrefixes`
344
+ - `/queue` is a very simple workflow primitive: stack the next prompts now, let the bot run them one by one later.
345
+ - `/loop` is the force multiplier: use it for recurring review/reporting, or just to keep the AI moving through multi-step coding work with less laziness and fewer early stops.
341
346
 
342
- Sensitive actions now follow auth and route policy:
347
+ Examples:
343
348
 
344
- - `/transcript` depends on the route `verbose` policy
345
- - `/bash` depends on resolved agent auth through `shellExecute`
346
- - use `clisbot auth --help` to inspect scopes and mutate role users or permissions
347
- - use `clisbot routes --help` for route-level setup and route policy guidance
349
+ - `/queue tiếp đi em`
350
+ - `/queue code review theo architecture, guideline fix, test`
351
+ - `/loop 3 tiếp đi em`
348
352
 
349
- Follow-up behavior matters in team threads:
353
+ Detailed slash-command guide:
350
354
 
351
- - `auto` is convenient when a thread is actively collaborating with the bot.
352
- - `pause` is useful when the bot has already participated but you do not want it to keep jumping into every follow-up message.
353
- - `mention-only` is the stricter mode when you want every new bot turn to require an explicit call.
355
+ - [Slash Commands](docs/user-guide/slash-commands.md)
354
356
 
355
357
  ## Docs
356
358
 
@@ -380,27 +382,6 @@ Follow-up behavior matters in team threads:
380
382
 
381
383
  tmux is still the current stability boundary. One agent maps to one durable runner session in one workspace, and every CLI, channel, or workflow layer should route onto that durable runtime instead of recreating the agent from scratch.
382
384
 
383
- ## Launch MVP Path
384
-
385
- See [docs/overview/launch-mvp-path.md](docs/overview/launch-mvp-path.md) for the full current launch order.
386
-
387
- Short snapshot:
388
-
389
- 1. Foundations first:
390
- - frictionless start and credential persistence
391
- - runtime stability and truthful status or debug UX
392
- - `/loop` as the current differentiating workflow feature
393
- 2. International launch gate:
394
- - Claude, Codex, and Gemini as the well-tested core CLI trio
395
- - current shared channel package remains Slack plus Telegram
396
- 3. Vietnam launch package:
397
- - add Zalo Official Account and Zalo Personal on top of the same core trio
398
- 4. Next expansion wave:
399
- - more CLIs such as Cursor, Amp, OpenCode, Qwen, Kilo, and Minimax, prioritized by real userbase demand
400
- - more channels such as Discord, WhatsApp, Google Workspace, and Microsoft Teams
401
- 5. Open launch decision:
402
- - whether native CLI slash-command compatibility, override, and customization should ship before broader push
403
-
404
385
  ## Completed
405
386
 
406
387
  - [x] Multiple Codex, Claude, and Gemini sessions with streaming on/off support.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "meta": {
3
- "schemaVersion": "0.1.39",
3
+ "schemaVersion": "0.1.42",
4
4
  "lastTouchedAt": "2026-04-18T10:10:00Z"
5
5
  },
6
6
  "app": {
@@ -127,7 +127,7 @@
127
127
  "loadingMessages": []
128
128
  },
129
129
  "directMessages": {
130
- "*": {
130
+ "dm:*": {
131
131
  "enabled": true,
132
132
  "requireMention": false,
133
133
  "policy": "pairing",
@@ -192,7 +192,7 @@
192
192
  },
193
193
  "timezone": "UTC",
194
194
  "directMessages": {
195
- "*": {
195
+ "dm:*": {
196
196
  "enabled": true,
197
197
  "requireMention": false,
198
198
  "policy": "pairing",
@@ -224,14 +224,12 @@
224
224
  },
225
225
  "timezone": "America/Los_Angeles"
226
226
  },
227
- "U_OWNER": {
228
- "enabled": true,
229
- "policy": "open",
227
+ "dm:U_OWNER": {
230
228
  "agentId": "default"
231
229
  }
232
230
  },
233
231
  "groups": {
234
- "*": {
232
+ "dm:*": {
235
233
  "enabled": true,
236
234
  "requireMention": true,
237
235
  "policy": "disabled",
@@ -361,14 +359,12 @@
361
359
  "participationTtlMin": 10
362
360
  }
363
361
  },
364
- "U_SUPPORT": {
365
- "enabled": true,
366
- "policy": "allowlist",
362
+ "dm:U_SUPPORT": {
367
363
  "agentId": "reviewer"
368
364
  }
369
365
  },
370
366
  "groups": {
371
- "*": {
367
+ "dm:*": {
372
368
  "enabled": true,
373
369
  "requireMention": true,
374
370
  "policy": "disabled",
@@ -450,7 +446,7 @@
450
446
  },
451
447
  "timezone": "UTC",
452
448
  "directMessages": {
453
- "*": {
449
+ "dm:*": {
454
450
  "enabled": true,
455
451
  "requireMention": false,
456
452
  "policy": "pairing",
@@ -525,14 +521,12 @@
525
521
  "participationTtlMin": 5
526
522
  }
527
523
  },
528
- "1276408333": {
529
- "enabled": true,
530
- "policy": "open",
524
+ "dm:1276408333": {
531
525
  "agentId": "default"
532
526
  }
533
527
  },
534
528
  "groups": {
535
- "*": {
529
+ "dm:*": {
536
530
  "enabled": true,
537
531
  "requireMention": true,
538
532
  "policy": "disabled",
@@ -664,14 +658,10 @@
664
658
  "participationTtlMin": 15
665
659
  }
666
660
  },
667
- "1276408333": {
668
- "enabled": true,
669
- "policy": "open",
661
+ "dm:1276408333": {
670
662
  "agentId": "reviewer"
671
663
  },
672
- "555000111": {
673
- "enabled": true,
674
- "policy": "open",
664
+ "dm:555000111": {
675
665
  "agentId": "reviewer"
676
666
  }
677
667
  },
@@ -685,7 +685,7 @@
685
685
  "workspace": "~/.clisbot/workspaces/{agentId}",
686
686
  "cli": "codex",
687
687
  "bootstrap": {
688
- "botType": "team"
688
+ "botType": "team-assistant"
689
689
  },
690
690
  "runner": {
691
691
  "defaults": {