codexmate 0.0.14 → 0.0.15

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.en.md CHANGED
@@ -1,429 +1,213 @@
1
- # Codex Mate
1
+ <div align="center">
2
2
 
3
- <div align="center">
3
+ # Codex Mate
4
4
 
5
- <img src="res/logo.png" alt="Codex Mate logo" width="110">
5
+ **Local configuration and session manager for Codex / Claude Code / OpenClaw**
6
6
 
7
- [![Build](https://img.shields.io/github/actions/workflow/status/ymkiux/codexmate/release.yml?label=build)](https://github.com/ymkiux/codexmate/actions/workflows/release.yml)
7
+ > Current version: `v0.0.15`
8
+
9
+ [![Build](https://img.shields.io/github/actions/workflow/status/SakuraByteCore/codexmate/release.yml?label=build)](https://github.com/SakuraByteCore/codexmate/actions/workflows/release.yml)
8
10
  [![Version](https://img.shields.io/npm/v/codexmate?label=version&registry_uri=https%3A%2F%2Fregistry.npmjs.org)](https://www.npmjs.com/package/codexmate)
9
11
  [![Downloads](https://img.shields.io/npm/dt/codexmate?label=downloads)](https://www.npmjs.com/package/codexmate)
10
- [![Status](https://img.shields.io/badge/status-alpha-orange)](https://github.com/ymkiux/codexmate)
11
- [![Maintain](https://img.shields.io/github/commit-activity/m/ymkiux/codexmate?label=maintain%2Fmonth)](https://github.com/ymkiux/codexmate/commits)
12
12
  [![License](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](LICENSE)
13
13
  [![Node](https://img.shields.io/badge/node-%3E%3D14.0.0-green.svg)](https://nodejs.org)
14
14
 
15
- **A lightweight AI configuration assistant: quickly switch Codex providers/models and Claude Code configs, with a unified session browser**
15
+ [Quick Start](#quick-start) · [Commands](#command-reference) · [Web UI](#web-ui) · [MCP](#mcp) · [中文](README.md)
16
16
 
17
17
  </div>
18
18
 
19
19
  ---
20
20
 
21
- <p align="center">English · <a href="README.md">中文版</a></p>
22
-
23
- ![Codex Mate Web UI](res/screenshot.png)
24
-
25
- ## Overview
26
-
27
- Codex Mate helps you switch Codex/Claude Code providers and models in seconds, and manage local sessions in one place.
28
-
29
- ## 60-Second Quick Start (One-Line Source Install)
30
-
31
- Requirements: `Node.js >= 14`, `Git`
32
-
33
- ```bash
34
- git clone https://github.com/ymkiux/codexmate.git && cd codexmate && npm install && npm link && codexmate run
35
- ```
36
-
37
- Open `http://localhost:3737` in your browser.
38
-
39
- If this is your first time, run:
40
-
41
- ```bash
42
- codexmate setup
43
- codexmate status
44
- ```
45
-
46
- If you only want a temporary trial, run:
47
-
48
- ```bash
49
- npx codexmate@latest run
50
- ```
51
-
52
- ## Choose a Common Workflow
21
+ ## What Is This?
53
22
 
54
- 1. Switch Codex provider/model quickly
55
-
56
- ```bash
57
- codexmate switch <provider>
58
- codexmate use <model>
59
- ```
60
-
61
- 2. Apply Claude Code config in one line
62
-
63
- ```bash
64
- codexmate claude <BaseURL> <API_KEY> <model>
65
- ```
23
+ Codex Mate is a local-first CLI + Web UI for unified management of:
66
24
 
67
- 3. Export a local session to Markdown
25
+ - Codex provider/model switching and config writes
26
+ - Claude Code profiles (writes to `~/.claude/settings.json`)
27
+ - OpenClaw JSON5 profiles and workspace `AGENTS.md`
28
+ - Local Codex/Claude sessions (list/filter/export/delete)
29
+ - `codexmate qwen` passthrough command
68
30
 
69
- ```bash
70
- codexmate export-session --source codex --session-id <ID>
71
- ```
31
+ It works on local files directly and does not require cloud hosting.
72
32
 
73
- ## Core Commands (Most Used)
33
+ ## Why Codex Mate?
74
34
 
75
- | Goal | Command |
76
- | --- | --- |
77
- | Check current status | `codexmate status` |
78
- | Start Web UI | `codexmate run` |
79
- | Interactive setup | `codexmate setup` |
80
- | List providers/models | `codexmate list` / `codexmate models` |
81
- | Switch provider/model | `codexmate switch <provider>` / `codexmate use <model>` |
82
- | Write Claude config | `codexmate claude <BaseURL> <API_KEY> [model]` |
83
- | Export session | `codexmate export-session --source <codex|claude> ...` |
84
-
85
- ## What You Get
86
-
87
- - One-command provider/model switching
88
- - Local config control with backups
89
- - Lightweight Web UI instead of heavy clients
90
- - Unified session browser (view/export/resume when available)
91
- - Session management: list/filter/export/delete local sessions; keyword search supports Codex and Claude
92
- - New in 0.0.10: Claude sessions are searchable by keywords (e.g., `claude code`, `claude-code`, numeric tokens)
93
- - New in 0.0.14: Skills Manager modal adds overview counters, refined filters, and slimmer list scrollbars
94
-
95
- ## Feature Overview
96
-
97
- | Module | Problem | Key Capabilities |
35
+ | Dimension | Codex Mate | Manual File Editing |
98
36
  | --- | --- | --- |
99
- | Codex Config | Switching providers/models is painful | Provider/model switching, model management, CLI + Web entry points, template-confirmed writes |
100
- | Skills Manager | Local custom skills are hard to inspect and clean up | Skills modal with overview counters, keyword/status filters, bulk delete, and cross-app import scan |
101
- | Claude Code Config | Multiple profiles and inconsistent write paths | Profile management, default write to `~/.claude/settings.json` |
102
- | OpenClaw Config | OpenClaw configs are scattered | JSON5 profiles, apply to `~/.openclaw/openclaw.json`, AGENTS workspace management |
103
- | Session Browser | Local sessions are hard to track | List/filter sessions, keyword search (Codex + Claude), export to Markdown, copy resume command (when available), delete and batch cleanup |
104
- | Utilities | Compression/extraction requires extra tools | 7-Zip preferred, JS fallback |
105
-
106
- ## Why Codex Mate
107
-
108
- - Focused on three jobs: Codex provider/model switching + Claude Code config apply + OpenClaw config apply
109
- - Local-first: configs and API keys are written to local files, not the cloud
110
- - Lightweight: CLI + Web, no desktop app required
111
- - Reversible: auto-backup before first takeover
112
-
113
- ## Scope and Boundaries
114
-
115
- - Only configuration management for Codex, Claude Code, and OpenClaw, not a full all-in-one tool suite
116
- - No built-in proxy/relay/billing dashboard/cloud sync (kept lightweight)
117
- - Web UI runs only when you start it (`codexmate run`)
118
-
119
- ## Alternatives
120
-
121
- - cc-switch: https://github.com/farion1231/cc-switch
122
-
123
- ## Install
124
-
125
- ### From Source (Recommended, One Line)
126
-
127
- ```bash
128
- git clone https://github.com/ymkiux/codexmate.git && cd codexmate && npm install && npm link
129
- ```
130
-
131
- Then verify:
37
+ | Multi-tool management | Codex + Claude Code + OpenClaw in one entry | Different files and folders per tool |
38
+ | Operation mode | CLI + local Web UI | Manual TOML/JSON/JSON5 edits |
39
+ | Session handling | Browse/export/batch cleanup | Manual file location and processing |
40
+ | Rollback readiness | Backup before first takeover | Easy to overwrite by mistake |
41
+ | Automation integration | MCP stdio (read-only by default) | Requires custom scripting |
42
+
43
+ ## Core Features
44
+
45
+ **Configuration**
46
+ - Provider/model switching (`switch`, `use`)
47
+ - Codex `config.toml` template confirmation before write
48
+ - Claude Code profile management and apply
49
+ - OpenClaw JSON5 profile management
50
+
51
+ **Session Management**
52
+ - Unified Codex + Claude session list
53
+ - Keyword/source/cwd filters
54
+ - Markdown export
55
+ - Session-level and message-level delete (supports batch)
56
+
57
+ **Engineering Utilities**
58
+ - MCP stdio domains (`tools`, `resources`, `prompts`)
59
+ - Built-in proxy controls (`proxy`)
60
+ - Auth profile management (`auth`)
61
+ - `codexmate qwen` compatibility entrypoint (passthrough with `--yolo`)
62
+ - Zip/unzip utilities
63
+
64
+ ## Architecture
65
+
66
+ ```mermaid
67
+ flowchart LR
68
+ A[CLI: codexmate] --> B[Local config files]
69
+ A --> C[Local Web UI]
70
+ C --> D[Built-in HTTP API]
71
+ D --> B
72
+ D --> E[Session indexing/export]
73
+ A --> F[MCP stdio server]
74
+
75
+ subgraph Local Files
76
+ B1[~/.codex/config.toml]
77
+ B2[~/.claude/settings.json]
78
+ B3[~/.openclaw/openclaw.json]
79
+ B4[sessions/*.jsonl]
80
+ end
81
+
82
+ B --> B1
83
+ B --> B2
84
+ B --> B3
85
+ E --> B4
86
+ ```
87
+
88
+ ## Quick Start
89
+
90
+ ### Install from npm
132
91
 
133
92
  ```bash
93
+ npm install -g codexmate
94
+ codexmate setup
134
95
  codexmate status
135
96
  codexmate run
136
97
  ```
137
98
 
138
- ### Run with npx (No Install)
99
+ Default listen address is `127.0.0.1:3737`, and browser auto-open is enabled by default.
139
100
 
140
- ```bash
141
- npx codexmate@latest status
142
- npx codexmate@latest run
143
- ```
144
-
145
- ### Global (npm)
101
+ ### Run from source
146
102
 
147
103
  ```bash
148
- npm install -g codexmate
104
+ git clone https://github.com/SakuraByteCore/codexmate.git
105
+ cd codexmate
106
+ npm install
107
+ npm link
108
+ codexmate run
149
109
  ```
150
110
 
151
- Package name on npm: `codexmate`. If you want the latest repo version each time, install from GitHub:
111
+ ### Tests / CI (service only)
152
112
 
153
113
  ```bash
154
- npm install -g ymkiux/codexmate
114
+ codexmate run --no-browser
155
115
  ```
156
116
 
157
- ### Requirements
117
+ > Convention: automated tests validate service and API behavior only, without opening browser pages.
158
118
 
159
- - Node.js >= 14
160
- - Windows / macOS / Linux
161
-
162
- ## CLI Cheat Sheet
119
+ ## Command Reference
163
120
 
164
121
  | Command | Description |
165
122
  | --- | --- |
166
- | `codexmate` | Show help and available commands |
167
- | `codexmate setup` | Interactive configuration wizard |
168
- | `codexmate status` | Show current status |
169
- | `codexmate list` | List all providers |
170
- | `codexmate switch <provider>` | Switch provider |
171
- | `codexmate use <model>` | Switch model |
172
- | `codexmate add <name> <URL> [API key]` | Add a provider |
173
- | `codexmate delete <provider>` | Delete a provider |
174
- | `codexmate claude <BaseURL> <API key> [model]` | Write Claude Code config to `~/.claude/settings.json` |
175
- | `codexmate models` | List all models |
176
- | `codexmate add-model <model>` | Add a model |
177
- | `codexmate delete-model <model>` | Delete a model |
178
- | `codexmate run` | Start the Web UI |
179
- | `codexmate mcp [serve] [--transport stdio] [--allow-write\|--read-only]` | Start MCP server over stdio (default read-only) |
180
- | `codexmate export-session --source <codex|claude> (--session-id <ID>|--file <PATH>) [--output <PATH>] [--max-messages <N|all|Infinity>]` | Export a session to Markdown |
181
-
182
- ## MCP (stdio)
183
-
184
- - Transport: `stdio` only
185
- - Default mode: read-only tool set
186
- - Write tools: enable by `--allow-write` or `CODEXMATE_MCP_ALLOW_WRITE=1`
187
- - Sensitive fields in `codexmate.claude.settings.get` are returned as masked values
188
-
189
- ```bash
190
- # Read-only (recommended for external agents)
191
- codexmate mcp serve --read-only
192
-
193
- # Enable write tools explicitly
194
- codexmate mcp serve --allow-write
195
- ```
196
-
197
- Provided MCP domains:
198
-
199
- - `tools`: status/provider/model/session/auth/proxy and config operations
200
- - `resources`: status/providers/sessions snapshots
201
- - `prompts`: built-in diagnose/switch/export templates
123
+ | `codexmate status` | Show current config status |
124
+ | `codexmate setup` | Interactive setup |
125
+ | `codexmate list` / `codexmate models` | List providers / models |
126
+ | `codexmate switch <provider>` / `codexmate use <model>` | Switch provider / model |
127
+ | `codexmate add <name> <URL> [API_KEY]` | Add provider |
128
+ | `codexmate delete <name>` | Delete provider |
129
+ | `codexmate claude <BaseURL> <API_KEY> [model]` | Write Claude Code config |
130
+ | `codexmate auth <list\|import\|switch\|delete\|status>` | Auth profile management |
131
+ | `codexmate proxy <status\|set\|apply\|enable\|start\|stop>` | Built-in proxy management |
132
+ | `codexmate workflow <list\|get\|validate\|run\|runs>` | MCP workflow management |
133
+ | `codexmate qwen [args...]` | Qwen CLI passthrough entrypoint |
134
+ | `codexmate run [--host <HOST>] [--no-browser]` | Start Web UI |
135
+ | `codexmate mcp serve [--read-only\|--allow-write]` | Start MCP stdio server |
136
+ | `codexmate export-session --source <codex\|claude> ...` | Export session to Markdown |
137
+ | `codexmate zip <path> [--max:0-9]` / `codexmate unzip <zip> [out]` | Zip / unzip |
202
138
 
203
139
  ## Web UI
204
140
 
205
- Start the Web UI (auto opens browser):
206
-
207
- ```bash
208
- codexmate run
209
- ```
210
-
211
- ### Codex Config Mode
212
-
213
- - View current provider and model status
214
- - Quickly switch provider and model
215
- - Manage available model list
216
- - Edit `~/.codex/AGENTS.md` instruction file (same level as `config.toml`)
217
- - Open the Skills Manager modal for `~/.codex/skills` (overview counters, keyword/status filters, multi-select delete, cross-app import scan)
218
- - Add/delete custom providers
219
- - Supports Codex config management on Linux/Windows
220
-
221
- ### Skills Manager Modal
222
-
223
- - Shows overview counters (`total`, `with SKILL.md`, `missing SKILL.md`, `importable`) for quick audit
224
- - Supports keyword search by folder name/display name/description and status filter by `SKILL.md` presence
225
- - Supports multi-select and bulk deletion for local skills
226
- - Supports scanning unmanaged skills from other apps and importing selected items in batch
227
-
228
- ### Claude Code Config Mode (Windows / macOS / Linux)
229
-
230
- - Manage multiple Claude Code profiles
231
- - Configure API key, Base URL, and model
232
- - Default write to `env` in `~/.claude/settings.json`: `env.ANTHROPIC_API_KEY` / `env.ANTHROPIC_BASE_URL` / `env.ANTHROPIC_MODEL`
233
- - One-liner apply via CLI:
234
-
235
- ```bash
236
- codexmate claude https://api.example.com/v1 sk-ant-xxx claude-3-7-sonnet
237
- ```
141
+ ### Codex Mode
142
+ - Provider/model switching
143
+ - Model list management
144
+ - `~/.codex/AGENTS.md` editing
145
+ - `~/.codex/skills` management (filter, batch delete, cross-app import)
238
146
 
239
- - In the Web UI, each Claude configuration card now has a "Share Import Command" button that copies a one-click import command (for example: `codexmate claude <BaseURL> <API Key> <Model>`).
240
147
 
241
- ### OpenClaw Config Mode
148
+ ### Claude Code Mode
149
+ - Multi-profile management
150
+ - Default write to `~/.claude/settings.json`
151
+ - Shareable import command copy
242
152
 
243
- - Manage multiple OpenClaw JSON5 profiles
153
+ ### OpenClaw Mode
154
+ - JSON5 multi-profile management
244
155
  - Apply to `~/.openclaw/openclaw.json`
245
- - Manage `AGENTS.md` under the OpenClaw Workspace (default: `~/.openclaw/workspace/AGENTS.md`)
246
-
247
- ### Session Browser
248
-
249
- - View local Codex and Claude Code sessions in one page
250
- - Filter by source (Codex / Claude / All)
251
- - Filter by session path (cwd), auto refresh on selection
252
- - Export selected sessions to Markdown
253
- - Copy resume command when available
254
- - Delete single sessions (local jsonl records)
255
- - Batch delete multiple sessions with partial failure summary
256
- - Delete individual records or multi-select within session details (writes back to original jsonl)
257
-
258
- ### Codex Template Confirmation Mode
259
-
260
- - Codex config changes in Web UI go to a `config.toml` template editor first
261
- - Only writes to `config.toml` after you click "Confirm Apply Template"
262
- - Prevents direct one-click overwrites from the UI
263
-
264
- ## Configuration Files
265
-
266
- Config directory: `~/.codex/`
267
-
268
- - `config.toml` - Codex main config
269
- - `auth.json` - API auth info
270
- - `models.json` - Available model list
271
- - `provider-current-models.json` - Per-provider current model config
272
- - `codexmate-init.json` - First-run marker
273
- - `config.toml.codexmate-backup-*.bak` - Backup created on first takeover
274
-
275
- Claude Code config files:
276
-
277
- - `~/.claude/settings.json` - Runtime config (default write target)
278
- - `~/.claude/settings.json.codexmate-backup-*.bak` - Backup before first overwrite
279
-
280
- OpenClaw config files:
281
-
282
- - `~/.openclaw/openclaw.json` - OpenClaw config (JSON5)
283
- - `~/.openclaw/workspace/AGENTS.md` - OpenClaw workspace instructions
284
-
285
- ## First Run Initialization
286
-
287
- When you run `codexmate` for the first time and an existing `~/.codex/config.toml` is detected that is not managed by Codex Mate:
288
-
289
- - The original file is backed up as `config.toml.codexmate-backup-<timestamp>.bak`
290
- - The original `config.toml` is preserved, and a first-run marker is written
291
- - Only when `CODEXMATE_FORCE_RESET_EXISTING_CONFIG=1` is set will the default config be rebuilt
292
- - Subsequent runs will not repeat this process
293
-
294
- ## Examples
295
-
296
- ### Add a Custom API Provider
297
-
298
- ```bash
299
- codexmate add myapi https://api.example.com/v1 sk-your-api-key
300
- codexmate switch myapi
301
- ```
302
-
303
- ### Switch to a Different Model
304
-
305
- ```bash
306
- codexmate use gpt-4-turbo
307
- ```
308
-
309
- ### Export a Session (CLI)
310
-
311
- ```bash
312
- codexmate export-session --source codex --session-id 123456
313
- codexmate export-session --source claude --file "~/.claude/projects/demo/session.jsonl" --max-messages=all
314
- ```
315
-
316
- By default, exports are capped at 1000 messages. Use `--max-messages=all` (or `Infinity`) to export everything.
156
+ - Manage `~/.openclaw/workspace/AGENTS.md`
317
157
 
318
- ### Configure Claude Code (Cross-Platform)
158
+ ### Sessions Mode
159
+ - Unified Codex + Claude sessions
160
+ - Search, filter, export, delete, batch cleanup
319
161
 
320
- 1. Start the Web UI: `codexmate run`
321
- 2. Switch to "Claude Code Config" mode in the browser
322
- 3. Add a profile (example Zhipu GLM): Name=ZhipuGLM, API Key=your API key, Base URL=`https://open.bigmodel.cn/api/anthropic`, Model=`glm-4.7`
323
- 4. Click the card to apply, or use "Save & Apply to Claude Config" in the editor
324
- 5. Default write to `~/.claude/settings.json`
325
- 6. Restart Claude Code to apply
162
+ ## MCP
326
163
 
327
- ### Start the Web UI
164
+ > Transport: `stdio`
328
165
 
329
- ```bash
330
- codexmate run
331
- ```
332
-
333
- By default it binds to `127.0.0.1`. To expose on LAN, use `--host` or `CODEXMATE_HOST`:
334
-
335
- ```bash
336
- codexmate run --host 0.0.0.0
337
- ```
338
-
339
- Then open `http://localhost:3737` (or your chosen host). Note: binding to `0.0.0.0` is unsafe on untrusted networks.
340
-
341
- ## FAQ
342
-
343
- ### Q: Which operating systems are supported?
344
-
345
- A: Codex features support Windows and Linux (CLI and Web). Claude Code config applies to Windows / macOS / Linux (writes to `~/.claude/settings.json`).
346
-
347
- ### Q: Where are API keys stored?
348
-
349
- A: API keys are stored locally in `~/.codex/config.toml` and are not uploaded.
350
-
351
- ### Q: Is the Web UI safe?
352
-
353
- A: The Web UI runs locally; all operations happen on your machine. API keys are masked in the UI.
354
-
355
- ### Q: How do Claude Code configs take effect?
356
-
357
- A: After clicking "Apply to Claude Config", it writes to `~/.claude/settings.json`. Restart Claude Code to apply.
358
-
359
- ### Q: How to uninstall?
360
-
361
- A: Run `npm uninstall -g codexmate`.
362
-
363
- ## Extras: Compression/Extraction
364
-
365
- Prefer 7-Zip for multithreaded zip/unzip. Fallback to the built-in JS library when unavailable.
366
-
367
- ```bash
368
- # Compress file or folder (default compression level 5)
369
- codexmate zip <path>
370
-
371
- # Set compression level (0-9, 0=store only, 9=max)
372
- codexmate zip <path> --max:9
373
-
374
- # Unzip a zip file (default to same-level folder)
375
- codexmate unzip <zip path>
376
-
377
- # Unzip to a specific output directory
378
- codexmate unzip <zip path> <output dir>
379
- ```
166
+ - Default: read-only tools
167
+ - Enable writes: `--allow-write` or `CODEXMATE_MCP_ALLOW_WRITE=1`
168
+ - Domains: `tools`, `resources`, `prompts`
380
169
 
381
170
  Examples:
382
171
 
383
172
  ```bash
384
- # Compress a project folder
385
- codexmate zip ./my-project
386
-
387
- # Max compression
388
- codexmate zip ./my-project --max:9
389
-
390
- # Store only (fast)
391
- codexmate zip ./large-folder --max:0
392
-
393
- # Unzip
394
- codexmate unzip ./my-project.zip
395
-
396
- # Unzip to a target location
397
- codexmate unzip ./backup.zip D:/restored
173
+ codexmate mcp serve --read-only
174
+ codexmate mcp serve --allow-write
398
175
  ```
399
176
 
400
- Note: 7-Zip is optional. If missing, the built-in JS library is used. `--max` only applies to 7-Zip.
177
+ ## Config Files
401
178
 
402
- ## Tech Stack
179
+ - `~/.codex/config.toml`
180
+ - `~/.codex/auth.json`
181
+ - `~/.codex/models.json`
182
+ - `~/.codex/provider-current-models.json`
183
+ - `~/.claude/settings.json`
184
+ - `~/.openclaw/openclaw.json`
185
+ - `~/.openclaw/workspace/AGENTS.md`
403
186
 
404
- - **Node.js** - Runtime
405
- - **@iarna/toml** - TOML parser
406
- - **Vue.js 3** - Web UI framework
407
- - **Native HTTP** - Built-in Web server
187
+ ## Environment Variables
408
188
 
409
- ## Release (GitHub Actions)
410
-
411
- Create a tag that matches `package.json` (for example `v0.0.14`). Then run the `release` workflow in GitHub Actions and input that tag. It will create a GitHub Release and attach the `npm pack` `.tgz` artifact.
189
+ | Variable | Default | Description |
190
+ | --- | --- | --- |
191
+ | `CODEXMATE_PORT` | `3737` | Web server port |
192
+ | `CODEXMATE_HOST` | `127.0.0.1` | Web listen host |
193
+ | `CODEXMATE_NO_BROWSER` | unset | Set `1` to disable browser auto-open |
194
+ | `CODEXMATE_MCP_ALLOW_WRITE` | unset | Set `1` to allow MCP write tools by default |
195
+ | `CODEXMATE_FORCE_RESET_EXISTING_CONFIG` | `0` | Set `1` to force bootstrap reset of existing config |
412
196
 
413
- ## License
197
+ ## Tech Stack
414
198
 
415
- Apache-2.0 © [ymkiux](https://github.com/ymkiux)
199
+ - Node.js
200
+ - Vue.js 3 (Web UI)
201
+ - Native HTTP server
202
+ - `@iarna/toml`, `json5`
416
203
 
417
204
  ## Contributing
418
205
 
419
206
  Issues and pull requests are welcome.
420
207
 
421
- ## Changelog
208
+ - English changelog: `doc/CHANGELOG.md`
209
+ - Chinese changelog: `doc/CHANGELOG.zh-CN.md`
422
210
 
423
- See [doc/CHANGELOG.md](doc/CHANGELOG.md) for the English version.
424
- See [doc/CHANGELOG.zh-CN.md](doc/CHANGELOG.zh-CN.md) for the Chinese version.
425
-
426
- ---
427
-
428
- Made with [ymkiux](https://github.com/ymkiux)
211
+ ## License
429
212
 
213
+ Apache-2.0