clisbot 0.1.8 → 0.1.11

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,9 +1,9 @@
1
1
  # clisbot - Agentic Coding CLI & chat bot
2
2
  The cheapest, simplest path to frontier LLMs and agentic CLI workflows for teams and individuals.
3
3
 
4
- `clisbot` 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, not just a coding tool.
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.
5
5
 
6
- It is not just another tmux bridge or Telegram bridge. `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.
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.
7
7
 
8
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.
9
9
 
@@ -43,6 +43,27 @@ Strong vendor investment in security and safety does not make frontier agentic C
43
43
 
44
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
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.
49
+
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
+
46
67
  ## Showcase
47
68
 
48
69
  Slack
@@ -59,108 +80,81 @@ Telegram
59
80
 
60
81
  ## Quick Start
61
82
 
62
- Choose one setup path.
63
-
64
- Packaged CLI path:
65
-
66
- Requires Node 20+ in the shell where you run `clisbot`.
67
-
68
- Primary command: `clisbot`
69
- Short alias: `clis`
70
-
71
- 1. Install globally:
72
-
73
- ```bash
74
- npm install -g clisbot
75
- ```
76
-
77
- 2. Add the required environment variables to your shell startup file, then reload it.
78
-
79
- ```bash
80
- # ~/.zshrc or ~/.bashrc
81
- export SLACK_APP_TOKEN=...
82
- export SLACK_BOT_TOKEN=...
83
- export TELEGRAM_BOT_TOKEN=...
84
- ```
83
+ Fastest first-run path for the first Telegram bot:
85
84
 
86
85
  ```bash
87
- source ~/.zshrc
88
- # or: source ~/.bashrc
86
+ clisbot start \
87
+ --cli codex \
88
+ --bot-type personal \
89
+ --telegram-bot-token <your-telegram-bot-token>
89
90
  ```
90
91
 
91
- 3. Start the service directly.
92
+ If you want later runs to work with plain `clisbot start`, persist that token immediately:
92
93
 
93
94
  ```bash
94
- clisbot start --cli codex --bootstrap personal-assistant
95
- clis start --cli codex --bootstrap personal-assistant
95
+ clisbot start \
96
+ --cli codex \
97
+ --bot-type personal \
98
+ --telegram-bot-token <your-telegram-bot-token> \
99
+ --persist
96
100
  ```
97
101
 
98
- 4. Fastest first conversation path: send a direct message to the bot in Slack or Telegram.
102
+ What this does:
99
103
 
100
- `clisbot` defaults direct messages to pairing mode. The bot will reply with a pairing code and approval command.
104
+ - `--bot-type personal` creates one assistant for one human
105
+ - `--bot-type team` creates one shared assistant for a team, channel, or group workflow
106
+ - literal token input stays in memory unless you also pass `--persist`
107
+ - `--persist` promotes the token into the canonical credential file so the next `clisbot start` can reuse it without retyping
108
+ - fresh bootstrap only enables the channels you name explicitly
109
+ - after the persisted first run, later restarts can use plain `clisbot start`
101
110
 
102
- Approve it with:
111
+ Packaged CLI path:
103
112
 
104
113
  ```bash
105
- clisbot pairing approve slack <CODE>
106
- clisbot pairing approve telegram <CODE>
114
+ npm install -g clisbot
115
+ clisbot start --cli codex --bot-type personal --telegram-bot-token <your-telegram-bot-token> --persist
107
116
  ```
108
117
 
109
- After approval, keep chatting with the bot in that DM or add shared channel or topic routes later.
110
-
111
- If you do not want to install globally, you can also run it directly with `npx`:
118
+ Short alias:
112
119
 
113
120
  ```bash
114
- npx clisbot start --cli codex --bootstrap personal-assistant
121
+ clis start --cli codex --bot-type personal --telegram-bot-token <your-telegram-bot-token>
115
122
  ```
116
123
 
117
124
  Local repo path:
118
125
 
119
- Requires Bun for development commands in this repo.
120
-
121
- 1. Install dependencies.
122
-
123
126
  ```bash
124
127
  bun install
128
+ bun run start --cli codex --bot-type personal --telegram-bot-token <your-telegram-bot-token> --persist
125
129
  ```
126
130
 
127
- 2. Add the required environment variables to your shell startup file, then reload it.
128
-
129
- ```bash
130
- # ~/.zshrc or ~/.bashrc
131
- export SLACK_APP_TOKEN=...
132
- export SLACK_BOT_TOKEN=...
133
- export TELEGRAM_BOT_TOKEN=...
134
- ```
131
+ If you prefer Slack first:
135
132
 
136
133
  ```bash
137
- source ~/.zshrc
138
- # or: source ~/.bashrc
139
- ```
140
-
141
- 3. Start the service directly.
142
-
143
- ```bash
144
- bun run start --cli codex --bootstrap personal-assistant
134
+ clisbot start \
135
+ --cli codex \
136
+ --bot-type team \
137
+ --slack-app-token SLACK_APP_TOKEN \
138
+ --slack-bot-token SLACK_BOT_TOKEN
145
139
  ```
146
140
 
147
- 4. Fastest first conversation path: send a direct message to the bot in Slack or Telegram.
141
+ First conversation path:
148
142
 
149
- `clisbot` defaults direct messages to pairing mode. The bot will reply with a pairing code and approval command.
143
+ - send a DM to the bot in Slack or Telegram
144
+ - `clisbot` defaults DMs to pairing mode
145
+ - the bot replies with a pairing code and approval command
150
146
 
151
147
  Approve it with:
152
148
 
153
149
  ```bash
154
- bun run pairing -- approve slack <CODE>
155
- bun run pairing -- approve telegram <CODE>
150
+ clisbot pairing approve slack <CODE>
151
+ clisbot pairing approve telegram <CODE>
156
152
  ```
157
153
 
158
- After approval, keep chatting with the bot in that DM or add shared channel or topic routes later.
159
-
160
- Fresh config now starts with no configured agents, and first-run `clisbot start` requires both `--cli` and `--bootstrap` before it creates the first `default` agent.
161
- Fresh config also starts with no preconfigured Slack channels or Telegram groups/topics. Add those routes manually in `~/.clisbot/clisbot.json`.
162
- `clisbot start` now also requires Slack or Telegram token references before it bootstraps anything. By default it looks for `SLACK_APP_TOKEN`, `SLACK_BOT_TOKEN`, and `TELEGRAM_BOT_TOKEN`, but you can pass custom placeholders such as `--slack-app-token '${CUSTOM_SLACK_APP_TOKEN}'`.
163
- On startup, `clisbot` now prints which token env names it is checking and whether each one is set or missing.
154
+ 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
+ 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.
164
158
 
165
159
  ## Setup Guide
166
160
 
@@ -177,7 +171,17 @@ If you prefer to configure things yourself:
177
171
  1. Read the full config template in [config/clisbot.json.template](config/clisbot.json.template).
178
172
  2. Copy it to `~/.clisbot/clisbot.json` and adjust channels, bindings, workspaces, and policies for your environment.
179
173
  3. Add agents through the CLI so tool defaults, startup options, and bootstrap templates stay consistent.
180
- 4. Set the required environment variables in your shell startup file so `clisbot` can read them consistently.
174
+ 4. Optionally move stable channel secrets into env vars or canonical credential files after your first successful run.
175
+
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
181
185
 
182
186
  Channel route setup is manual by design:
183
187
 
@@ -189,7 +193,7 @@ Channel route setup is manual by design:
189
193
  Example agent setup:
190
194
 
191
195
  ```bash
192
- clisbot start --cli codex --bootstrap personal-assistant
196
+ clisbot start --cli codex --bot-type personal --telegram-bot-token <your-telegram-bot-token>
193
197
  ```
194
198
 
195
199
  ```bash
@@ -201,70 +205,36 @@ clisbot agents list --bindings
201
205
  Agent setup rules:
202
206
 
203
207
  - `agents add` requires `--cli` and currently supports `codex` and `claude`.
204
- - `--bootstrap` accepts `personal-assistant` or `team-assistant` and seeds the workspace from `templates/openclaw` plus the selected customized template.
208
+ - `--bootstrap` accepts `personal-assistant` or `team-assistant` and seeds the workspace from `templates/openclaw`, `templates/customized/default`, and the selected customized template.
205
209
  - `personal-assistant` fits one assistant for one human.
206
210
  - `team-assistant` fits one shared assistant for a team, channel, or group workflow.
207
211
  - `agents bootstrap <agentId> --mode <personal-assistant|team-assistant>` bootstraps an existing agent workspace using the agent's configured CLI tool.
208
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`.
209
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.
210
214
 
211
- Custom token placeholder setup:
215
+ Env-backed setup is still supported when you want config to reference an env name instead of persisting a credential file:
212
216
 
213
217
  ```bash
214
218
  clisbot start \
215
219
  --cli codex \
216
- --bootstrap personal-assistant \
220
+ --bot-type personal \
217
221
  --slack-app-token CUSTOM_SLACK_APP_TOKEN \
218
222
  --slack-bot-token CUSTOM_SLACK_BOT_TOKEN
219
223
  ```
220
224
 
221
- - these flags are written into `~/.clisbot/clisbot.json` exactly as provided
225
+ - these flags are written into `~/.clisbot/clisbot.json` as `${ENV_NAME}` placeholders
222
226
  - you can pass either `CUSTOM_SLACK_APP_TOKEN` or `'${CUSTOM_SLACK_APP_TOKEN}'`
223
- - `clisbot` does not expand or print the token values during config generation
224
- - use them when your environment variable names differ from `SLACK_APP_TOKEN`, `SLACK_BOT_TOKEN`, or `TELEGRAM_BOT_TOKEN`
225
- - the env var itself still needs a real value in your shell before `clisbot start` can launch
226
-
227
- Examples:
228
-
229
- ```bash
230
- # ~/.bashrc
231
- export SLACK_APP_TOKEN=...
232
- export SLACK_BOT_TOKEN=...
233
- export TELEGRAM_BOT_TOKEN=...
234
- ```
235
-
236
- ```bash
237
- # ~/.zshrc
238
- export SLACK_APP_TOKEN=...
239
- export SLACK_BOT_TOKEN=...
240
- export TELEGRAM_BOT_TOKEN=...
241
- ```
242
-
243
- ```bash
244
- # custom names are also valid
245
- export CUSTOM_SLACK_APP_TOKEN=...
246
- export CUSTOM_SLACK_BOT_TOKEN=...
247
- export CUSTOM_TELEGRAM_BOT_TOKEN=...
248
- ```
249
-
250
- Then reload your shell:
251
-
252
- ```bash
253
- source ~/.bashrc
254
- ```
255
-
256
- ```bash
257
- source ~/.zshrc
258
- ```
227
+ - use this path when your environment variable names differ from `SLACK_APP_TOKEN`, `SLACK_BOT_TOKEN`, or `TELEGRAM_BOT_TOKEN`
228
+ - 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
259
229
 
260
230
  ## Troubleshooting
261
231
 
262
232
  - If setup feels unclear, open Claude Code or Codex in this repo and ask it to help using the local docs.
263
- - 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 bootstrap mode choice.
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.
264
234
  - 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).
265
- - If `clisbot start` says no agents are configured, prefer `clisbot start --cli codex --bootstrap personal-assistant`.
266
- - If `clisbot start` says no default tokens were found, set Slack or Telegram tokens first using [docs/user-guide/channel-accounts.md](docs/user-guide/channel-accounts.md).
267
- - If `clisbot start` prints token refs as `missing`, set those exact env vars in `~/.bashrc` or `~/.zshrc`, reload the shell, then start again.
235
+ - If `clisbot start` says no agents are configured, prefer `clisbot start --cli codex --bot-type personal --telegram-bot-token <your-telegram-bot-token>`.
236
+ - If you want later runs to work with plain `clisbot start`, rerun your successful first-run command with `--persist`.
237
+ - 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).
268
238
  - If you use custom env names, pass them explicitly with `--slack-app-token`, `--slack-bot-token`, or `--telegram-bot-token`.
269
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>`.
270
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.
@@ -307,7 +277,7 @@ trust_level = "trusted"
307
277
  - `clisbot channels privilege allow-user <target> <userId>`
308
278
  - `clisbot channels privilege remove-user <target> <userId>`
309
279
  - `clisbot agents list --bindings`
310
- - `clisbot start --cli codex --bootstrap personal-assistant`
280
+ - `clisbot start --cli codex --bot-type personal --telegram-bot-token <your-telegram-bot-token> --persist`
311
281
  - `clisbot agents bootstrap default --mode personal-assistant`
312
282
  - `clisbot agents bind --agent default --bind telegram`
313
283
  - `clisbot agents bindings`