@aliwey/bmo 2.0.0 → 2.0.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 +34 -57
- package/bin/bmo.js +3 -3
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,90 +1,67 @@
|
|
|
1
|
-
# BMO
|
|
1
|
+
# BMO
|
|
2
2
|
|
|
3
|
-
BMO
|
|
3
|
+
BMO connects your local OpenCode instance to Telegram, an interactive terminal TUI, and a webchat interface, all sharing a single SQLite database and session history.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
It handles its own dependencies out of the box, packaging a minimal embedded Python runtime, pip dependencies, and cloudflared for secure tunneling.
|
|
6
6
|
|
|
7
|
-
##
|
|
7
|
+
## Installation
|
|
8
8
|
|
|
9
|
-
BMO
|
|
9
|
+
Install BMO globally via npm:
|
|
10
10
|
|
|
11
|
-
### 1. Install Globally via npm
|
|
12
11
|
```bash
|
|
13
12
|
npm install -g @aliwey/bmo
|
|
14
13
|
```
|
|
15
14
|
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
## Setup
|
|
16
|
+
|
|
17
|
+
Run the configuration wizard to link your Telegram bot token and define your settings:
|
|
18
|
+
|
|
18
19
|
```bash
|
|
19
20
|
bmo init
|
|
20
21
|
```
|
|
21
|
-
This generates your configuration file at `~/.bmo/.env`.
|
|
22
22
|
|
|
23
|
-
|
|
23
|
+
This creates a configuration file in `~/.bmo/.env`.
|
|
24
24
|
|
|
25
|
-
##
|
|
25
|
+
## Quick Start
|
|
26
26
|
|
|
27
|
-
###
|
|
28
|
-
To launch the Telegram bot polling and the interactive terminal TUI:
|
|
27
|
+
### Start Bot and CLI TUI
|
|
29
28
|
```bash
|
|
30
29
|
bmo
|
|
31
30
|
```
|
|
32
|
-
|
|
31
|
+
If your local OpenCode server is not running, BMO will attempt to start it automatically.
|
|
33
32
|
|
|
34
|
-
###
|
|
35
|
-
Starts the unified Node.js/Express Web Chat and opens a secure public Cloudflare Tunnel so you can chat from any web browser:
|
|
33
|
+
### Start Webchat and Tunnel
|
|
36
34
|
```bash
|
|
37
35
|
bmo web
|
|
38
36
|
```
|
|
37
|
+
This launches the Node/Express webchat server and opens a secure public Cloudflare Tunnel, allowing you to access your chat session from any device.
|
|
39
38
|
|
|
40
|
-
###
|
|
41
|
-
|
|
39
|
+
### Start BFP Relay (Optional)
|
|
40
|
+
To make your agent discoverable by other BMO peers on the registry:
|
|
42
41
|
```bash
|
|
43
42
|
bmo relay
|
|
44
43
|
```
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
---
|
|
49
|
-
|
|
50
|
-
## 🛠️ CLI Commands & Subcommands
|
|
51
|
-
|
|
52
|
-
```bash
|
|
53
|
-
bmo [command] [options]
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
| Command | Option | Description |
|
|
57
|
-
|---|---|---|
|
|
58
|
-
| `bmo` | — | Starts the Telegram bot & CLI TUI |
|
|
59
|
-
| `bmo init` | — | Runs the interactive setup wizard |
|
|
60
|
-
| `bmo web` | — | Starts Express Webchat + Cloudflare tunnel |
|
|
61
|
-
| `bmo relay` | `[--private] [--stop]` | Starts/stops the BFP capability relay |
|
|
62
|
-
| `bmo --version` | — | Prints the package version |
|
|
63
|
-
| `bmo --update` | — | Automatically pulls and applies the latest updates |
|
|
64
|
-
|
|
65
|
-
---
|
|
66
|
-
|
|
67
|
-
## ⚙️ Configuration & Storage
|
|
68
|
-
|
|
69
|
-
All user configurations, chat databases, and logs are kept isolated in the user's home directory under `~/.bmo/`:
|
|
44
|
+
Options:
|
|
45
|
+
- `--private`: Run the relay and tunnel locally without registering on the public directory.
|
|
46
|
+
- `--stop`: Terminate the background relay and tunnel processes.
|
|
70
47
|
|
|
71
|
-
|
|
72
|
-
* **`~/.bmo/data/bot.db`** — Shared SQLite database (WAL mode) containing all sessions, messages, memory, and custom agents.
|
|
73
|
-
* **`~/.bmo/logs/`** — Log files for the bot, webchat, and tunnel.
|
|
48
|
+
## Command Reference
|
|
74
49
|
|
|
75
|
-
|
|
50
|
+
- `bmo` - Launches the Telegram bot and the CLI TUI.
|
|
51
|
+
- `bmo init` - Runs the interactive configuration wizard.
|
|
52
|
+
- `bmo web` - Starts the webchat server and Cloudflare tunnel.
|
|
53
|
+
- `bmo relay` - Controls the peer-to-peer relay.
|
|
54
|
+
- `bmo --version` - Prints the installed version.
|
|
55
|
+
- `bmo --update` - Checks for and pulls the latest updates.
|
|
76
56
|
|
|
77
|
-
##
|
|
57
|
+
## Storage and Configuration
|
|
78
58
|
|
|
79
|
-
|
|
80
|
-
- **🆕 New / 💾 Save / 📂 Load** sessions
|
|
81
|
-
- **🤖 Choose Model** dynamically (e.g. OpenAI, Anthropic, DeepSeek, or local)
|
|
82
|
-
- **⚡ Operation Modes**: `plan` (outline only), `ask` (clarifying questions first), or `execute` (write code and run commands)
|
|
83
|
-
- **🎭 Agents & 🛠️ Skills**: Enable custom or generated personas and load specialized capabilities
|
|
84
|
-
- **🌐 Chat on Web**: Dynamically launch a cloudflared-tunneled web interface directly from Telegram
|
|
59
|
+
All configuration, logs, and database files are kept in the user home directory:
|
|
85
60
|
|
|
86
|
-
|
|
61
|
+
- `~/.bmo/.env` - Your API tokens, ports, and default model configuration.
|
|
62
|
+
- `~/.bmo/data/bot.db` - The shared SQLite database (WAL mode) containing session history, memory, and custom agents.
|
|
63
|
+
- `~/.bmo/logs/` - Logs for the bot, CLI, webchat, and tunnel.
|
|
87
64
|
|
|
88
|
-
##
|
|
65
|
+
## License
|
|
89
66
|
|
|
90
|
-
MIT
|
|
67
|
+
MIT
|
package/bin/bmo.js
CHANGED
|
@@ -136,19 +136,19 @@ Data lives in: ${BMO_HOME_DISPLAY}
|
|
|
136
136
|
}
|
|
137
137
|
|
|
138
138
|
// ── bmo init ──────────────────────────────────────────────────────────────
|
|
139
|
-
if (cmd === 'init') {
|
|
139
|
+
if (cmd === 'init' || cmd === '-init' || cmd === '--init') {
|
|
140
140
|
require('../scripts/bmo_init.js');
|
|
141
141
|
return;
|
|
142
142
|
}
|
|
143
143
|
|
|
144
144
|
// ── bmo web ───────────────────────────────────────────────────────────────
|
|
145
|
-
if (cmd === 'web') {
|
|
145
|
+
if (cmd === 'web' || cmd === '-web' || cmd === '--web') {
|
|
146
146
|
require('../scripts/web_cmd.js');
|
|
147
147
|
return;
|
|
148
148
|
}
|
|
149
149
|
|
|
150
150
|
// ── bmo relay [--private|--stop] ──────────────────────────────────────────
|
|
151
|
-
if (cmd === 'relay') {
|
|
151
|
+
if (cmd === 'relay' || cmd === '-relay' || cmd === '--relay') {
|
|
152
152
|
process.argv = [process.argv[0], process.argv[1], ...args]; // pass flags
|
|
153
153
|
require('../scripts/relay_cmd.js');
|
|
154
154
|
return;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aliwey/bmo",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.2",
|
|
4
4
|
"description": "BMO — AI coding assistant with Telegram, CLI & Web sync. One command, all frontends.",
|
|
5
5
|
"keywords": ["ai", "coding-assistant", "telegram-bot", "cli", "opencode", "bfp"],
|
|
6
6
|
"homepage": "https://github.com/aliwey/bmo",
|