@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 +79 -88
- package/dist/bin.js +52780 -47658
- package/dist/bin.js.map +1 -1
- package/dist/read-handler.js +1 -0
- package/dist/read-handler.js.map +1 -1
- package/dist/sidecar.js +276 -0
- package/dist/sidecar.js.map +1 -0
- package/dist/skills/create-workflow.md +71 -0
- package/package.json +23 -27
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/
|
|
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
|
-
|
|
11
|
-
|
|
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="
|
|
30
|
+
<a href="#installation">Install</a>
|
|
31
31
|
·
|
|
32
|
-
<a href="
|
|
32
|
+
<a href="#quickstart">Quickstart</a>
|
|
33
33
|
·
|
|
34
34
|
<a href="https://moxxy.ai">Docs</a>
|
|
35
35
|
·
|
|
36
|
-
<a href="
|
|
36
|
+
<a href="#commands">Commands</a>
|
|
37
37
|
·
|
|
38
|
-
<a href="
|
|
38
|
+
<a href="#channels">Channels</a>
|
|
39
39
|
·
|
|
40
|
-
<a href="
|
|
40
|
+
<a href="#services">Services</a>
|
|
41
41
|
</p>
|
|
42
42
|
|
|
43
43
|
---
|
|
44
44
|
|
|
45
|
-
##
|
|
45
|
+
## What this package is
|
|
46
46
|
|
|
47
|
-
`@moxxy/cli` is the published `moxxy` binary. It bundles the framework runtime, every built-in mode
|
|
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
|
-
|
|
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
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
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
|
-
##
|
|
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
|
-
|
|
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
|
-
##
|
|
80
|
+
## Quickstart
|
|
77
81
|
|
|
78
82
|
```sh
|
|
79
|
-
moxxy init # interactive: choose provider, paste API key (
|
|
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
|
-
|
|
99
|
+
`moxxy --help` lists every command. `moxxy <command> --help` shows per-command details.
|
|
96
100
|
|
|
97
|
-
##
|
|
101
|
+
## Commands
|
|
98
102
|
|
|
99
|
-
The
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
121
|
-
| `moxxy serve` | Start every channel
|
|
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`
|
|
128
|
-
| `moxxy skills list
|
|
129
|
-
| `moxxy plugins list
|
|
130
|
-
| `moxxy mcp list
|
|
131
|
-
| `moxxy perms list
|
|
132
|
-
| `moxxy memory journal`
|
|
133
|
-
| `moxxy schedule add
|
|
134
|
-
| `moxxy security audit
|
|
135
|
-
| `moxxy service install
|
|
136
|
-
| `moxxy self-update` | Update bundled plugins
|
|
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
|
|
146
|
+
| `--prompt`, `-p "…"` | One-shot input. |
|
|
143
147
|
| `--model <id>` | Override the default model for this invocation. |
|
|
144
|
-
| `--output-format <fmt>` | `text
|
|
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
|
|
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 (
|
|
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`
|
|
161
|
+
| `MOXXY_FIXTURES` | `record` or `replay`. Provider fixture mode used by tests. |
|
|
158
162
|
|
|
159
|
-
##
|
|
163
|
+
## Channels
|
|
160
164
|
|
|
161
|
-
Run your agent through
|
|
165
|
+
Run your agent through whichever surface fits the task.
|
|
162
166
|
|
|
163
167
|
| Channel | What it does | Command |
|
|
164
168
|
|---|---|---|
|
|
165
|
-
|
|
|
166
|
-
|
|
|
167
|
-
|
|
|
168
|
-
|
|
|
169
|
-
|
|
|
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
|
-
|
|
177
|
+
Two ways to keep moxxy online 24/7.
|
|
172
178
|
|
|
173
|
-
|
|
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
|
-
|
|
181
|
-
moxxy serve --background # every channel
|
|
182
|
-
moxxy serve --background --except http # skip what you
|
|
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
|
|
194
|
+
Logs land in `~/.moxxy/services/<name>.log`. The units survive reboots.
|
|
187
195
|
|
|
188
|
-
##
|
|
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
|
-
##
|
|
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
|
|
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
|
-
##
|
|
222
|
+
## Contributing
|
|
232
223
|
|
|
233
|
-
PRs welcome.
|
|
224
|
+
PRs welcome. The issue tracker and author guides live in the [moxxy monorepo](https://github.com/moxxy-ai/new_moxxy).
|
|
234
225
|
|
|
235
|
-
##
|
|
226
|
+
## License
|
|
236
227
|
|
|
237
|
-
|
|
228
|
+
MIT. See the repository root for the full text.
|