codexmate 0.0.32 → 0.0.33
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 +147 -363
- package/README.zh.md +147 -371
- package/cli/agents-files.js +224 -224
- package/cli/archive-helpers.js +446 -446
- package/cli/auth-profiles.js +375 -375
- package/cli/builtin-proxy.js +1725 -1725
- package/cli/claude-proxy.js +1022 -1022
- package/cli/config-bootstrap.js +402 -402
- package/cli/config-health.js +454 -454
- package/cli/doctor-core.js +903 -903
- package/cli/import-skills-url.js +356 -356
- package/cli/local-bridge.js +551 -324
- package/cli/openai-bridge.js +1653 -1653
- package/cli/openclaw-config.js +629 -629
- package/cli/session-convert-args.js +69 -69
- package/cli/session-convert-io.js +82 -82
- package/cli/session-convert.js +150 -150
- package/cli/session-usage.concurrent.js +28 -28
- package/cli/session-usage.js +118 -118
- package/cli/session-usage.models.js +176 -176
- package/cli/skills.js +1141 -1141
- package/cli/update.js +162 -0
- package/cli/zip-commands.js +510 -510
- package/cli.js +16023 -15829
- package/lib/automation.js +404 -404
- package/lib/cli-file-utils.js +151 -151
- package/lib/cli-models-utils.js +440 -440
- package/lib/cli-network-utils.js +190 -190
- package/lib/cli-path-utils.js +85 -85
- package/lib/cli-session-utils.js +121 -121
- package/lib/cli-sessions.js +427 -426
- package/lib/cli-utils.js +155 -155
- package/lib/cli-webhook.js +126 -126
- package/lib/download-artifacts.js +92 -92
- package/lib/mcp-stdio.js +453 -453
- package/lib/task-orchestrator.js +869 -869
- package/lib/text-diff.js +303 -303
- package/lib/win-tray.js +119 -0
- package/lib/workflow-engine.js +340 -340
- package/package.json +76 -76
- package/plugins/README.md +20 -20
- package/plugins/README.zh-CN.md +20 -20
- package/plugins/prompt-templates/comment-polish/index.mjs +25 -25
- package/plugins/prompt-templates/computed.mjs +253 -253
- package/plugins/prompt-templates/index.mjs +8 -8
- package/plugins/prompt-templates/manifest.mjs +15 -15
- package/plugins/prompt-templates/methods.mjs +553 -553
- package/plugins/prompt-templates/overview.mjs +91 -91
- package/plugins/prompt-templates/ownership.mjs +19 -19
- package/plugins/prompt-templates/rule-ack/index.mjs +21 -21
- package/plugins/prompt-templates/storage.mjs +64 -64
- package/plugins/registry.mjs +16 -16
- package/web-ui/app.js +650 -647
- package/web-ui/index.html +36 -36
- package/web-ui/logic.agents-diff.mjs +386 -386
- package/web-ui/logic.claude.mjs +168 -168
- package/web-ui/logic.codex.mjs +69 -69
- package/web-ui/logic.mjs +5 -5
- package/web-ui/logic.runtime.mjs +128 -128
- package/web-ui/logic.session-convert.mjs +70 -70
- package/web-ui/logic.sessions.mjs +781 -781
- package/web-ui/modules/api.mjs +90 -90
- package/web-ui/modules/app.computed.dashboard.mjs +248 -248
- package/web-ui/modules/app.computed.index.mjs +17 -17
- package/web-ui/modules/app.computed.main-tabs.mjs +205 -205
- package/web-ui/modules/app.computed.session.mjs +735 -693
- package/web-ui/modules/app.constants.mjs +15 -15
- package/web-ui/modules/app.methods.agents.mjs +651 -651
- package/web-ui/modules/app.methods.claude-config.mjs +269 -200
- package/web-ui/modules/app.methods.codex-config.mjs +861 -861
- package/web-ui/modules/app.methods.index.mjs +94 -94
- package/web-ui/modules/app.methods.install.mjs +205 -205
- package/web-ui/modules/app.methods.navigation.mjs +774 -774
- package/web-ui/modules/app.methods.openclaw-core.mjs +814 -814
- package/web-ui/modules/app.methods.openclaw-editing.mjs +372 -372
- package/web-ui/modules/app.methods.openclaw-persist.mjs +369 -369
- package/web-ui/modules/app.methods.providers.mjs +575 -529
- package/web-ui/modules/app.methods.runtime.mjs +345 -345
- package/web-ui/modules/app.methods.session-actions.mjs +591 -591
- package/web-ui/modules/app.methods.session-browser.mjs +1012 -1012
- package/web-ui/modules/app.methods.session-timeline.mjs +479 -479
- package/web-ui/modules/app.methods.session-trash.mjs +438 -438
- package/web-ui/modules/app.methods.startup-claude.mjs +538 -537
- package/web-ui/modules/app.methods.task-orchestration.mjs +556 -556
- package/web-ui/modules/app.methods.webhook.mjs +79 -79
- package/web-ui/modules/config-mode.computed.mjs +124 -124
- package/web-ui/modules/config-template-confirm-pref.mjs +33 -33
- package/web-ui/modules/i18n.dict.mjs +3192 -3177
- package/web-ui/modules/i18n.mjs +62 -62
- package/web-ui/modules/plugins.computed.mjs +3 -3
- package/web-ui/modules/plugins.methods.mjs +3 -3
- package/web-ui/modules/plugins.storage.mjs +11 -11
- package/web-ui/modules/provider-url-display.mjs +17 -17
- package/web-ui/modules/sessions-filters-url.mjs +85 -85
- package/web-ui/modules/skills.computed.mjs +107 -107
- package/web-ui/modules/skills.methods.mjs +482 -482
- package/web-ui/partials/index/layout-footer.html +13 -13
- package/web-ui/partials/index/layout-header.html +499 -503
- package/web-ui/partials/index/modal-config-template-agents.html +185 -185
- package/web-ui/partials/index/modal-confirm-toast.html +32 -32
- package/web-ui/partials/index/modal-health-check.html +45 -45
- package/web-ui/partials/index/modal-openclaw-config.html +280 -280
- package/web-ui/partials/index/modal-skills.html +200 -200
- package/web-ui/partials/index/modals-basic.html +173 -162
- package/web-ui/partials/index/panel-config-claude.html +166 -136
- package/web-ui/partials/index/panel-config-codex.html +190 -196
- package/web-ui/partials/index/panel-config-codex.html.bak +337 -0
- package/web-ui/partials/index/panel-config-openclaw.html +83 -83
- package/web-ui/partials/index/panel-dashboard.html +186 -219
- package/web-ui/partials/index/panel-docs.html +114 -114
- package/web-ui/partials/index/panel-market.html +177 -177
- package/web-ui/partials/index/panel-orchestration.html +391 -391
- package/web-ui/partials/index/panel-plugins.html +253 -253
- package/web-ui/partials/index/panel-sessions.html +319 -313
- package/web-ui/partials/index/panel-settings.html +190 -190
- package/web-ui/partials/index/panel-trash.html +82 -82
- package/web-ui/partials/index/panel-usage.html +137 -137
- package/web-ui/res/json5.min.js +1 -1
- package/web-ui/res/vue.global.prod.js +13 -13
- package/web-ui/session-helpers.mjs +591 -591
- package/web-ui/source-bundle.cjs +233 -233
- package/web-ui/styles/base-theme.css +281 -281
- package/web-ui/styles/bridge-pool.css +197 -197
- package/web-ui/styles/controls-forms.css +433 -433
- package/web-ui/styles/dashboard.css +406 -406
- package/web-ui/styles/docs-panel.css +245 -245
- package/web-ui/styles/feedback.css +108 -108
- package/web-ui/styles/health-check-dialog.css +144 -144
- package/web-ui/styles/layout-shell.css +628 -638
- package/web-ui/styles/modals-core.css +499 -466
- package/web-ui/styles/navigation-panels.css +391 -391
- package/web-ui/styles/openclaw-structured.css +266 -266
- package/web-ui/styles/plugins-panel.css +564 -564
- package/web-ui/styles/responsive.css +392 -392
- package/web-ui/styles/sessions-list.css +683 -647
- package/web-ui/styles/sessions-preview.css +407 -407
- package/web-ui/styles/sessions-toolbar-trash.css +518 -518
- package/web-ui/styles/sessions-usage.css +588 -588
- package/web-ui/styles/settings-panel.css +349 -349
- package/web-ui/styles/skills-list.css +305 -305
- package/web-ui/styles/skills-market.css +429 -429
- package/web-ui/styles/task-orchestration.css +822 -822
- package/web-ui/styles/titles-cards.css +472 -472
- package/web-ui/styles/trash-panel.css +90 -90
- package/web-ui/styles/webhook.css +81 -81
- package/web-ui/styles.css +24 -24
- package/web-ui.html +17 -17
package/README.md
CHANGED
|
@@ -1,363 +1,147 @@
|
|
|
1
|
-
<div align="center">
|
|
2
|
-
|
|
3
|
-
<img src="site/.vitepress/public/images/logo.png" alt="Codex Mate logo" width="
|
|
4
|
-
|
|
5
|
-
# Codex Mate
|
|
6
|
-
|
|
7
|
-
**One dashboard for all your local AI coding
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
[
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
[![
|
|
16
|
-
[![
|
|
17
|
-
[![
|
|
18
|
-
|
|
19
|
-
[
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
**
|
|
59
|
-
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
**
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
-
|
|
90
|
-
-
|
|
91
|
-
|
|
92
|
-
**
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
end
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
CFG --> CODEX
|
|
149
|
-
CFG --> CLAUDE
|
|
150
|
-
CFG --> OPENCLAW
|
|
151
|
-
SKL --> SKILLS
|
|
152
|
-
SESS --> STATE
|
|
153
|
-
```
|
|
154
|
-
|
|
155
|
-
### Capability → Local target → Outcome
|
|
156
|
-
|
|
157
|
-
| Capability | Local target | What you get |
|
|
158
|
-
| --- | --- | --- |
|
|
159
|
-
| Config management (Codex / Claude / OpenClaw) | `~/.codex/*`, `~/.claude/settings.json`, `~/.claude/CLAUDE.md`, `~/.openclaw/*` | Faster provider/model switching, multi-profile management, safer writes with backups |
|
|
160
|
-
| Sessions & Usage | sessions / usage aggregates / trash | Quickly locate sessions, filter/export, batch cleanup, and view trends |
|
|
161
|
-
| Skills market | `~/.{codex,claude,agents}/skills` | Local install/import/export (ZIP), cross-app reuse |
|
|
162
|
-
| Plugins (Prompt templates) | Browser storage | Reusable prompt templates with variables and one-click copy |
|
|
163
|
-
| MCP (stdio) | local API + file operations | Integrate with external tools under controllable permissions (read-only by default) |
|
|
164
|
-
|
|
165
|
-
## Quick Start
|
|
166
|
-
|
|
167
|
-
### Install from npm
|
|
168
|
-
|
|
169
|
-
```bash
|
|
170
|
-
npm install -g codexmate
|
|
171
|
-
codexmate setup
|
|
172
|
-
codexmate status
|
|
173
|
-
codexmate run
|
|
174
|
-
```
|
|
175
|
-
|
|
176
|
-
Default listen address is `0.0.0.0:3737` for LAN access, and browser auto-open is enabled by default.
|
|
177
|
-
|
|
178
|
-
> Safety note: the unauthenticated management UI is exposed to your current LAN by default. Use trusted networks only; for local-only access, set `CODEXMATE_HOST=127.0.0.1` or pass `--host 127.0.0.1`.
|
|
179
|
-
|
|
180
|
-
### Install via curl (standalone)
|
|
181
|
-
|
|
182
|
-
No npm required. Downloads a self-contained tarball with `node_modules` bundled:
|
|
183
|
-
|
|
184
|
-
```bash
|
|
185
|
-
curl -fsSL https://raw.githubusercontent.com/SakuraByteCore/codexmate/main/scripts/install.sh | bash
|
|
186
|
-
```
|
|
187
|
-
|
|
188
|
-
Installs to `~/.codexmate`, symlinks to `~/.local/bin/codexmate`, and auto-adds PATH.
|
|
189
|
-
|
|
190
|
-
| Variable | Default | Description |
|
|
191
|
-
| --- | --- | --- |
|
|
192
|
-
| `CODEXMATE_INSTALL_DIR` | `~/.codexmate` | Installation directory |
|
|
193
|
-
| `CODEXMATE_BIN_DIR` | `~/.local/bin` | Symlink directory |
|
|
194
|
-
|
|
195
|
-
### Install Codex CLI / Claude Code CLI (optional)
|
|
196
|
-
|
|
197
|
-
Codex Mate can pass through to the official CLIs (e.g. `codexmate codex ...`). Install them first:
|
|
198
|
-
|
|
199
|
-
```bash
|
|
200
|
-
# Codex CLI (default)
|
|
201
|
-
npm install -g @openai/codex
|
|
202
|
-
|
|
203
|
-
# Codex CLI on Termux (Android)
|
|
204
|
-
npm install -g @mmmbuto/codex-cli-termux@latest
|
|
205
|
-
|
|
206
|
-
# Claude Code
|
|
207
|
-
npm install -g @anthropic-ai/claude-code
|
|
208
|
-
|
|
209
|
-
# Gemini CLI
|
|
210
|
-
npm install -g @google/gemini-cli
|
|
211
|
-
|
|
212
|
-
# CodeBuddy Code
|
|
213
|
-
npm install -g @tencent-ai/codebuddy-code
|
|
214
|
-
```
|
|
215
|
-
|
|
216
|
-
### Run from source
|
|
217
|
-
|
|
218
|
-
```bash
|
|
219
|
-
git clone https://github.com/SakuraByteCore/codexmate.git
|
|
220
|
-
cd codexmate
|
|
221
|
-
npm install
|
|
222
|
-
npm start run
|
|
223
|
-
```
|
|
224
|
-
|
|
225
|
-
### Tests / CI (service only)
|
|
226
|
-
|
|
227
|
-
```bash
|
|
228
|
-
npm start run --no-browser
|
|
229
|
-
```
|
|
230
|
-
|
|
231
|
-
> Convention: automated tests validate service and API behavior only, without opening browser pages.
|
|
232
|
-
|
|
233
|
-
### Developer helper scripts
|
|
234
|
-
|
|
235
|
-
```bash
|
|
236
|
-
npm run reset
|
|
237
|
-
npm run reset 79
|
|
238
|
-
```
|
|
239
|
-
|
|
240
|
-
- `npm run reset`: reset to default `origin/main`
|
|
241
|
-
- `npm run reset 79`: sync directly to the latest head snapshot of PR `#79`
|
|
242
|
-
- The script also handles local branch switching, workspace cleanup, untracked file cleanup, and final state validation
|
|
243
|
-
|
|
244
|
-
## Command Reference
|
|
245
|
-
|
|
246
|
-
| Command | Description |
|
|
247
|
-
| --- | --- |
|
|
248
|
-
| `codexmate status` | Show current config status |
|
|
249
|
-
| `codexmate setup` | Interactive setup |
|
|
250
|
-
| `codexmate list` / `codexmate models` | List providers / models |
|
|
251
|
-
| `codexmate switch <provider>` / `codexmate use <model>` | Switch provider / model |
|
|
252
|
-
| `codexmate add <name> <URL> [API_KEY] [--bridge openai]` | Add provider; `--bridge openai` creates a local Codex Responses-compatible bridge for OpenAI-style upstreams |
|
|
253
|
-
| `codexmate delete <name>` | Delete provider |
|
|
254
|
-
| `codexmate claude <BaseURL> <API_KEY> [model]` | Write Claude Code config |
|
|
255
|
-
| `codexmate auth <list\|import\|switch\|delete\|status>` | Auth profile management |
|
|
256
|
-
| `codexmate workflow <list\|get\|validate\|run\|runs>` | MCP workflow management |
|
|
257
|
-
| `codexmate codex [args...] [--follow-up <text> repeatable]` | Codex CLI passthrough entrypoint (auto-adds `--yolo`, supports queued follow-up appends) |
|
|
258
|
-
| `codexmate qwen [args...]` | Qwen CLI passthrough entrypoint |
|
|
259
|
-
| `codexmate run [--host <HOST>] [--no-browser]` | Start Web UI |
|
|
260
|
-
| `codexmate mcp serve [--read-only\|--allow-write]` | Start MCP stdio server |
|
|
261
|
-
| `codexmate export-session --source <codex\|claude\|gemini\|codebuddy> ...` | Export session to Markdown |
|
|
262
|
-
| `codexmate zip <path> [--max:0-9]` / `codexmate unzip <zip> [out]` | Zip / unzip |
|
|
263
|
-
| `codexmate unzip-ext <zip-dir> [out] [--ext:suffix[,suffix...]] [--no-recursive]` | Extract files with target suffixes from ZIP files in a directory (default `.json`, recursive by default) |
|
|
264
|
-
|
|
265
|
-
### Codex Follow-up Append (Optional)
|
|
266
|
-
|
|
267
|
-
```bash
|
|
268
|
-
codexmate codex --follow-up "scan repository first" --follow-up "then fix failing tests"
|
|
269
|
-
codexmate codex --model gpt-5.3-codex --follow-up "step1" --follow-up "step2"
|
|
270
|
-
```
|
|
271
|
-
|
|
272
|
-
> Note: both `--follow-up` and `--queued-follow-up` are accepted and repeatable.
|
|
273
|
-
|
|
274
|
-
## Web UI
|
|
275
|
-
|
|
276
|
-
### Codex Mode
|
|
277
|
-
- Provider/model switching
|
|
278
|
-
- Model list management
|
|
279
|
-
- OpenAI bridge providers for Codex Responses API conversion to OpenAI-compatible upstreams
|
|
280
|
-
- `~/.codex/AGENTS.md` editing
|
|
281
|
-
|
|
282
|
-
### Claude Code Mode
|
|
283
|
-
- Multi-profile management
|
|
284
|
-
- Default write to `~/.claude/settings.json`
|
|
285
|
-
- `~/.claude/CLAUDE.md` editing
|
|
286
|
-
- Shareable import command copy
|
|
287
|
-
|
|
288
|
-
### OpenClaw Mode
|
|
289
|
-
- JSON5 multi-profile management
|
|
290
|
-
- Apply to `~/.openclaw/openclaw.json`
|
|
291
|
-
- Manage `~/.openclaw/workspace/AGENTS.md`
|
|
292
|
-
|
|
293
|
-
### Plugins Mode (Prompt Templates)
|
|
294
|
-
- Entry: switch to **Plugins** → **Prompt Templates**
|
|
295
|
-
- Manage custom templates (JSON import/export)
|
|
296
|
-
- Variables: in **Manage**, you can “Add variable” (inserts `{{var}}`) and fill variable values in the Variables panel
|
|
297
|
-
- Generate & copy: after filling variables, copy the final rendered prompt from **Preview**
|
|
298
|
-
- Built-in template: ships a single read-only template for light code-comment polishing
|
|
299
|
-
|
|
300
|
-
### Sessions Mode
|
|
301
|
-
- Unified Codex + Claude sessions
|
|
302
|
-
- Browser / Usage subview switching
|
|
303
|
-
- Local pin/unpin with persistent storage and pinned-first ordering
|
|
304
|
-
- Search, filter, export, delete, batch cleanup
|
|
305
|
-
- Usage view includes 7d / 30d session trends, message trends, source share, and top paths
|
|
306
|
-
|
|
307
|
-
### Skills Market Tab
|
|
308
|
-
- Switch the skills install target between `Codex` and `Claude Code`
|
|
309
|
-
- Show the current local skills root, installed items, and importable items
|
|
310
|
-
- Scan importable sources under `Codex` / `Claude Code` / `Agents`
|
|
311
|
-
- Support cross-app import, ZIP import/export, and batch delete
|
|
312
|
-
|
|
313
|
-
## MCP
|
|
314
|
-
|
|
315
|
-
> Transport: `stdio`
|
|
316
|
-
|
|
317
|
-
- Default: read-only tools
|
|
318
|
-
- Enable writes: `--allow-write` or `CODEXMATE_MCP_ALLOW_WRITE=1`
|
|
319
|
-
- Domains: `tools`, `resources`, `prompts`
|
|
320
|
-
|
|
321
|
-
Examples:
|
|
322
|
-
|
|
323
|
-
```bash
|
|
324
|
-
codexmate mcp serve --read-only
|
|
325
|
-
codexmate mcp serve --allow-write
|
|
326
|
-
```
|
|
327
|
-
|
|
328
|
-
## Config Files
|
|
329
|
-
|
|
330
|
-
- `~/.codex/config.toml`
|
|
331
|
-
- `~/.codex/auth.json`
|
|
332
|
-
- `~/.codex/models.json`
|
|
333
|
-
- `~/.codex/provider-current-models.json`
|
|
334
|
-
- `~/.codex/codexmate-openai-bridge.json`
|
|
335
|
-
- `~/.claude/settings.json`
|
|
336
|
-
- `~/.claude/CLAUDE.md`
|
|
337
|
-
- `~/.openclaw/openclaw.json`
|
|
338
|
-
- `~/.openclaw/workspace/AGENTS.md`
|
|
339
|
-
|
|
340
|
-
## Environment Variables
|
|
341
|
-
|
|
342
|
-
| Variable | Default | Description |
|
|
343
|
-
| --- | --- | --- |
|
|
344
|
-
| `CODEXMATE_PORT` | `3737` | Web server port |
|
|
345
|
-
| `CODEXMATE_HOST` | `0.0.0.0` | Web listen host (set `127.0.0.1` for local-only access) |
|
|
346
|
-
| `CODEXMATE_NO_BROWSER` | unset | Set `1` to disable browser auto-open |
|
|
347
|
-
| `CODEXMATE_MCP_ALLOW_WRITE` | unset | Set `1` to allow MCP write tools by default |
|
|
348
|
-
| `CODEXMATE_FORCE_RESET_EXISTING_CONFIG` | `0` | Set `1` to force bootstrap reset of existing config |
|
|
349
|
-
|
|
350
|
-
## Tech Stack
|
|
351
|
-
|
|
352
|
-
- Node.js
|
|
353
|
-
- Vue.js 3 (Web UI)
|
|
354
|
-
- Native HTTP server
|
|
355
|
-
- `@iarna/toml`, `json5`
|
|
356
|
-
|
|
357
|
-
## Contributing
|
|
358
|
-
|
|
359
|
-
Issues and pull requests are accepted.
|
|
360
|
-
|
|
361
|
-
## License
|
|
362
|
-
|
|
363
|
-
Apache-2.0
|
|
1
|
+
<div align="center">
|
|
2
|
+
|
|
3
|
+
<img src="site/.vitepress/public/images/logo.png" alt="Codex Mate logo" width="160" />
|
|
4
|
+
|
|
5
|
+
# Codex Mate
|
|
6
|
+
|
|
7
|
+
**One dashboard for all your local AI coding agents. Switch providers, manage sessions, and orchestrate tasks across Codex, Claude Code, and OpenClaw. Zero cloud, local-first control plane.**
|
|
8
|
+
|
|
9
|
+
<p>
|
|
10
|
+
<a href="https://sakurabytecore.github.io/codexmate/">[Documentation]</a>
|
|
11
|
+
<a href="#quick-start">[Quick Start]</a>
|
|
12
|
+
<a href="README.zh.md">[简体中文]</a>
|
|
13
|
+
</p>
|
|
14
|
+
|
|
15
|
+
[](https://www.npmjs.com/package/codexmate)
|
|
16
|
+
[](https://github.com/SakuraByteCore/codexmate/actions/workflows/release.yml)
|
|
17
|
+
[](https://www.npmjs.com/package/codexmate)
|
|
18
|
+
[](#quick-start)
|
|
19
|
+
[](https://nodejs.org/)
|
|
20
|
+
[](LICENSE)
|
|
21
|
+
[](https://github.com/SakuraByteCore/codexmate/stargazers)
|
|
22
|
+
[](https://github.com/SakuraByteCore/codexmate/issues)
|
|
23
|
+
|
|
24
|
+
<br />
|
|
25
|
+
|
|
26
|
+
<img src="site/.vitepress/public/images/readme-hero.png" alt="Codex Mate screenshot" width="100%" />
|
|
27
|
+
|
|
28
|
+
</div>
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
> [!TIP]
|
|
33
|
+
> **Local First**: All configurations and sessions are stored in your home directory. No telemetry, no cloud accounts required.
|
|
34
|
+
|
|
35
|
+
> [!IMPORTANT]
|
|
36
|
+
> This project is currently in early stage. We are seeking developers to help build the local agent ecosystem!
|
|
37
|
+
|
|
38
|
+
## What is Codex Mate?
|
|
39
|
+
|
|
40
|
+
Have you ever felt overwhelmed by managing multiple local AI agents? Each has its own config format, session storage, and skills directory.
|
|
41
|
+
|
|
42
|
+
**Codex Mate** offers a unified control plane to bring order to the chaos. It's a local-first CLI + Web UI designed to manage [Codex](https://github.com/openai/codex)、[Claude Code](https://github.com/anthropic-ai/claude-code) and [OpenClaw](https://github.com/moeru-ai/openclaw) seamlessly.
|
|
43
|
+
|
|
44
|
+
### What's So Special?
|
|
45
|
+
|
|
46
|
+
Unlike simple wrappers, Codex Mate acts as a **Local Agent Bridge**:
|
|
47
|
+
- **Unified Session Browser**: Search and export sessions across all tools in one place.
|
|
48
|
+
- **OpenAI-Compatible Bridge**: Use Codex with any OpenAI-compatible UI by normalizing the Responses API.
|
|
49
|
+
- **Skills Marketplace**: A local-first market to share and import skills between different agent apps.
|
|
50
|
+
- **Task Orchestrator**: Plan and execute complex tasks with dependency tracking.
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## Current Progress
|
|
55
|
+
|
|
56
|
+
| Feature | Status | Description |
|
|
57
|
+
| --- | --- | --- |
|
|
58
|
+
| **Provider Management** | ✅ | Switch providers/models for Codex, Claude, and OpenClaw |
|
|
59
|
+
| **Live Agent Sync** | ✅ | Real-time monitoring of Codex/Claude config & status |
|
|
60
|
+
| **Session Browser** | ✅ | List, filter, and export sessions (Codex/Claude/Gemini) |
|
|
61
|
+
| **Usage Analytics** | ✅ | Visualize message trends and top projects |
|
|
62
|
+
| **Local Skills Market** | ✅ | Cross-app import/export of agent skills |
|
|
63
|
+
| **Task Queue** | ✅ | DAG-based task execution and logs |
|
|
64
|
+
| **OpenAI Bridge** | ✅ | Convert Codex Responses API to standard OpenAI format |
|
|
65
|
+
| **Prompt Templates** | ✅ | Reusable prompt plugins with variables |
|
|
66
|
+
| **MCP Integration** | ✅ | Expose local tools and resources via MCP stdio |
|
|
67
|
+
| **Auto Update** | ✅ | Quick update CLI via `codexmate update` |
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## Quick Start
|
|
72
|
+
|
|
73
|
+
### Install via npm
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
npm install -g codexmate
|
|
77
|
+
codexmate setup
|
|
78
|
+
codexmate run
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### Install via curl (Standalone)
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
curl -fsSL https://raw.githubusercontent.com/SakuraByteCore/codexmate/main/scripts/install.sh | bash
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### Supported Agents
|
|
88
|
+
|
|
89
|
+
- **Codex**: `npm install -g @openai/codex`
|
|
90
|
+
- **Claude Code**: `npm install -g @anthropic-ai/claude-code`
|
|
91
|
+
- **Gemini CLI**: `npm install -g @google/gemini-cli`
|
|
92
|
+
- **CodeBuddy**: `npm install -g @tencent-ai/codebuddy-code`
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
## Architecture
|
|
97
|
+
|
|
98
|
+
```mermaid
|
|
99
|
+
%%{ init: { 'flowchart': { 'curve': 'catmullRom' } } }%%
|
|
100
|
+
flowchart TD
|
|
101
|
+
User([User])
|
|
102
|
+
CLI[CLI]
|
|
103
|
+
WebUI[Web UI]
|
|
104
|
+
MCP[MCP Server]
|
|
105
|
+
|
|
106
|
+
subgraph Mate [Codex Mate Core]
|
|
107
|
+
API[HTTP API]
|
|
108
|
+
Config[Config Engine]
|
|
109
|
+
Session[Session Manager]
|
|
110
|
+
Skills[Skills Market]
|
|
111
|
+
Tasks[Task Runner]
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
subgraph Local [Local Filesystem]
|
|
115
|
+
CodexDir[~/.codex]
|
|
116
|
+
ClaudeDir[~/.claude]
|
|
117
|
+
ClawDir[~/.openclaw]
|
|
118
|
+
State[Sessions/Usage/Trash]
|
|
119
|
+
end
|
|
120
|
+
|
|
121
|
+
User --> CLI & WebUI & MCP
|
|
122
|
+
CLI & WebUI & MCP --> API
|
|
123
|
+
|
|
124
|
+
API --> Config & Session & Skills & Tasks
|
|
125
|
+
|
|
126
|
+
Config --> CodexDir & ClaudeDir & ClawDir
|
|
127
|
+
Session --> State
|
|
128
|
+
Skills --> Local
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
## Special Thanks
|
|
134
|
+
|
|
135
|
+
Special thanks to all contributors for their contributions to Codex Mate ❤️
|
|
136
|
+
|
|
137
|
+
<a href="https://github.com/SakuraByteCore/codexmate/graphs/contributors">
|
|
138
|
+
<img src="https://contrib.rocks/image?repo=SakuraByteCore/codexmate" />
|
|
139
|
+
</a>
|
|
140
|
+
|
|
141
|
+
## Star History
|
|
142
|
+
|
|
143
|
+
[](https://star-history.com/#SakuraByteCore/codexmate&Date)
|
|
144
|
+
|
|
145
|
+
## License
|
|
146
|
+
|
|
147
|
+
Apache-2.0
|