clisbot 0.1.11 → 0.1.13

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
@@ -1,97 +1,41 @@
1
1
  # clisbot - Agentic Coding CLI & chat bot
2
- The cheapest, simplest path to frontier LLMs and agentic CLI workflows for teams and individuals.
2
+ Want to use OpenClaw but are struggling because:
3
3
 
4
- `clisbot` is not just another tmux bridge, as many GitHub projects already are. It exposes native agentic AI tool CLIs like Claude Code / Codex through multi-channel chat surfaces, with each agent running inside its own durable tmux session and ready to behave like a real bot, a real assistant - with SOUL, IDENTITY & MEMORY, just as OpenClaw, not just a coding tool.
4
+ - API cost is too high, so you end up looking for LLM proxy workarounds
5
+ - you have to switch between OpenClaw for daily work and Claude / Codex / Gemini for real coding
6
+ - you want to code on the go and work on the go
5
7
 
6
- `clisbot` is meant to grow into a reusable agent runtime layer that can support many CLI tools, many channels, and many workflow shapes on top of the same durable agent session.
8
+ `clisbot` is the right solution for you.
7
9
 
8
- Agentic AI is powerful, but only with frontier models. OpenClaw took off because people found many ways to access strong frontier models cheaply through subscription-based OAuth. Recent Anthropic enforcement around third-party and proxy-style usage made that risk harder to ignore.
10
+ `clisbot` turns native frontier agent CLIs like Claude Code, Codex, and Gemini CLI into durable Slack and Telegram bots. Each agent runs inside its own tmux session, keeps a real workspace, and can behave like a coding bot, a daily-work assistant, or a team assistant with SOUL, IDENTITY, and MEMORY.
9
11
 
10
- Meanwhile, the strongest agentic coding tools already come from serious enterprise teams with real investment in model quality, security, safety, and operator controls, especially Claude Code, Codex, and Gemini CLI. That naturally leads to a simple question: why not reuse those agents as they already are, keep them alive in tmux, and add communication channels, team workflows, and more toys around them?
12
+ It is a cheaper, simpler path to frontier agent workflows for teams and individuals because it reuses the CLI subscriptions you already have instead of forcing a separate API-heavy stack. If you already trust Claude Code, Codex, or Gemini CLI for real work, `clisbot` lets you keep those tools as the core runtime and add chat surfaces, follow-up control, team workflows, and on-the-go access around them.
11
13
 
12
- Every company will likely need an OpenClaw-style strategy over time: a personal agentic assistant for each employee, plus shared agents for each team. `clisbot` starts from a team-first angle, with Slack and shared agent workflows as the default center of gravity instead of treating team collaboration as a later add-on.
13
-
14
- ## Important caution
15
-
16
- Strong vendor investment in security and safety does not make frontier agentic CLI tools inherently safe. `clisbot` exposes those tools more broadly through chat and workflow surfaces, so you should treat the whole system as high-trust software and use it at your own risk.
17
-
18
- ## Acknowledgements
19
-
20
- `clisbot` would not exist without the ideas, momentum, and practical inspiration created by OpenClaw. Many configuration, routing, and workspace concepts here were learned from studying OpenClaw, then adapted to `clisbot`'s own direction. Respect and thanks to the OpenClaw project and community.
14
+ `clisbot` is also meant to grow into a reusable agent runtime layer that can support many CLI tools, many channels, and many workflow shapes on top of the same durable agent session.
21
15
 
22
16
  ## Why clisbot
23
17
 
24
- - Reuses the native CLI tools you already know and subscribe to, such as Claude Code, Codex, and Gemini CLI, then extends them across coding, chatbot, and non-dev workflows without forcing you to switch tools.
25
- - Optimized for cheap subscription-backed usage with tools like Codex CLI and Claude CLI... A practical response to the reality that high-quality frontier models are expensive and vendor policies can tighten around third-party usage.
26
- - Compatible with OpenClaw-style configuration, commands and some concepts, agent personality for bot usecases, and workspace bootstrap templates, help Openclaw users to quickly get started.
27
- - Team-first by design, with agent bootstrap templates that fit shared team agents as well as personal ones.
28
- - Fits the emerging pattern of one personal assistant per employee and shared assistants per team.
29
- - Useful as a bot for coding, operations, teamwork, and general work in team environment, or on the go
30
- - Strong team support in Slack, with Telegram already supported as another first-class channel.
31
- - Configurable follow-up policy instead of a fixed TTL model, with a 5-minute default window and route-level controls so teams can tune behavior to how they actually work. Smart follow-up controls help avoid unwanted bot interruption in active threads: keep natural continuation when useful, or pause it when you want the bot to stay quiet until explicitly called again.
32
- - Fast operator shortcuts for shell execution: `!<command>` or `/bash <command>`, plus slash-prefix mappings such as `\bash` or `::bash` when Slack slash-command handling is incompatible. Turns Slack / Telegram into a terminal interface on the go.
33
- - The proof of concept already shows high potential beyond internal coding workflows, including customer chatbot use cases once messaging MCP or CLI-based skills let the agent send messages proactively in a cleaner way.
34
-
35
- ## Current Focus
18
+ - One frontier-agent stack for both daily work and real coding. You do not need one product for assistant work and another for actual engineering work.
19
+ - Reuses native CLI subscriptions you already pay for, such as Claude Code, Codex, and Gemini CLI, instead of pushing you toward a separate API-cost-heavy stack.
20
+ - Strong chat-first support in Slack and Telegram, with durable tmux-backed sessions behind the bot, so you can work from your laptop or on the go without giving up a real coding workspace.
21
+ - Team-first by design, with `AGENTS`, `USER`, and `MEMORY` context bootstrapping shaped for shared team reality instead of only personal solo-assistant flows.
22
+ - Compatible with OpenClaw-style ideas where useful, but centered on native coding agents, team workflows, and practical operator control.
23
+ - Useful for coding, operations, teamwork, and general assistant work, with fast shell shortcuts such as `!<command>` and `/bash <command>` when you need terminal-like control from chat.
36
24
 
37
- `clisbot` is growing toward a broader agent runtime layer:
38
-
39
- - more CLI tool support beyond Claude Code and Codex, including Gemini CLI, OpenCode, Qwen, Kilo, and other agentic CLIs
40
- - more communication channels beyond Slack and Telegram, including Zalo, WhatsApp, Facebook, Discord, and future API-compatible surfaces
41
- - simple workflow building blocks such as cronjobs, heartbeat jobs, lightweight Ralph-style loops, and prompt combinations that just work
42
- - durable agent sessions, workspaces, follow-up policy, commands, attachments, and operator controls that stay reusable across all those surfaces
43
-
44
- 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.
45
-
46
- ## Launch MVP Path
47
-
48
- See [docs/overview/launch-mvp-path.md](docs/overview/launch-mvp-path.md) for the full current launch order.
25
+ ## What to expect
49
26
 
50
- Short snapshot:
51
-
52
- 1. Foundations first:
53
- - frictionless start and credential persistence
54
- - runtime stability and truthful status or debug UX
55
- - `/loop` as the current differentiating workflow feature
56
- 2. International launch gate:
57
- - Claude, Codex, and Gemini as the well-tested core CLI trio
58
- - current shared channel package remains Slack plus Telegram
59
- 3. Vietnam launch package:
60
- - add Zalo Official Account and Zalo Personal on top of the same core trio
61
- 4. Next expansion wave:
62
- - more CLIs such as Cursor, Amp, OpenCode, Qwen, Kilo, and Minimax, prioritized by real userbase demand
63
- - more channels such as Discord, WhatsApp, Google Workspace, and Microsoft Teams
64
- 5. Open launch decision:
65
- - whether native CLI slash-command compatibility, override, and customization should ship before broader push
66
-
67
- ## Showcase
68
-
69
- Slack
70
-
71
- ![Slack showcase](https://raw.githubusercontent.com/longbkit/clisbot/main/docs/pics/slack-01.jpg)
72
-
73
- Telegram
74
-
75
- ![Telegram topic showcase 1](https://raw.githubusercontent.com/longbkit/clisbot/main/docs/pics/telegram-01.jpg)
76
-
77
- ![Telegram topic showcase 2](https://raw.githubusercontent.com/longbkit/clisbot/main/docs/pics/telegram-02.jpg)
78
-
79
- ![Telegram topic showcase 3](https://raw.githubusercontent.com/longbkit/clisbot/main/docs/pics/telegram-03.jpg)
27
+ - You can get the first Telegram bot running in one command.
28
+ - The first-run path creates one default agent and only enables the channels you explicitly name.
29
+ - DMs start with pairing so access stays explicit.
30
+ - `--persist` lets later restarts use plain `clisbot start`.
31
+ - Advanced multi-agent setup is available later, but it is not required for day one.
80
32
 
81
33
  ## Quick Start
82
34
 
83
- Fastest first-run path for the first Telegram bot:
84
-
85
- ```bash
86
- clisbot start \
87
- --cli codex \
88
- --bot-type personal \
89
- --telegram-bot-token <your-telegram-bot-token>
90
- ```
91
-
92
- If you want later runs to work with plain `clisbot start`, persist that token immediately:
35
+ Most people should start here:
93
36
 
94
37
  ```bash
38
+ npm install -g clisbot
95
39
  clisbot start \
96
40
  --cli codex \
97
41
  --bot-type personal \
@@ -99,7 +43,9 @@ clisbot start \
99
43
  --persist
100
44
  ```
101
45
 
102
- What this does:
46
+ If you want to try first without persisting the token yet, just remove `--persist`.
47
+
48
+ What happens next:
103
49
 
104
50
  - `--bot-type personal` creates one assistant for one human
105
51
  - `--bot-type team` creates one shared assistant for a team, channel, or group workflow
@@ -108,11 +54,14 @@ What this does:
108
54
  - fresh bootstrap only enables the channels you name explicitly
109
55
  - after the persisted first run, later restarts can use plain `clisbot start`
110
56
 
111
- Packaged CLI path:
57
+ If you prefer Slack first:
112
58
 
113
59
  ```bash
114
- npm install -g clisbot
115
- clisbot start --cli codex --bot-type personal --telegram-bot-token <your-telegram-bot-token> --persist
60
+ clisbot start \
61
+ --cli codex \
62
+ --bot-type team \
63
+ --slack-app-token SLACK_APP_TOKEN \
64
+ --slack-bot-token SLACK_BOT_TOKEN
116
65
  ```
117
66
 
118
67
  Short alias:
@@ -128,16 +77,6 @@ bun install
128
77
  bun run start --cli codex --bot-type personal --telegram-bot-token <your-telegram-bot-token> --persist
129
78
  ```
130
79
 
131
- If you prefer Slack first:
132
-
133
- ```bash
134
- clisbot start \
135
- --cli codex \
136
- --bot-type team \
137
- --slack-app-token SLACK_APP_TOKEN \
138
- --slack-bot-token SLACK_BOT_TOKEN
139
- ```
140
-
141
80
  First conversation path:
142
81
 
143
82
  - send a DM to the bot in Slack or Telegram
@@ -153,36 +92,61 @@ clisbot pairing approve telegram <CODE>
153
92
 
154
93
  Fresh config starts with no configured agents, so first-run `clisbot start` requires both `--cli` and `--bot-type` before it creates the first `default` agent.
155
94
  Fresh config also starts with no preconfigured Slack channels or Telegram groups or topics. Add those routes manually in `~/.clisbot/clisbot.json`.
156
- `clisbot start` requires explicit channel token input before it bootstraps anything. You can pass raw values, env names such as `TELEGRAM_BOT_TOKEN`, or placeholders such as `'${CUSTOM_TELEGRAM_BOT_TOKEN}'`.
157
- Set `CLISBOT_HOME` if you want a fully separate local config, state, tmux socket, wrapper, and workspace root, for example when running a dev instance beside your main bot.
95
+ `clisbot start` requires explicit channel token input before it bootstraps anything. You can pass raw values, env names such as `MY_TELEGRAM_BOT_TOKEN`, or placeholders such as `'${MY_TELEGRAM_BOT_TOKEN}'`.
96
+ If you want a separate dev instance beside your main bot, see the [Development Guide](docs/development/README.md).
97
+
98
+ Gemini note:
99
+
100
+ - `clisbot` supports Gemini CLI as a routed runner target
101
+ - Gemini still needs its own reusable auth before routed prompts can succeed
102
+ - for headless or detached use, prefer `GEMINI_API_KEY` or Vertex AI credentials, or log in once directly with `gemini`
103
+
104
+ ## Showcase
105
+
106
+ Slack
107
+
108
+ ![Slack showcase](https://raw.githubusercontent.com/longbkit/clisbot/main/docs/pics/slack-01.jpg)
109
+
110
+ Telegram
111
+
112
+ ![Telegram topic showcase 1](https://raw.githubusercontent.com/longbkit/clisbot/main/docs/pics/telegram-01.jpg)
113
+
114
+ ![Telegram topic showcase 2](https://raw.githubusercontent.com/longbkit/clisbot/main/docs/pics/telegram-02.jpg)
115
+
116
+ ![Telegram topic showcase 3](https://raw.githubusercontent.com/longbkit/clisbot/main/docs/pics/telegram-03.jpg)
117
+
118
+ ## Important caution
119
+
120
+ Strong vendor investment in security and safety does not make frontier agentic CLI tools inherently safe. `clisbot` exposes those tools more broadly through chat and workflow surfaces, so you should treat the whole system as high-trust software and use it at your own risk.
121
+
122
+ ## Acknowledgements
123
+
124
+ `clisbot` would not exist without the ideas, momentum, and practical inspiration created by OpenClaw. Many configuration, routing, and workspace concepts here were learned from studying OpenClaw, then adapted to `clisbot`'s own direction. Respect and thanks to the OpenClaw project and community.
158
125
 
159
126
  ## Setup Guide
160
127
 
161
- The easiest setup flow is:
128
+ The easiest setup flow is still:
129
+
130
+ 1. Install `clisbot`.
131
+ 2. Run the quick start command above.
132
+ 3. DM the bot and approve pairing.
133
+ 4. Only move into advanced config after the first successful run.
134
+
135
+ If you want the repo-guided setup path:
162
136
 
163
137
  1. Clone this repo.
164
- 2. Open Claude Code or Codex in this repo.
138
+ 2. Open Claude Code, Codex, or Gemini CLI in this repo.
165
139
  3. Ask it to help you set up `clisbot`.
166
140
 
167
141
  The docs in this repo are kept current, including the [User Guide](docs/user-guide/README.md), so the agent should have enough context to walk you through setup, configuration, and troubleshooting directly inside the repo.
168
142
 
169
- If you prefer to configure things yourself:
143
+ If you prefer to configure everything yourself:
170
144
 
171
145
  1. Read the full config template in [config/clisbot.json.template](config/clisbot.json.template).
172
146
  2. Copy it to `~/.clisbot/clisbot.json` and adjust channels, bindings, workspaces, and policies for your environment.
173
147
  3. Add agents through the CLI so tool defaults, startup options, and bootstrap templates stay consistent.
174
148
  4. Optionally move stable channel secrets into env vars or canonical credential files after your first successful run.
175
149
 
176
- Separate dev home example:
177
-
178
- ```bash
179
- export CLISBOT_HOME=~/.clisbot-dev
180
- clisbot start --cli codex --bot-type team --telegram-bot-token TELEGRAM_BOT_TOKEN
181
- ```
182
-
183
- - `CLISBOT_HOME` changes the default config path, runtime state dir, tmux socket, local wrapper path, and default workspaces together
184
- - `CLISBOT_CONFIG_PATH` still works when you want to point at one exact config file manually
185
-
186
150
  Channel route setup is manual by design:
187
151
 
188
152
  - fresh config does not auto-add Slack channels
@@ -190,27 +154,12 @@ Channel route setup is manual by design:
190
154
  - add only the exact channel, group, topic, or DM routing you want to expose
191
155
  - default channel account setup lives in [docs/user-guide/channel-accounts.md](docs/user-guide/channel-accounts.md)
192
156
 
193
- Example agent setup:
157
+ Advanced agent management:
194
158
 
195
- ```bash
196
- clisbot start --cli codex --bot-type personal --telegram-bot-token <your-telegram-bot-token>
197
- ```
198
-
199
- ```bash
200
- clisbot agents add claude --cli claude --bootstrap team-assistant --bind telegram
201
- clisbot agents bootstrap claude --mode team-assistant --force
202
- clisbot agents list --bindings
203
- ```
204
-
205
- Agent setup rules:
206
-
207
- - `agents add` requires `--cli` and currently supports `codex` and `claude`.
208
- - `--bootstrap` accepts `personal-assistant` or `team-assistant` and seeds the workspace from `templates/openclaw`, `templates/customized/default`, and the selected customized template.
209
- - `personal-assistant` fits one assistant for one human.
210
- - `team-assistant` fits one shared assistant for a team, channel, or group workflow.
211
- - `agents bootstrap <agentId> --mode <personal-assistant|team-assistant>` bootstraps an existing agent workspace using the agent's configured CLI tool.
212
- - bootstrap runs a dry check first; if any template markdown file already exists in the workspace, it stops and asks you to rerun with `--force`.
213
- - Fresh channel config still points at the `default` agent. If your first agent is not named `default`, update `defaultAgentId` and any route `agentId` values in config.
159
+ - most users should stay on `clisbot start --cli ... --bot-type ...` and let first-run create the default agent
160
+ - if you need more than one agent, custom bindings, or manual workspace bootstrap flows, use the `clisbot agents ...` commands described in [docs/user-guide/README.md](docs/user-guide/README.md)
161
+ - README intentionally keeps that low-level surface out of the main onboarding path because the public first-run model is `--bot-type personal|team`, not internal template-mode naming
162
+ - fresh channel config still points at the `default` agent; if your first agent uses another id, update `defaultAgentId` and any route `agentId` values in config
214
163
 
215
164
  Env-backed setup is still supported when you want config to reference an env name instead of persisting a credential file:
216
165
 
@@ -224,20 +173,20 @@ clisbot start \
224
173
 
225
174
  - these flags are written into `~/.clisbot/clisbot.json` as `${ENV_NAME}` placeholders
226
175
  - you can pass either `CUSTOM_SLACK_APP_TOKEN` or `'${CUSTOM_SLACK_APP_TOKEN}'`
227
- - use this path when your environment variable names differ from `SLACK_APP_TOKEN`, `SLACK_BOT_TOKEN`, or `TELEGRAM_BOT_TOKEN`
176
+ - use this path when you want config to point at env variable names you chose yourself
228
177
  - keep env export details in [docs/user-guide/channel-accounts.md](docs/user-guide/channel-accounts.md) instead of front-loading them into quick start
229
178
 
230
179
  ## Troubleshooting
231
180
 
232
- - If setup feels unclear, open Claude Code or Codex in this repo and ask it to help using the local docs.
233
- - If you are still in doubt, clone `https://github.com/longbkit/clisbot`, open the repo in Codex or Claude Code, and ask questions about setup or the bot type choice.
181
+ If the quick start does not work, check these in order:
182
+
183
+ - If setup feels unclear, open Claude Code, Codex, or Gemini CLI in this repo and ask it to help using the local docs.
234
184
  - If config behavior is confusing, inspect [config/clisbot.json.template](config/clisbot.json.template) first, then compare it with [docs/user-guide/README.md](docs/user-guide/README.md).
235
185
  - If `clisbot start` says no agents are configured, prefer `clisbot start --cli codex --bot-type personal --telegram-bot-token <your-telegram-bot-token>`.
236
186
  - If you want later runs to work with plain `clisbot start`, rerun your successful first-run command with `--persist`.
237
187
  - If `clisbot start` prints token refs as `missing`, either pass the token explicitly on the command line or switch to env-backed setup described in [docs/user-guide/channel-accounts.md](docs/user-guide/channel-accounts.md).
238
188
  - If you use custom env names, pass them explicitly with `--slack-app-token`, `--slack-bot-token`, or `--telegram-bot-token`.
239
- - If `clisbot status` shows `bootstrap=...:missing`, the workspace is missing the tool-specific bootstrap file or `IDENTITY.md`; run `clisbot agents bootstrap <agentId> --mode <mode>`.
240
- - If `clisbot status` shows `bootstrap=...:not-bootstrapped`, finish the workspace bootstrap by reviewing `BOOTSTRAP.md`, `SOUL.md`, `IDENTITY.md`, and the mode-specific files in that workspace.
189
+ - If `clisbot status` shows `bootstrap=...:missing` or `bootstrap=...:not-bootstrapped`, follow the advanced agent bootstrap steps in [docs/user-guide/README.md](docs/user-guide/README.md).
241
190
  - If Codex shows `Do you trust the contents of this directory?`, keep `trustWorkspace: true` in clisbot config and also mark the workspace as trusted in `~/.codex/config.toml`, for example:
242
191
 
243
192
  ```toml
@@ -246,6 +195,7 @@ trust_level = "trusted"
246
195
  ```
247
196
 
248
197
  - If that trust screen is still blocking, attach directly and continue from tmux with `tmux -S ~/.clisbot/state/clisbot.sock attach -t agent-default-main`.
198
+ - If Gemini startup says it is waiting for manual authorization, authenticate Gemini directly first or provide a headless auth path such as `GEMINI_API_KEY` or Vertex AI credentials; `clisbot` now treats that screen as a startup blocker instead of a healthy ready session.
249
199
  - If Codex warns that `bubblewrap` is missing on Linux, install `bubblewrap` in the runtime environment.
250
200
  - If the bot does not answer, check that your shell environment really contains the expected tokens and restart `clisbot` after changing them.
251
201
  - If runtime startup still fails, run `clisbot logs` and inspect the recent log tail that `clisbot` now prints automatically on startup failure.
@@ -254,34 +204,29 @@ trust_level = "trusted"
254
204
  - If Slack thread behavior feels too eager, use `/followup pause` or `/followup mention-only`.
255
205
  - If Slack slash commands conflict with Slack-native command handling, add a leading space, for example ` /bash ls -la`.
256
206
 
257
- ## Commands
207
+ ## Common CLI commands
208
+
209
+ Most users only need a small set of commands at first:
258
210
 
259
211
  - `clisbot start`
260
212
  - `clisbot restart`
261
213
  - `clisbot stop`
262
- - `clisbot stop --hard`
263
214
  - `clisbot status`
264
215
  - `clisbot logs`
216
+ - `clisbot pairing approve slack <CODE>`
217
+ - `clisbot pairing approve telegram <CODE>`
265
218
  - `clisbot channels enable slack`
266
219
  - `clisbot channels enable telegram`
267
220
  - `clisbot channels add telegram-group <chatId> [--topic <topicId>] [--agent <id>] [--require-mention true|false]`
268
- - `clisbot channels remove telegram-group <chatId> [--topic <topicId>]`
269
221
  - `clisbot channels add slack-channel <channelId> [--agent <id>] [--require-mention true|false]`
270
- - `clisbot channels remove slack-channel <channelId>`
271
- - `clisbot channels add slack-group <groupId> [--agent <id>] [--require-mention true|false]`
272
- - `clisbot channels remove slack-group <groupId>`
273
- - `clisbot channels set-token <slack-app|slack-bot|telegram-bot> <value>`
274
- - `clisbot channels clear-token <slack-app|slack-bot|telegram-bot>`
275
222
  - `clisbot channels privilege enable <target>`
276
- - `clisbot channels privilege disable <target>`
277
223
  - `clisbot channels privilege allow-user <target> <userId>`
278
- - `clisbot channels privilege remove-user <target> <userId>`
279
224
  - `clisbot agents list --bindings`
280
- - `clisbot start --cli codex --bot-type personal --telegram-bot-token <your-telegram-bot-token> --persist`
281
- - `clisbot agents bootstrap default --mode personal-assistant`
282
- - `clisbot agents bind --agent default --bind telegram`
283
225
  - `clisbot agents bindings`
284
226
  - `clisbot --help`
227
+
228
+ If you are running from the repo instead of the global package:
229
+
285
230
  - `bun run dev`
286
231
  - `bun run start`
287
232
  - `bun run restart`
@@ -340,23 +285,54 @@ Follow-up behavior matters in team threads:
340
285
 
341
286
  - [Overview](docs/overview/README.md)
342
287
  - [Architecture](docs/architecture/README.md)
288
+ - [Development Guide](docs/development/README.md)
343
289
  - [Feature Tables](docs/features/feature-tables.md)
344
290
  - [Backlog](docs/tasks/backlog.md)
345
291
  - [User Guide](docs/user-guide/README.md)
346
292
 
347
293
  ## Roadmap
348
294
 
349
- - Webhook and OpenAI-compatible completion API to integrate with more workflows.
350
- - Heartbeat and cronjob support, with the note that Claude already has a useful cronjob path today through loop-style workflows.
351
- - Autodrive / hardwork mode.
352
- - Support more native CLIs such as Gemini, OpenCode, and others.
353
- - Experiment with json output mode from codex / claude code, Agent Client Protocol and native Codex SDK integration.
354
- - Experiment with native messaging tools so the bot can send Slack or Telegram messages through MCP or CLI-based skills instead of tmux pane capture, for more stable and natural public-facing behavior over time.
355
- - Add more channels on demand.
295
+ - Add more native CLIs, starting with a stronger Claude, Codex, and Gemini launch trio.
296
+ - Add more channels, starting from Slack and Telegram, then moving toward Zalo and other expansion surfaces.
297
+ - Add better workflow building blocks such as heartbeat, cron-style jobs, and stronger loop automation.
298
+ - Explore structured output, ACP, and native SDK integrations where they improve truthfulness or operator control.
299
+ - Explore more stable native messaging paths beyond tmux-pane capture over time.
300
+
301
+ ## Current Focus
302
+
303
+ `clisbot` is growing toward a broader agent runtime layer:
304
+
305
+ - more CLI tool support beyond Claude Code, Codex, and Gemini CLI
306
+ - more communication channels beyond Slack and Telegram
307
+ - simple workflow building blocks such as cron jobs, heartbeat jobs, and loops
308
+ - durable agent sessions, workspaces, follow-up policy, commands, attachments, and operator controls that stay reusable across all those surfaces
309
+
310
+ 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.
311
+
312
+ ## Launch MVP Path
313
+
314
+ See [docs/overview/launch-mvp-path.md](docs/overview/launch-mvp-path.md) for the full current launch order.
315
+
316
+ Short snapshot:
317
+
318
+ 1. Foundations first:
319
+ - frictionless start and credential persistence
320
+ - runtime stability and truthful status or debug UX
321
+ - `/loop` as the current differentiating workflow feature
322
+ 2. International launch gate:
323
+ - Claude, Codex, and Gemini as the well-tested core CLI trio
324
+ - current shared channel package remains Slack plus Telegram
325
+ 3. Vietnam launch package:
326
+ - add Zalo Official Account and Zalo Personal on top of the same core trio
327
+ 4. Next expansion wave:
328
+ - more CLIs such as Cursor, Amp, OpenCode, Qwen, Kilo, and Minimax, prioritized by real userbase demand
329
+ - more channels such as Discord, WhatsApp, Google Workspace, and Microsoft Teams
330
+ 5. Open launch decision:
331
+ - whether native CLI slash-command compatibility, override, and customization should ship before broader push
356
332
 
357
333
  ## Completed
358
334
 
359
- - [x] Multiple Codex and Claude sessions with streaming on/off support.
335
+ - [x] Multiple Codex, Claude, and Gemini sessions with streaming on/off support.
360
336
  - [x] Stale tmux session cleanup and session resume.
361
337
  - [x] OpenClaw-compatible configuration system.
362
338
  - [x] Slack channel support with streaming and attachments, smart follow mode
@@ -366,7 +342,7 @@ Follow-up behavior matters in team threads:
366
342
 
367
343
  This repo also serves as a small example of an AI-native engineering workflow:
368
344
 
369
- - simple `AGENTS.md` and `CLAUDE.md`-style operating rules, short but addresses some common drawbacks of AI models as of 2026
345
+ - simple `AGENTS.md` and `CLAUDE.md`-style operating rules
370
346
  - lessons-learned docs to capture repeated feedback and pitfalls
371
347
  - architecture docs used as a stable implementation contract
372
348
  - end-to-end validation expectations to close the feedback loop for AI agents