@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.
Files changed (3) hide show
  1. package/README.md +34 -57
  2. package/bin/bmo.js +3 -3
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -1,90 +1,67 @@
1
- # BMO — OpenCode AI Coding Assistant
1
+ # BMO
2
2
 
3
- BMO is a unified, self-contained AI coding assistant with Telegram, CLI, and Webchat interfaces. It connects to a local [OpenCode](https://github.com/opencode-ai/opencode) instance and extends it with persistent memory, tool access, custom agents, and a decentralized peer-to-peer Agent Discovery Protocol (BFP).
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
- ## 🚀 Installation & Setup
7
+ ## Installation
8
8
 
9
- BMO is published as a global Node/npm command-line tool. The installer automatically downloads a minimal embedded Python environment, installs python dependencies, and sets up everything required.
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
- ### 2. Run the Configuration Wizard
17
- Configure your Telegram Bot Father token, admin Telegram user ID, model settings, and peer registry:
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
- ## Quick Start
25
+ ## Quick Start
26
26
 
27
- ### 🤖 Start the Bot & CLI
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
- *Note: If your local OpenCode instance is not running, BMO will automatically attempt to launch it.*
31
+ If your local OpenCode server is not running, BMO will attempt to start it automatically.
33
32
 
34
- ### 🌐 Launch the Web Chat Interface
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
- ### 📡 Go Online (Peer Relay)
41
- Start a BFP (BMO Friendship Protocol) peer relay node to make your agent discoverable by other BMO peers on the registry:
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
- * To run privately without listing on the public registry: `bmo relay --private`
46
- * To stop the relay background services: `bmo relay --stop`
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
- * **`~/.bmo/.env`** Bot tokens, model configurations, and ports.
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
- ## 👥 Telegram interface
57
+ ## Storage and Configuration
78
58
 
79
- Use the persistent keyboard controls at the bottom of the chat, or the inline control menu (`/menu` command) to:
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
- ## 📄 License
65
+ ## License
89
66
 
90
- MIT License. Developed by Aliwey.
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.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",