@moxxy/cli 0.1.2 → 0.1.4

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,14 +1,14 @@
1
1
  <p align="center">
2
2
  <a href="https://moxxy.ai">
3
- <img src="https://moxxy.ai/logo-gradient.svg" alt="moxxy" width="160" />
3
+ <img src="https://moxxy.ai/moxxy-head-256.png" alt="moxxy" width="128" />
4
4
  </a>
5
5
  </p>
6
6
 
7
7
  <h1 align="center">@moxxy/cli</h1>
8
8
 
9
9
  <p align="center">
10
- <strong>The <code>moxxy</code> binary.</strong><br/>
11
- Interactive TUI, one-shot prompts, channels, scheduler, MCP, services all the surfaces in one bundled command.
10
+ The <code>moxxy</code> binary.<br/>
11
+ An interactive TUI, one-shot prompts, channels, scheduler, MCP, and OS services in a single bundled command.
12
12
  </p>
13
13
 
14
14
  <p align="center">
@@ -27,39 +27,43 @@
27
27
  </p>
28
28
 
29
29
  <p align="center">
30
- <a href="#-installation">Install</a>
30
+ <a href="#installation">Install</a>
31
31
  &nbsp;·&nbsp;
32
- <a href="#-quickstart">Quickstart</a>
32
+ <a href="#quickstart">Quickstart</a>
33
33
  &nbsp;·&nbsp;
34
34
  <a href="https://moxxy.ai">Docs</a>
35
35
  &nbsp;·&nbsp;
36
- <a href="#-commands">Commands</a>
36
+ <a href="#commands">Commands</a>
37
37
  &nbsp;·&nbsp;
38
- <a href="#-channels">Channels</a>
38
+ <a href="#channels">Channels</a>
39
39
  &nbsp;·&nbsp;
40
- <a href="#-services">Services</a>
40
+ <a href="#services">Services</a>
41
41
  </p>
42
42
 
43
43
  ---
44
44
 
45
- ## What this package is
45
+ ## What this package is
46
46
 
47
- `@moxxy/cli` is the published `moxxy` binary. It bundles the framework runtime, every built-in mode + provider + plugin, the Ink TUI channel, MCP support, the scheduler, webhooks, and the OS-service installer into a single executable.
47
+ `@moxxy/cli` is the published `moxxy` binary. It bundles the framework runtime, every built-in mode, every built-in provider, every built-in plugin, the Ink TUI channel, MCP support, the scheduler, webhooks, and the OS service installer into a single executable.
48
48
 
49
- If you want to **use** moxxy, install this. If you want to **author plugins**, depend on [`@moxxy/sdk`](https://www.npmjs.com/package/@moxxy/sdk) instead.
49
+ Install this if you want to use moxxy. If you want to author plugins, depend on [`@moxxy/sdk`](https://www.npmjs.com/package/@moxxy/sdk) instead.
50
50
 
51
- | | |
52
- |---|---|
53
- | 🧩 **Every block is a plugin** | Anthropic / OpenAI / ChatGPT-OAuth providers, five loop strategies, built-in Read/Edit/Write/Bash/Grep/Glob, MCP, memory, vault — all swappable. |
54
- | 📺 **Multi-channel** | TUI, Telegram, HTTP, web, cron, webhooks one session, many surfaces. |
55
- | 🎙 **Voice in** | Telegram voice notes & `POST /v1/turn/audio` route through a `Transcriber` (Whisper plugin ships built-in). |
56
- | 🔐 **Vault** | AES-256-GCM secrets at rest; reference as `${vault:KEY}` in config. |
57
- | 🧠 **Long-term memory** | Journal-based with vector recall; TF-IDF built in, swap to OpenAI embeddings. |
58
- | **Always-on** | `moxxy service install` for per-channel launchd / systemd units, or `moxxy serve --background` for everything in one process. |
59
- | 🪪 **Permission gating** | Every tool call gated; allow-always rules learned per tool. |
60
- | 🛡 **Pluggable isolation** | Opt-in capability sandboxing (`inproc` shipped; `worker` / `subprocess` / `wasm` / `docker` drop-in). Off by default. |
51
+ ## What you get out of the box
52
+
53
+ - A complete agent stack with Anthropic, OpenAI, and ChatGPT (OAuth) providers.
54
+ - Five loop strategies: `tool-use` (default Claude-Code-style), `plan-execute`, `bmad`, `developer`, and `deep-research`.
55
+ - Built-in tools: Read, Edit, Write, Bash, Grep, Glob, WebFetch, computer-control (macOS), and browser-session (Playwright, optional).
56
+ - Multi-channel by design: TUI, Telegram, HTTP, web, cron, and webhooks. One session can drive several surfaces at once.
57
+ - Voice input on any audio-capable channel through `@moxxy/plugin-stt-whisper`.
58
+ - An encrypted vault (AES-256-GCM at rest) so secrets in config are referenced as `${vault:KEY}` and never written in plaintext.
59
+ - A long-term memory subsystem with a journal and vector recall. TF-IDF ships built-in. Swap to OpenAI embeddings via `@moxxy/plugin-embeddings-openai`.
60
+ - A permission resolver that gates every tool call and learns allow-always rules per tool.
61
+ - Opt-in capability isolation. Tools declare what they need and an isolator enforces it. `inproc` ships built-in. `worker`, `subprocess`, `wasm`, and Docker isolators drop in behind the same interface.
62
+ - A scheduler for cron expressions and one-shot ISO timestamps.
63
+ - A webhook listener with HMAC verification, header and JSON-path filters, and a `cloudflared` or `ngrok` tunnel helper.
64
+ - An OS service installer for launchd (macOS) and systemd (Linux), or a single `serve --background` process that runs every channel together.
61
65
 
62
- ## 🚀 Installation
66
+ ## Installation
63
67
 
64
68
  ```sh
65
69
  npm install -g @moxxy/cli
@@ -71,12 +75,12 @@ Or run it without installing:
71
75
  npx @moxxy/cli init
72
76
  ```
73
77
 
74
- **Requirements**: Node.js 20.10. An API key for a supported provider (Anthropic, OpenAI) or sign into ChatGPT via `moxxy login openai-codex`.
78
+ Requirements: Node.js 20.10 or later. An API key for a supported provider (Anthropic, OpenAI), or sign into ChatGPT via `moxxy login openai-codex`.
75
79
 
76
- ## Quickstart
80
+ ## Quickstart
77
81
 
78
82
  ```sh
79
- moxxy init # interactive: choose provider, paste API key (goes into the vault)
83
+ moxxy init # interactive: choose provider, paste API key (stored in the vault)
80
84
  moxxy # launch the interactive TUI
81
85
  ```
82
86
 
@@ -92,100 +96,104 @@ Resume a previous conversation:
92
96
  moxxy resume
93
97
  ```
94
98
 
95
- That's it. `moxxy --help` lists every command; `moxxy <command> --help` shows per-command details.
99
+ `moxxy --help` lists every command. `moxxy <command> --help` shows per-command details.
96
100
 
97
- ## 🧭 Commands
101
+ ## Commands
98
102
 
99
- The `moxxy` CLI groups commands the same way `moxxy --help` does:
103
+ The CLI groups commands the same way `moxxy --help` does.
100
104
 
101
105
  ### Setup
102
106
 
103
107
  | Command | What it does |
104
108
  |---|---|
105
109
  | `moxxy init` | Interactive first-time setup. Picks a provider, captures the key, writes it into the vault. |
106
- | `moxxy login <provider>` | OAuth sign-in for providers that don't use API keys (e.g. `openai-codex`). |
110
+ | `moxxy login <provider>` | OAuth sign-in for providers that do not use API keys (for example `openai-codex`). |
107
111
  | `moxxy login status` | Show stored OAuth credentials. |
108
112
  | `moxxy login logout <provider>` | Remove stored OAuth credentials. |
109
- | `moxxy doctor` | Diagnose your install provider readiness, vault unlock, missing optional deps. |
113
+ | `moxxy doctor` | Diagnose your install: provider readiness, vault unlock, missing optional dependencies. |
110
114
 
111
115
  ### Run
112
116
 
113
117
  | Command | What it does |
114
118
  |---|---|
115
- | `moxxy` | Default start the Ink TUI. |
116
- | `moxxy tui` | Same, explicit. |
119
+ | `moxxy` | Default. Starts the Ink TUI. |
120
+ | `moxxy tui` | Same as above, explicit. |
117
121
  | `moxxy -p "…"` (or `--prompt`) | One-shot prompt to stdout. |
118
- | `moxxy resume [-s <id>]` | Resume a persisted session (interactive picker if no id). |
122
+ | `moxxy resume [-s <id>]` | Resume a persisted session. Interactive picker if no id. |
119
123
  | `moxxy <channel>` | Start a registered channel by name. |
120
- | `moxxy channels` | List registered channels + their subcommands. |
121
- | `moxxy serve` | Start every channel + the scheduler + webhooks in one process. |
124
+ | `moxxy channels` | List registered channels and their subcommands. |
125
+ | `moxxy serve` | Start every channel together with the scheduler and webhooks in one process. |
122
126
 
123
127
  ### Manage
124
128
 
125
129
  | Command | What it does |
126
130
  |---|---|
127
- | `moxxy sessions list` / `delete` | Inspect or remove persisted sessions. |
128
- | `moxxy skills list` / `new` / `audit` | Manage skill files (user / project / builtin / plugin scopes). |
129
- | `moxxy plugins list` / `reload` / `new` | Manage the plugin host; reload picks up newly installed packages. |
130
- | `moxxy mcp list` / `add` / `enable` / `disable` / `remove` | Manage MCP servers in `~/.moxxy/mcp.json`. |
131
- | `moxxy perms list` / `add` / `remove` | Inspect or edit the persisted permission rules. |
132
- | `moxxy memory journal` / `recall` | Read or query long-term memory. |
133
- | `moxxy schedule add` / `list` / `remove` | Time-driven prompts (cron or one-shot ISO). |
134
- | `moxxy security audit` / `status` / `isolators` | Inspect tool capability declarations and active isolator. |
135
- | `moxxy service install` / `logs` / `status` / `uninstall` | Background OS services (launchd / systemd). |
136
- | `moxxy self-update` | Update bundled plugins/skills/core safely. |
131
+ | `moxxy sessions list` and `delete` | Inspect or remove persisted sessions. |
132
+ | `moxxy skills list`, `new`, `audit` | Manage skill files across user, project, builtin, and plugin scopes. |
133
+ | `moxxy plugins list`, `reload`, `new` | Manage the plugin host. `reload` picks up newly installed packages. |
134
+ | `moxxy mcp list`, `add`, `enable`, `disable`, `remove` | Manage MCP servers in `~/.moxxy/mcp.json`. |
135
+ | `moxxy perms list`, `add`, `remove` | Inspect or edit the persisted permission rules. |
136
+ | `moxxy memory journal` and `recall` | Read or query long-term memory. |
137
+ | `moxxy schedule add`, `list`, `remove` | Time-driven prompts (cron or one-shot ISO). |
138
+ | `moxxy security audit`, `status`, `isolators` | Inspect tool capability declarations and the active isolator. |
139
+ | `moxxy service install`, `logs`, `status`, `uninstall` | Background OS services (launchd or systemd). |
140
+ | `moxxy self-update` | Update bundled plugins, skills, and core safely. |
137
141
 
138
142
  ### Flags
139
143
 
140
144
  | Flag | What it does |
141
145
  |---|---|
142
- | `--prompt, -p "…"` | One-shot input. |
146
+ | `--prompt`, `-p "…"` | One-shot input. |
143
147
  | `--model <id>` | Override the default model for this invocation. |
144
- | `--output-format <fmt>` | `text` \| `json` \| `stream-json` (one-shot output mode). |
148
+ | `--output-format <fmt>` | `text`, `json`, or `stream-json` (one-shot output mode). |
145
149
  | `--cwd <path>` | Set the agent's working directory. |
146
150
  | `--config <path>` | Load a specific `moxxy.config.ts`. |
147
151
  | `--no-color` | Disable ANSI colors. |
148
- | `-h, --help` / `-v, --version` | Standard. |
152
+ | `-h`, `--help`, `-v`, `--version` | Standard. |
149
153
 
150
154
  ### Environment
151
155
 
152
156
  | Variable | What it does |
153
157
  |---|---|
154
158
  | `ANTHROPIC_API_KEY` | Default Anthropic provider key. |
155
- | `OPENAI_API_KEY` | OpenAI provider key (and openai embeddings). |
159
+ | `OPENAI_API_KEY` | OpenAI provider key (also used by the openai embeddings plugin). |
156
160
  | `MOXXY_VAULT_PASSPHRASE` | Headless vault unlock when no OS keychain is available. |
157
- | `MOXXY_FIXTURES` | `record` \| `replay` provider fixture mode (used by tests). |
161
+ | `MOXXY_FIXTURES` | `record` or `replay`. Provider fixture mode used by tests. |
158
162
 
159
- ## 📺 Channels
163
+ ## Channels
160
164
 
161
- Run your agent through whatever surface fits the task:
165
+ Run your agent through whichever surface fits the task.
162
166
 
163
167
  | Channel | What it does | Command |
164
168
  |---|---|---|
165
- | **TUI** | Grok-style interactive terminal UI | `moxxy` |
166
- | **Telegram** | Message your agent from anywhere; voice notes get transcribed and run as turns; pairs with a 6-digit code | `moxxy telegram` |
167
- | **HTTP** | `POST /v1/turn` (JSON, SSE streaming) or `POST /v1/turn/audio` (raw bytes, iOS Shortcut friendly), bearer-token auth | `moxxy channels http` |
168
- | **Cron** | Time-driven prompts (cron expressions or one-shot ISO timestamps) | `moxxy schedule add …` |
169
- | **Webhooks** | External systems fire prompts on signed POST. HMAC + bearer + filter rules. | `moxxy serve` (auto-starts the listener) |
169
+ | TUI | Grok-style interactive terminal UI. | `moxxy` |
170
+ | Telegram | Message the agent from anywhere. Voice notes get transcribed and run as turns. Pairs with a 6-digit code. | `moxxy telegram` |
171
+ | HTTP | `POST /v1/turn` (JSON, SSE streaming) and `POST /v1/turn/audio` (raw bytes, iOS Shortcut friendly), bearer-token auth. | `moxxy channels http` |
172
+ | Cron | Time-driven prompts. Cron expressions or one-shot ISO timestamps. | `moxxy schedule add …` |
173
+ | Webhooks | External systems fire prompts on signed POST. HMAC plus bearer plus filter rules. | `moxxy serve` (auto-starts the listener) |
174
+
175
+ ## Services
170
176
 
171
- ## Services
177
+ Two ways to keep moxxy online 24/7.
172
178
 
173
- Two ways to keep moxxy online 24/7:
179
+ Per-channel units, one process each so failures stay independent:
174
180
 
175
181
  ```sh
176
- # Per-channel units (one process each, independent crashes)
177
182
  moxxy service install telegram # launchd on macOS, systemd --user on Linux
178
183
  moxxy service logs telegram # tail the log
184
+ ```
185
+
186
+ Or one process for everything, with a shared event log:
179
187
 
180
- # Or: one process for everything, shared event log
181
- moxxy serve --background # every channel + scheduler + webhooks
182
- moxxy serve --background --except http # skip what you don't want
188
+ ```sh
189
+ moxxy serve --background # every channel plus the scheduler plus webhooks
190
+ moxxy serve --background --except http # skip what you do not want
183
191
  moxxy serve --status # is it running?
184
192
  ```
185
193
 
186
- Logs land in `~/.moxxy/services/<name>.log`; units survive reboots.
194
+ Logs land in `~/.moxxy/services/<name>.log`. The units survive reboots.
187
195
 
188
- ## Configuration
196
+ ## Configuration
189
197
 
190
198
  `moxxy.config.ts` at your project root:
191
199
 
@@ -207,31 +215,14 @@ export default defineConfig({
207
215
 
208
216
  `${vault:NAME}` placeholders resolve on session start. The vault unlocks via OS keychain (`keytar`) with a passphrase fallback (`MOXXY_VAULT_PASSPHRASE` for headless boxes).
209
217
 
210
- ## 🧩 What ships in the binary
211
-
212
- The CLI bundles a complete out-of-the-box stack:
213
-
214
- - **Providers**: Anthropic, OpenAI, ChatGPT-OAuth (via `openai-codex`).
215
- - **Loop strategies**: `tool-use` (default Claude-Code-style), `plan-execute`, `bmad`, `developer`, `deep-research`.
216
- - **Tools**: Read, Edit, Write, Bash, Grep, Glob, WebFetch, browser-session (Playwright, optional), computer-control (macOS).
217
- - **MCP**: register any Model Context Protocol server as a tool source.
218
- - **Skills**: prompt-only Markdown files; the agent can author new skills for itself.
219
- - **Memory**: long-term journal + STM selectors; TF-IDF vector recall ships built in.
220
- - **Vault**: AES-256-GCM secrets at rest, `${vault:KEY}` references in config.
221
- - **Voice in**: `@moxxy/plugin-stt-whisper` for any audio-capable channel.
222
- - **Webhooks**: signed HTTP listener + `cloudflared` / `ngrok` tunnel helper.
223
- - **Security**: opt-in capability isolation (`inproc` built-in; `worker` / `subprocess` / `wasm` drop in).
224
-
225
- For the full package map and the framework's internal architecture see the [root README](https://github.com/moxxy-ai/new_moxxy#-developer-guide).
226
-
227
- ## 📚 Docs
218
+ ## Docs
228
219
 
229
- Full docs at **[docs.moxxy.ai](https://docs.moxxy.ai)**: concepts, recipes, plugin authoring, channel guides. Marketing site: [moxxy.ai](https://moxxy.ai).
220
+ Full documentation lives at [docs.moxxy.ai](https://docs.moxxy.ai): concepts, recipes, plugin authoring, channel guides. The marketing site is at [moxxy.ai](https://moxxy.ai).
230
221
 
231
- ## 🤝 Contributing
222
+ ## Contributing
232
223
 
233
- PRs welcome. Issue tracker + author guides live in the [moxxy monorepo](https://github.com/moxxy-ai/new_moxxy).
224
+ PRs welcome. The issue tracker and author guides live in the [moxxy monorepo](https://github.com/moxxy-ai/new_moxxy).
234
225
 
235
- ## 📝 License
226
+ ## License
236
227
 
237
- TBD.
228
+ MIT. See the repository root for the full text.