codexmate 0.1.27 → 0.1.29
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 +53 -44
- package/README.vi.md +45 -36
- package/README.zh.md +51 -42
- package/cli/config-bootstrap.js +2 -9
- package/cli/session-usage.js +2 -2
- package/cli.js +407 -40
- package/package.json +1 -1
- package/web-ui/app.js +7 -0
- package/web-ui/index.html +12 -0
- package/web-ui/logic.sessions.mjs +6 -4
- package/web-ui/modules/app.computed.session.mjs +52 -33
- package/web-ui/modules/app.methods.agents.mjs +36 -0
- package/web-ui/modules/app.methods.codex-config.mjs +3 -1
- package/web-ui/modules/app.methods.index.mjs +2 -0
- package/web-ui/modules/app.methods.providers.mjs +12 -4
- package/web-ui/modules/app.methods.session-actions.mjs +10 -8
- package/web-ui/modules/app.methods.session-browser.mjs +3 -1
- package/web-ui/modules/app.methods.session-trash.mjs +16 -16
- package/web-ui/modules/app.methods.theme.mjs +39 -0
- package/web-ui/modules/app.methods.web-ui-preferences.mjs +9 -0
- package/web-ui/modules/i18n/locales/en.mjs +80 -2
- package/web-ui/modules/i18n/locales/ja.mjs +80 -2
- package/web-ui/modules/i18n/locales/vi.mjs +80 -2
- package/web-ui/modules/i18n/locales/zh-tw.mjs +80 -2
- package/web-ui/modules/i18n/locales/zh.mjs +80 -2
- package/web-ui/modules/i18n.mjs +7 -0
- package/web-ui/partials/index/modal-config-template-agents.html +1 -1
- package/web-ui/partials/index/modal-health-check.html +1 -1
- package/web-ui/partials/index/modal-openclaw-config.html +50 -50
- package/web-ui/partials/index/panel-dashboard.html +1 -1
- package/web-ui/partials/index/panel-prompts.html +2 -2
- package/web-ui/partials/index/panel-sessions.html +47 -30
- package/web-ui/partials/index/panel-settings.html +30 -0
- package/web-ui/res/web-ui-render.precompiled.js +244 -157
- package/web-ui/session-helpers.mjs +3 -0
- package/web-ui/styles/base-theme.css +3 -2
- package/web-ui/styles/bridge-pool.css +1 -1
- package/web-ui/styles/controls-forms.css +1 -1
- package/web-ui/styles/layout-shell.css +0 -1
- package/web-ui/styles/sessions-preview.css +77 -0
- package/web-ui/styles/sessions-toolbar-trash.css +1 -1
- package/web-ui/styles/sessions-usage.css +1 -1
- package/web-ui/styles/settings-panel.css +2 -2
- package/web-ui/styles/theme-dark-tokens.css +83 -0
- package/web-ui/styles/theme-dark.css +1355 -0
- package/web-ui/styles/theme-ocean-tokens.css +88 -0
- package/web-ui/styles/theme-ocean.css +920 -0
- package/web-ui/styles.css +2 -0
package/README.md
CHANGED
|
@@ -4,7 +4,9 @@
|
|
|
4
4
|
|
|
5
5
|
# Codex Mate
|
|
6
6
|
|
|
7
|
-
**
|
|
7
|
+
**Find the conversations scattered across your AI coding tools.**
|
|
8
|
+
|
|
9
|
+
Codex Mate is a locally running CLI + Web tool for browsing, filtering, and exporting existing sessions in one place, with Provider, Skills, and task management when you need them.
|
|
8
10
|
|
|
9
11
|
<p>
|
|
10
12
|
<a href="https://sakurabytecore.github.io/codexmate/">[Documentation]</a>
|
|
@@ -31,57 +33,21 @@
|
|
|
31
33
|
---
|
|
32
34
|
|
|
33
35
|
> [!TIP]
|
|
34
|
-
> **Local First**:
|
|
35
|
-
|
|
36
|
-
> [!IMPORTANT]
|
|
37
|
-
> This project is currently in early stage. We are seeking developers to help build the local agent ecosystem!
|
|
36
|
+
> **Local First**: Read existing sessions and manage configuration on your machine. No telemetry or Codex Mate cloud account required. Model requests still go to your configured provider; running locally does not mean models run offline.
|
|
38
37
|
|
|
39
38
|
## What is Codex Mate?
|
|
40
39
|
|
|
41
|
-
|
|
40
|
+
Was last week's solution discussed in Codex or Claude Code? Narrow down your local sessions by source, project, or time, open the conversation, and export it as Markdown for reference.
|
|
42
41
|
|
|
43
|
-
|
|
42
|
+
Codex Mate manages existing tools and local records. It is not a new AI model or a replacement for your coding assistant. Start by finding one useful conversation, without configuring every tool first.
|
|
44
43
|
|
|
45
|
-
|
|
44
|
+
[Get started](#quick-start) · [Session guide (Chinese)](https://sakurabytecore.github.io/codexmate/guide/sessions)
|
|
46
45
|
|
|
47
|
-
|
|
48
|
-
- **Unified Session Browser**: Search, inspect, filter, and export local sessions across Codex, Claude Code, Gemini CLI, CodeBuddy Code, and Pi from one place.
|
|
49
|
-
- **OpenAI-Compatible Bridge**: Use Codex with any OpenAI-compatible UI by normalizing the Responses API; the built-in Codex conversion also fills and normalizes Codex fingerprint headers such as `User-Agent`, `Version`, `OpenAI-Beta`, and `Originator` so upstream providers see an official Codex CLI-shaped request.
|
|
50
|
-
- **Claude Provider Bridge**: Connect Claude Code to OpenAI Chat Completions-compatible providers and Ollama through the built-in local Claude-compatible proxy.
|
|
51
|
-
- **OpenCode Provider Control**: Manage OpenCode provider/model selection with a CodexMate-owned provider store under `~/.codexmate`, projecting only the active provider into native OpenCode config to avoid polluting or deleting user-owned settings.
|
|
52
|
-
- **KiloCode Config Bridge**: Configure KiloCode providers from the CLI or Web UI, writing to `~/.config/kilo/kilo.jsonc` while preserving stored API keys.
|
|
53
|
-
- **Pi Provider Config**: Manage Pi providers from the Web UI with lossless round-trip writes to `~/.pi/agent/models.json`, auto-fetched remote model lists, and one-click default provider/model switching via `~/.pi/agent/settings.json`.
|
|
54
|
-
- **Provider Health Cleanup**: Probe local Codex and Claude provider routes, surface failed configs in one modal, and bulk-clean selected broken providers without touching healthy or protected entries.
|
|
55
|
-
- **Skills Marketplace**: A local-first market to share and import skills between different agent apps.
|
|
56
|
-
- **Prompt File Editor**: Unified editor for global and project-level `CLAUDE.md` and `AGENTS.md` (including OpenCode's `~/.config/opencode/AGENTS.md`) with auto-detection of project paths, plus a shared preset pool for reusable prompts.
|
|
57
|
-
- **Task Orchestrator**: Plan and execute complex tasks with dependency tracking.
|
|
58
|
-
|
|
59
|
-
---
|
|
60
|
-
|
|
61
|
-
## Current Progress
|
|
62
|
-
|
|
63
|
-
| Feature | Status | Description |
|
|
64
|
-
| --- | --- | --- |
|
|
65
|
-
| **Provider Management** | ✅ | Switch providers/models for Codex, Claude, OpenCode, KiloCode, OpenClaw, and Pi |
|
|
66
|
-
| **Live Agent Sync** | ✅ | Real-time monitoring of Codex/Claude config & status |
|
|
67
|
-
| **Session Browser** | ✅ | Search, preview, filter, and export sessions across Codex, Claude Code, Gemini CLI, CodeBuddy Code, and Pi |
|
|
68
|
-
| **Usage Analytics** | ✅ | Visualize message trends and top projects |
|
|
69
|
-
| **Local Skills Market** | ✅ | Cross-app import/export of agent skills |
|
|
70
|
-
| **Task Queue** | ✅ | DAG-based task execution and logs |
|
|
71
|
-
| **OpenAI Bridge** | ✅ | Convert Codex Responses API to standard OpenAI format and attach/normalize Codex fingerprints in the built-in conversion |
|
|
72
|
-
| **Claude Provider Bridge** | ✅ | Connect Claude Code to OpenAI Chat Completions-compatible providers and Ollama via the built-in Claude-compatible proxy |
|
|
73
|
-
| **OpenCode Provider Store** | ✅ | Keep multiple OpenCode providers in `~/.codexmate` while projecting only the selected provider to native OpenCode config |
|
|
74
|
-
| **KiloCode Config Bridge** | ✅ | Configure KiloCode through `codexmate kilo config` or the Web UI, writing provider URL/model/API key data to `~/.config/kilo/kilo.jsonc` |
|
|
75
|
-
| **Pi Provider Config** | ✅ | Manage Pi providers in the Web UI writing to `~/.pi/agent/models.json` (unknown fields preserved) and switch the default provider/model in `~/.pi/agent/settings.json` |
|
|
76
|
-
| **Provider Health Check** | ✅ | Probe local Codex/Claude provider routes, highlight failed configs, and bulk-remove selected broken providers safely |
|
|
77
|
-
| **Prompt Templates** | ✅ | Reusable prompt plugins with variables |
|
|
78
|
-
| **Prompt File Editor** | ✅ | Edit global and project-level CLAUDE.md / AGENTS.md with auto-detect, path switching, and a shared preset pool. Applying a preset only updates the editor; save manually to write the file. |
|
|
79
|
-
| **MCP Integration** | ✅ | Expose local tools and resources via MCP stdio |
|
|
80
|
-
| **Auto Update** | ✅ | Quick update CLI via `codexmate update` |
|
|
46
|
+
## Quick Start
|
|
81
47
|
|
|
82
|
-
|
|
48
|
+
Install using one option below, then run `codexmate run`. Open the address printed in your terminal, select a source with existing records in the session browser, open a conversation, and use its export action. If there are no local records, create a conversation in the original tool first.
|
|
83
49
|
|
|
84
|
-
|
|
50
|
+
Exports are for reading and archiving, not restoring complete agent state in another tool. Use `codexmate setup` when you need to configure a provider. See the [quick-start guide (Chinese)](https://sakurabytecore.github.io/codexmate/guide/quick-start) for details.
|
|
85
51
|
|
|
86
52
|
### Install via Homebrew (macOS / Linux)
|
|
87
53
|
|
|
@@ -127,6 +93,46 @@ curl -fsSL https://raw.githubusercontent.com/SakuraByteCore/codexmate/main/scrip
|
|
|
127
93
|
- **OpenCode**: install from the [official OpenCode docs](https://opencode.ai/)
|
|
128
94
|
- **OpenClaw**: see the [OpenClaw repository](https://github.com/moeru-ai/openclaw)
|
|
129
95
|
- **Pi**: sessions are discovered from `~/.pi/agent/sessions`; provider config lives in `~/.pi/agent/models.json` and the default provider/model in `~/.pi/agent/settings.json`
|
|
96
|
+
- **Zed**: agent sessions are read from Zed's local database (`threads/threads.db` under its data directory) and listed in the session browser (read-only)
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
## What's So Special?
|
|
101
|
+
|
|
102
|
+
After finding your conversations, manage the configuration, skills, and tasks used in your daily work:
|
|
103
|
+
- **Unified Session Browser**: Browse local sessions from Codex, Claude Code, Gemini CLI, CodeBuddy Code, WorkBuddy, Pi, OpenCode, and Zed in one place. Search, export, and deletion availability varies by source; see the [session guide (Chinese)](https://sakurabytecore.github.io/codexmate/guide/sessions).
|
|
104
|
+
- **OpenAI-Compatible Bridge**: Use Codex with any OpenAI-compatible UI by normalizing the Responses API; the built-in Codex conversion also fills and normalizes Codex fingerprint headers such as `User-Agent`, `Version`, `OpenAI-Beta`, and `Originator` so upstream providers see an official Codex CLI-shaped request.
|
|
105
|
+
- **Claude Provider Bridge**: Connect Claude Code to OpenAI Chat Completions-compatible providers and Ollama through the built-in local Claude-compatible proxy.
|
|
106
|
+
- **OpenCode Provider Control**: Manage OpenCode provider/model selection with a CodexMate-owned provider store under `~/.codexmate`, projecting only the active provider into native OpenCode config to avoid polluting or deleting user-owned settings.
|
|
107
|
+
- **KiloCode Config Bridge**: Configure KiloCode providers from the CLI or Web UI, writing to `~/.config/kilo/kilo.jsonc` while preserving stored API keys.
|
|
108
|
+
- **Pi Provider Config**: Manage Pi providers from the Web UI with lossless round-trip writes to `~/.pi/agent/models.json`, auto-fetched remote model lists, and one-click default provider/model switching via `~/.pi/agent/settings.json`.
|
|
109
|
+
- **Provider Health Cleanup**: Probe local Codex and Claude provider routes, surface failed configs in one modal, and bulk-clean selected broken providers without touching healthy or protected entries.
|
|
110
|
+
- **Skills Marketplace**: A local-first market to share and import skills between different agent apps.
|
|
111
|
+
- **Prompt File Editor**: Unified editor for global and project-level `CLAUDE.md` and `AGENTS.md` (including OpenCode's `~/.config/opencode/AGENTS.md`) with auto-detection of project paths, plus a shared preset pool for reusable prompts.
|
|
112
|
+
- **Task Orchestrator**: Plan and execute complex tasks with dependency tracking.
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
## Current Progress
|
|
117
|
+
|
|
118
|
+
| Feature | Status | Description |
|
|
119
|
+
| --- | --- | --- |
|
|
120
|
+
| **Provider Management** | ✅ | Switch providers/models for Codex, Claude, OpenCode, KiloCode, OpenClaw, and Pi |
|
|
121
|
+
| **Live Agent Sync** | ✅ | Real-time monitoring of Codex/Claude config & status |
|
|
122
|
+
| **Session Browser** | ✅ | Browse and filter local sessions; search and Markdown export depend on the source. See the session guide |
|
|
123
|
+
| **Usage Analytics** | ✅ | Visualize message trends and top projects |
|
|
124
|
+
| **Local Skills Market** | ✅ | Cross-app import/export of agent skills |
|
|
125
|
+
| **Task Queue** | ✅ | DAG-based task execution and logs |
|
|
126
|
+
| **OpenAI Bridge** | ✅ | Convert Codex Responses API to standard OpenAI format and attach/normalize Codex fingerprints in the built-in conversion |
|
|
127
|
+
| **Claude Provider Bridge** | ✅ | Connect Claude Code to OpenAI Chat Completions-compatible providers and Ollama via the built-in Claude-compatible proxy |
|
|
128
|
+
| **OpenCode Provider Store** | ✅ | Keep multiple OpenCode providers in `~/.codexmate` while projecting only the selected provider to native OpenCode config |
|
|
129
|
+
| **KiloCode Config Bridge** | ✅ | Configure KiloCode through `codexmate kilo config` or the Web UI, writing provider URL/model/API key data to `~/.config/kilo/kilo.jsonc` |
|
|
130
|
+
| **Pi Provider Config** | ✅ | Manage Pi providers in the Web UI writing to `~/.pi/agent/models.json` (unknown fields preserved) and switch the default provider/model in `~/.pi/agent/settings.json` |
|
|
131
|
+
| **Provider Health Check** | ✅ | Probe local Codex/Claude provider routes, highlight failed configs, and bulk-remove selected broken providers safely |
|
|
132
|
+
| **Prompt Templates** | ✅ | Reusable prompt plugins with variables |
|
|
133
|
+
| **Prompt File Editor** | ✅ | Edit global and project-level CLAUDE.md / AGENTS.md with auto-detect, path switching, and a shared preset pool. Applying a preset only updates the editor; save manually to write the file. |
|
|
134
|
+
| **MCP Integration** | ✅ | Expose local tools and resources via MCP stdio |
|
|
135
|
+
| **Auto Update** | ✅ | Quick update CLI via `codexmate update` |
|
|
130
136
|
|
|
131
137
|
---
|
|
132
138
|
|
|
@@ -171,6 +177,9 @@ flowchart TD
|
|
|
171
177
|
|
|
172
178
|
## Special Thanks
|
|
173
179
|
|
|
180
|
+
> [!IMPORTANT]
|
|
181
|
+
> This project is currently in early stage. We are seeking developers to help build the local agent ecosystem!
|
|
182
|
+
|
|
174
183
|
Special thanks to all contributors for their contributions to Codex Mate ❤️
|
|
175
184
|
|
|
176
185
|
<a href="https://github.com/SakuraByteCore/codexmate/graphs/contributors">
|
package/README.vi.md
CHANGED
|
@@ -4,7 +4,9 @@
|
|
|
4
4
|
|
|
5
5
|
# Codex Mate
|
|
6
6
|
|
|
7
|
-
**
|
|
7
|
+
**Tìm lại những cuộc trò chuyện nằm rải rác trong các công cụ lập trình AI.**
|
|
8
|
+
|
|
9
|
+
Codex Mate là công cụ CLI + Web chạy cục bộ, giúp xem, lọc và xuất các phiên đã có tại một nơi, đồng thời quản lý Provider, Skills và tác vụ khi cần.
|
|
8
10
|
|
|
9
11
|
<p>
|
|
10
12
|
<a href="https://sakurabytecore.github.io/codexmate/">[Tài liệu]</a>
|
|
@@ -31,49 +33,21 @@
|
|
|
31
33
|
---
|
|
32
34
|
|
|
33
35
|
> [!TIP]
|
|
34
|
-
> **Ưu tiên cục bộ**:
|
|
35
|
-
|
|
36
|
-
> [!IMPORTANT]
|
|
37
|
-
> Dự án đang ở giai đoạn đầu. Chúng tôi đang tìm kiếm các nhà phát triển để cùng xây dựng hệ sinh thái agent cục bộ!
|
|
36
|
+
> **Ưu tiên cục bộ**: Đọc các phiên đã có và quản lý cấu hình trên máy của bạn. Không có telemetry, không cần tài khoản cloud của Codex Mate. Yêu cầu tới mô hình vẫn được gửi đến provider đã cấu hình; chạy cục bộ không có nghĩa là mô hình chạy ngoại tuyến.
|
|
38
37
|
|
|
39
38
|
## Codex Mate là gì?
|
|
40
39
|
|
|
41
|
-
|
|
40
|
+
Giải pháp tuần trước được thảo luận trong Codex hay Claude Code? Lọc phiên theo nguồn, dự án hoặc thời gian, mở cuộc trò chuyện để xem lại, rồi xuất thành Markdown để tham khảo.
|
|
42
41
|
|
|
43
|
-
|
|
42
|
+
Codex Mate quản lý công cụ và dữ liệu cục bộ đã có. Đây không phải mô hình AI mới và không thay thế trợ lý lập trình của bạn. Hãy bắt đầu bằng việc tìm lại một cuộc trò chuyện hữu ích, không cần cấu hình mọi công cụ trước.
|
|
44
43
|
|
|
45
|
-
|
|
44
|
+
[Bắt đầu sử dụng](#bắt-đầu-nhanh) · [Hướng dẫn phiên (tiếng Trung)](https://sakurabytecore.github.io/codexmate/guide/sessions)
|
|
46
45
|
|
|
47
|
-
|
|
48
|
-
- **Trình duyệt phiên thống nhất**: Tìm kiếm, xem trước, lọc và xuất phiên làm việc từ Codex, Claude Code, Gemini CLI, CodeBuddy Code và Pi trong một nơi duy nhất.
|
|
49
|
-
- **Bridge tương thích OpenAI**: Dùng Codex với bất kỳ UI nào hỗ trợ OpenAI bằng cách chuẩn hóa Responses API.
|
|
50
|
-
- **Dọn dẹp provider lỗi**: Kiểm tra route provider cục bộ của Codex/Claude, hiển thị cấu hình lỗi trong một modal và xóa hàng loạt các provider hỏng đã chọn mà không chạm vào mục khỏe mạnh hoặc được bảo vệ.
|
|
51
|
-
- **Chợ skill cục bộ**: Chia sẻ và nhập skill giữa các app agent khác nhau.
|
|
52
|
-
- **Điều phối tác vụ**: Lập kế hoạch và thực thi tác vụ phức tạp với theo dõi phụ thuộc.
|
|
53
|
-
|
|
54
|
-
---
|
|
55
|
-
|
|
56
|
-
## Tiến độ hiện tại
|
|
57
|
-
|
|
58
|
-
| Tính năng | Trạng thái | Mô tả |
|
|
59
|
-
| --- | --- | --- |
|
|
60
|
-
| **Quản lý Provider** | ✅ | Chuyển đổi provider/model cho Codex, Claude, OpenCode, KiloCode, OpenClaw và Pi |
|
|
61
|
-
| **Cấu hình Provider Pi** | ✅ | Quản lý provider Pi trong Web UI, ghi vào `~/.pi/agent/models.json` (giữ nguyên các trường không nhận dạng được) và chuyển đổi provider/model mặc định trong `~/.pi/agent/settings.json` |
|
|
62
|
-
| **Đồng bộ Agent trực tiếp** | ✅ | Giám sát cấu hình & trạng thái Codex/Claude theo thời gian thực |
|
|
63
|
-
| **Trình duyệt phiên** | ✅ | Liệt kê, xem trước, lọc và xuất phiên (Codex/Claude/Gemini/CodeBuddy/Pi) |
|
|
64
|
-
| **Phân tích sử dụng** | ✅ | Trực quan hóa xu hướng tin nhắn và dự án nổi bật |
|
|
65
|
-
| **Chợ skill cục bộ** | ✅ | Import/export skill giữa các app agent |
|
|
66
|
-
| **Hàng đợi tác vụ** | ✅ | Thực thi tác vụ theo DAG và xem log |
|
|
67
|
-
| **Bridge OpenAI** | ✅ | Chuyển đổi Codex Responses API sang định dạng OpenAI chuẩn |
|
|
68
|
-
| **Kiểm tra sức khỏe Provider** | ✅ | Kiểm tra route provider Codex/Claude, đánh dấu cấu hình lỗi và xóa hàng loạt các provider hỏng đã chọn một cách an toàn |
|
|
69
|
-
| **Mẫu Prompt** | ✅ | Plugin prompt tái sử dụng được với hỗ trợ biến |
|
|
70
|
-
| **Trình sửa tệp prompt** | ✅ | Chỉnh sửa CLAUDE.md / AGENTS.md (bao gồm `~/.config/opencode/AGENTS.md` của OpenCode) và dùng kho preset chung. Áp dụng preset chỉ cập nhật editor; cần lưu thủ công để ghi vào tệp. |
|
|
71
|
-
| **Tích hợp MCP** | ✅ | Expose tool và resource cục bộ qua MCP stdio |
|
|
72
|
-
| **Tự động cập nhật** | ✅ | Cập nhật nhanh qua `codexmate update` |
|
|
46
|
+
## Bắt đầu nhanh
|
|
73
47
|
|
|
74
|
-
|
|
48
|
+
Chọn một cách cài đặt bên dưới, rồi chạy `codexmate run`. Mở địa chỉ được in trong terminal, chọn nguồn có dữ liệu trong trình duyệt phiên, mở cuộc trò chuyện và dùng chức năng xuất. Nếu chưa có dữ liệu cục bộ, hãy tạo cuộc trò chuyện trong công cụ gốc trước.
|
|
75
49
|
|
|
76
|
-
|
|
50
|
+
Bản xuất dùng để đọc và lưu trữ, không phải khôi phục toàn bộ trạng thái agent trong công cụ khác. Dùng `codexmate setup` khi cần cấu hình provider. Xem [hướng dẫn bắt đầu nhanh (tiếng Trung)](https://sakurabytecore.github.io/codexmate/guide/quick-start) để biết chi tiết.
|
|
77
51
|
|
|
78
52
|
### Cài đặt qua Homebrew (macOS / Linux)
|
|
79
53
|
|
|
@@ -119,6 +93,38 @@ curl -fsSL https://raw.githubusercontent.com/SakuraByteCore/codexmate/main/scrip
|
|
|
119
93
|
- **OpenCode**: xem [tài liệu chính thức OpenCode](https://opencode.ai/)
|
|
120
94
|
- **OpenClaw**: xem [kho lưu trữ OpenClaw](https://github.com/moeru-ai/openclaw)
|
|
121
95
|
- **Pi**: phiên làm việc được phát hiện từ `~/.pi/agent/sessions`; cấu hình provider nằm ở `~/.pi/agent/models.json`, provider/model mặc định nằm ở `~/.pi/agent/settings.json`
|
|
96
|
+
- **Zed**: phiên agent được đọc chỉ-đọc từ cơ sở dữ liệu cục bộ của Zed (`threads/threads.db` trong thư mục dữ liệu) và hiển thị trong trình duyệt phiên
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
## Điểm nổi bật
|
|
101
|
+
|
|
102
|
+
Sau khi tìm lại cuộc trò chuyện, bạn có thể quản lý cấu hình, skill và tác vụ phục vụ công việc hằng ngày:
|
|
103
|
+
- **Trình duyệt phiên thống nhất**: Xem phiên cục bộ từ Codex, Claude Code, Gemini CLI, CodeBuddy Code, WorkBuddy, Pi, OpenCode và Zed tại một nơi. Khả năng tìm kiếm, xuất và xóa tùy thuộc nguồn; xem [hướng dẫn phiên (tiếng Trung)](https://sakurabytecore.github.io/codexmate/guide/sessions).
|
|
104
|
+
- **Bridge tương thích OpenAI**: Dùng Codex với bất kỳ UI nào hỗ trợ OpenAI bằng cách chuẩn hóa Responses API.
|
|
105
|
+
- **Dọn dẹp provider lỗi**: Kiểm tra route provider cục bộ của Codex/Claude, hiển thị cấu hình lỗi trong một modal và xóa hàng loạt các provider hỏng đã chọn mà không chạm vào mục khỏe mạnh hoặc được bảo vệ.
|
|
106
|
+
- **Chợ skill cục bộ**: Chia sẻ và nhập skill giữa các app agent khác nhau.
|
|
107
|
+
- **Điều phối tác vụ**: Lập kế hoạch và thực thi tác vụ phức tạp với theo dõi phụ thuộc.
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
## Tiến độ hiện tại
|
|
112
|
+
|
|
113
|
+
| Tính năng | Trạng thái | Mô tả |
|
|
114
|
+
| --- | --- | --- |
|
|
115
|
+
| **Quản lý Provider** | ✅ | Chuyển đổi provider/model cho Codex, Claude, OpenCode, KiloCode, OpenClaw và Pi |
|
|
116
|
+
| **Cấu hình Provider Pi** | ✅ | Quản lý provider Pi trong Web UI, ghi vào `~/.pi/agent/models.json` (giữ nguyên các trường không nhận dạng được) và chuyển đổi provider/model mặc định trong `~/.pi/agent/settings.json` |
|
|
117
|
+
| **Đồng bộ Agent trực tiếp** | ✅ | Giám sát cấu hình & trạng thái Codex/Claude theo thời gian thực |
|
|
118
|
+
| **Trình duyệt phiên** | ✅ | Xem và lọc phiên cục bộ; khả năng tìm kiếm và xuất Markdown tùy thuộc nguồn. Xem hướng dẫn phiên |
|
|
119
|
+
| **Phân tích sử dụng** | ✅ | Trực quan hóa xu hướng tin nhắn và dự án nổi bật |
|
|
120
|
+
| **Chợ skill cục bộ** | ✅ | Import/export skill giữa các app agent |
|
|
121
|
+
| **Hàng đợi tác vụ** | ✅ | Thực thi tác vụ theo DAG và xem log |
|
|
122
|
+
| **Bridge OpenAI** | ✅ | Chuyển đổi Codex Responses API sang định dạng OpenAI chuẩn |
|
|
123
|
+
| **Kiểm tra sức khỏe Provider** | ✅ | Kiểm tra route provider Codex/Claude, đánh dấu cấu hình lỗi và xóa hàng loạt các provider hỏng đã chọn một cách an toàn |
|
|
124
|
+
| **Mẫu Prompt** | ✅ | Plugin prompt tái sử dụng được với hỗ trợ biến |
|
|
125
|
+
| **Trình sửa tệp prompt** | ✅ | Chỉnh sửa CLAUDE.md / AGENTS.md (bao gồm `~/.config/opencode/AGENTS.md` của OpenCode) và dùng kho preset chung. Áp dụng preset chỉ cập nhật editor; cần lưu thủ công để ghi vào tệp. |
|
|
126
|
+
| **Tích hợp MCP** | ✅ | Expose tool và resource cục bộ qua MCP stdio |
|
|
127
|
+
| **Tự động cập nhật** | ✅ | Cập nhật nhanh qua `codexmate update` |
|
|
122
128
|
|
|
123
129
|
---
|
|
124
130
|
|
|
@@ -161,6 +167,9 @@ flowchart TD
|
|
|
161
167
|
|
|
162
168
|
## Lời cảm ơn
|
|
163
169
|
|
|
170
|
+
> [!IMPORTANT]
|
|
171
|
+
> Dự án đang ở giai đoạn đầu. Chúng tôi đang tìm kiếm các nhà phát triển để cùng xây dựng hệ sinh thái agent cục bộ!
|
|
172
|
+
|
|
164
173
|
Cảm ơn tất cả những người đóng góp cho Codex Mate ❤️
|
|
165
174
|
|
|
166
175
|
<a href="https://github.com/SakuraByteCore/codexmate/graphs/contributors">
|
package/README.zh.md
CHANGED
|
@@ -4,7 +4,9 @@
|
|
|
4
4
|
|
|
5
5
|
# Codex Mate
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
**找回散落在不同 AI 编程工具里的对话。**
|
|
8
|
+
|
|
9
|
+
Codex Mate 是本地运行的 CLI + Web 管理工具,在一个界面查看、筛选和导出已有会话,也能集中管理 Provider、Skills 与任务。
|
|
8
10
|
|
|
9
11
|
<p>
|
|
10
12
|
<a href="https://sakurabytecore.github.io/codexmate/">[项目文档]</a>
|
|
@@ -30,55 +32,21 @@
|
|
|
30
32
|
---
|
|
31
33
|
|
|
32
34
|
> [!TIP]
|
|
33
|
-
>
|
|
34
|
-
|
|
35
|
-
> [!IMPORTANT]
|
|
36
|
-
> 本项目目前处于早期开发阶段。我们正在寻找开发者共同构建本地智能体生态!
|
|
35
|
+
> **本地优先**:读取本机已有会话、管理本地配置,无需 Codex Mate 云端账户,不收遥测。模型调用仍由所配置的 Provider 处理,本地运行不等于模型离线运行。
|
|
37
36
|
|
|
38
37
|
## 什么是 Codex Mate?
|
|
39
38
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
**Codex Mate** 提供了一个统一的控制平面,让混乱重归有序。这是一个本地优先的 CLI + Web UI,旨在无缝管理 [Codex](https://github.com/openai/codex)、[Claude Code](https://github.com/anthropic-ai/claude-code)、[OpenCode](https://opencode.ai/)、KiloCode、[OpenClaw](https://github.com/moeru-ai/openclaw) 与 Pi。
|
|
43
|
-
|
|
44
|
-
### 有什么独特之处?
|
|
45
|
-
|
|
46
|
-
不同于简单的封装,Codex Mate 充当了 **本地智能体桥接器**:
|
|
47
|
-
- **统一会话浏览器**:在一个地方检索、预览、筛选并导出 Codex、Claude Code、Gemini CLI、CodeBuddy Code 与 Pi 的本地会话。
|
|
48
|
-
- **OpenAI 兼容桥接**:通过归一化 Responses API,让 Codex 能够与任何支持 OpenAI 格式的 UI 配合使用;内建 Codex 转换会补齐并规范化 `User-Agent`、`Version`、`OpenAI-Beta`、`Originator` 等 Codex 指纹,对上游伪装为官方 Codex CLI 请求。
|
|
49
|
-
- **Claude Provider 桥接**:通过内建本地 Claude 兼容代理,让 Claude Code 接入 OpenAI Chat Completions 兼容 provider 与 Ollama。
|
|
50
|
-
- **OpenCode Provider 控制**:在 `~/.codexmate` 下维护 CodexMate 自有的 OpenCode 多 provider 存储,只将当前选中的 provider 投影到 OpenCode 原生配置,避免污染或误删用户已有配置。
|
|
51
|
-
- **Pi Provider 配置**:在 Web UI 中管理 Pi 供应商,写入 `~/.pi/agent/models.json` 时无损保留未知字段,支持自动拉取远端模型列表,并可一键切换 `~/.pi/agent/settings.json` 中的默认供应商/模型。
|
|
52
|
-
- **Provider 健康清理**:探测本地 Codex 与 Claude provider 路由,在同一个弹窗里集中展示失败配置,并批量清理已选坏配置,不影响正常或受保护项。
|
|
53
|
-
- **Skills 市场**:本地优先的市场,支持在不同的智能体应用之间共享和导入 Skills。
|
|
54
|
-
- **提示词文件编辑器**:统一编辑全局和项目级 `CLAUDE.md` 与 `AGENTS.md`(含 OpenCode 的 `~/.config/opencode/AGENTS.md`),支持项目路径自动检测,并提供通用预设池复用 prompt。
|
|
55
|
-
- **任务编排器**:支持带有依赖跟踪的复杂任务规划与执行。
|
|
39
|
+
上周讨论过的方案,忘了是在 Codex 还是 Claude Code?先在会话浏览器按来源、项目或时间缩小范围,打开记录确认内容,再导出为 Markdown 留作参考。
|
|
56
40
|
|
|
57
|
-
|
|
41
|
+
Codex Mate 管理已有工具和本地记录,不是新的 AI 模型,也不替代原来的编程助手。第一次使用不必配置全部工具;先找回一段对话即可。
|
|
58
42
|
|
|
59
|
-
|
|
43
|
+
[开始使用](#快速开始) · [查看会话使用方法](https://sakurabytecore.github.io/codexmate/guide/sessions)
|
|
60
44
|
|
|
61
|
-
|
|
62
|
-
| --- | --- | --- |
|
|
63
|
-
| **Provider 管理** | ✅ | 切换 Codex、Claude、OpenCode、KiloCode、OpenClaw 与 Pi 的 provider/model |
|
|
64
|
-
| **状态实时同步** | ✅ | 实时感知 Codex/Claude 的配置与运行状态变更 |
|
|
65
|
-
| **会话浏览器** | ✅ | 跨 Codex、Claude Code、Gemini CLI、CodeBuddy Code 与 Pi 的本地会话进行检索、预览、筛选与导出 |
|
|
66
|
-
| **Usage 统计** | ✅ | 可视化消息趋势与热门项目统计 |
|
|
67
|
-
| **本地 Skills 市场** | ✅ | 跨应用的智能体 Skills 导入与导出 |
|
|
68
|
-
| **任务队列** | ✅ | 基于 DAG 的任务执行与日志查看 |
|
|
69
|
-
| **OpenAI 桥接** | ✅ | 将 Codex Responses API 转换为标准 OpenAI 格式,并在内建转换中附加/规范化 Codex 指纹 |
|
|
70
|
-
| **Claude Provider 桥接** | ✅ | 通过内建 Claude 兼容代理,让 Claude Code 接入 OpenAI Chat Completions 兼容 provider 与 Ollama |
|
|
71
|
-
| **OpenCode Provider 存储** | ✅ | 在 `~/.codexmate` 中保留多个 OpenCode provider,只将当前选中的 provider 投影到 OpenCode 原生配置 |
|
|
72
|
-
| **Pi Provider 配置** | ✅ | 在 Web UI 中管理 Pi 供应商,写入 `~/.pi/agent/models.json`(未知字段无损保留),并切换 `~/.pi/agent/settings.json` 中的默认供应商/模型 |
|
|
73
|
-
| **Provider 健康检查** | ✅ | 探测本地 Codex/Claude provider 路由,标记失败配置,并安全批量移除已选坏配置 |
|
|
74
|
-
| **提示词模板** | ✅ | 支持变量的可复用提示词插件 |
|
|
75
|
-
| **提示词文件编辑器** | ✅ | 编辑全局和项目级 CLAUDE.md / AGENTS.md,支持自动检测、路径切换与通用预设池。应用预设只更新编辑器,需手动保存才会写入文件。 |
|
|
76
|
-
| **MCP 集成** | ✅ | 通过 MCP stdio 暴露本地工具与资源 |
|
|
77
|
-
| **自动更新** | ✅ | 通过 `codexmate update` 快速更新 CLI |
|
|
45
|
+
## 快速开始
|
|
78
46
|
|
|
79
|
-
|
|
47
|
+
先任选一种方式安装,再运行 `codexmate run`。按终端显示的地址打开 Web UI,在「会话来源」选已有记录的工具,打开一条会话并点击「导出记录」。没有本地记录时,先在原工具中产生一段对话。
|
|
80
48
|
|
|
81
|
-
|
|
49
|
+
导出用于阅读与归档,不等于在另一工具中恢复完整状态。需要配置 Provider 时再使用 `codexmate setup`;详细步骤见[快速开始](https://sakurabytecore.github.io/codexmate/guide/quick-start)。
|
|
82
50
|
|
|
83
51
|
### Homebrew 安装(macOS / Linux)
|
|
84
52
|
|
|
@@ -124,6 +92,44 @@ curl -fsSL https://raw.githubusercontent.com/SakuraByteCore/codexmate/main/scrip
|
|
|
124
92
|
- **OpenCode**: 参照 [OpenCode 官方文档](https://opencode.ai/) 安装
|
|
125
93
|
- **OpenClaw**: 参见 [OpenClaw 仓库](https://github.com/moeru-ai/openclaw)
|
|
126
94
|
- **Pi**: 会话从 `~/.pi/agent/sessions` 自动发现;供应商配置位于 `~/.pi/agent/models.json`,默认供应商/模型位于 `~/.pi/agent/settings.json`
|
|
95
|
+
- **Zed**: 智能体会话从 Zed 本地数据库(其数据目录下的 `threads/threads.db`)只读发现,并在会话浏览器中列出
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## 有什么独特之处?
|
|
100
|
+
|
|
101
|
+
找回对话之后,还可以继续管理日常工作所需的配置、Skills 与任务:
|
|
102
|
+
- **统一会话浏览器**:集中浏览 Codex、Claude Code、Gemini CLI、CodeBuddy Code、WorkBuddy、Pi、OpenCode 与 Zed 的本地会话;检索、导出和删除的来源限制见[会话指南](https://sakurabytecore.github.io/codexmate/guide/sessions)。
|
|
103
|
+
- **OpenAI 兼容桥接**:通过归一化 Responses API,让 Codex 能够与任何支持 OpenAI 格式的 UI 配合使用;内建 Codex 转换会补齐并规范化 `User-Agent`、`Version`、`OpenAI-Beta`、`Originator` 等 Codex 指纹,对上游伪装为官方 Codex CLI 请求。
|
|
104
|
+
- **Claude Provider 桥接**:通过内建本地 Claude 兼容代理,让 Claude Code 接入 OpenAI Chat Completions 兼容 provider 与 Ollama。
|
|
105
|
+
- **OpenCode Provider 控制**:在 `~/.codexmate` 下维护 CodexMate 自有的 OpenCode 多 provider 存储,只将当前选中的 provider 投影到 OpenCode 原生配置,避免污染或误删用户已有配置。
|
|
106
|
+
- **Pi Provider 配置**:在 Web UI 中管理 Pi 供应商,写入 `~/.pi/agent/models.json` 时无损保留未知字段,支持自动拉取远端模型列表,并可一键切换 `~/.pi/agent/settings.json` 中的默认供应商/模型。
|
|
107
|
+
- **Provider 健康清理**:探测本地 Codex 与 Claude provider 路由,在同一个弹窗里集中展示失败配置,并批量清理已选坏配置,不影响正常或受保护项。
|
|
108
|
+
- **Skills 市场**:本地优先的市场,支持在不同的智能体应用之间共享和导入 Skills。
|
|
109
|
+
- **提示词文件编辑器**:统一编辑全局和项目级 `CLAUDE.md` 与 `AGENTS.md`(含 OpenCode 的 `~/.config/opencode/AGENTS.md`),支持项目路径自动检测,并提供通用预设池复用 prompt。
|
|
110
|
+
- **任务编排器**:支持带有依赖跟踪的复杂任务规划与执行。
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
## 当前进展
|
|
115
|
+
|
|
116
|
+
| 特性 | 状态 | 描述 |
|
|
117
|
+
| --- | --- | --- |
|
|
118
|
+
| **Provider 管理** | ✅ | 切换 Codex、Claude、OpenCode、KiloCode、OpenClaw 与 Pi 的 provider/model |
|
|
119
|
+
| **状态实时同步** | ✅ | 实时感知 Codex/Claude 的配置与运行状态变更 |
|
|
120
|
+
| **会话浏览器** | ✅ | 集中浏览与筛选本地会话,按来源提供检索、Markdown 导出等操作;详见会话指南 |
|
|
121
|
+
| **Usage 统计** | ✅ | 可视化消息趋势与热门项目统计 |
|
|
122
|
+
| **本地 Skills 市场** | ✅ | 跨应用的智能体 Skills 导入与导出 |
|
|
123
|
+
| **任务队列** | ✅ | 基于 DAG 的任务执行与日志查看 |
|
|
124
|
+
| **OpenAI 桥接** | ✅ | 将 Codex Responses API 转换为标准 OpenAI 格式,并在内建转换中附加/规范化 Codex 指纹 |
|
|
125
|
+
| **Claude Provider 桥接** | ✅ | 通过内建 Claude 兼容代理,让 Claude Code 接入 OpenAI Chat Completions 兼容 provider 与 Ollama |
|
|
126
|
+
| **OpenCode Provider 存储** | ✅ | 在 `~/.codexmate` 中保留多个 OpenCode provider,只将当前选中的 provider 投影到 OpenCode 原生配置 |
|
|
127
|
+
| **Pi Provider 配置** | ✅ | 在 Web UI 中管理 Pi 供应商,写入 `~/.pi/agent/models.json`(未知字段无损保留),并切换 `~/.pi/agent/settings.json` 中的默认供应商/模型 |
|
|
128
|
+
| **Provider 健康检查** | ✅ | 探测本地 Codex/Claude provider 路由,标记失败配置,并安全批量移除已选坏配置 |
|
|
129
|
+
| **提示词模板** | ✅ | 支持变量的可复用提示词插件 |
|
|
130
|
+
| **提示词文件编辑器** | ✅ | 编辑全局和项目级 CLAUDE.md / AGENTS.md,支持自动检测、路径切换与通用预设池。应用预设只更新编辑器,需手动保存才会写入文件。 |
|
|
131
|
+
| **MCP 集成** | ✅ | 通过 MCP stdio 暴露本地工具与资源 |
|
|
132
|
+
| **自动更新** | ✅ | 通过 `codexmate update` 快速更新 CLI |
|
|
127
133
|
|
|
128
134
|
---
|
|
129
135
|
|
|
@@ -168,6 +174,9 @@ flowchart TD
|
|
|
168
174
|
|
|
169
175
|
## 特别鸣谢
|
|
170
176
|
|
|
177
|
+
> [!IMPORTANT]
|
|
178
|
+
> 本项目目前处于早期开发阶段。我们正在寻找开发者共同构建本地智能体生态!
|
|
179
|
+
|
|
171
180
|
感谢所有贡献者对 Codex Mate 的辛勤付出 ❤️
|
|
172
181
|
|
|
173
182
|
<a href="https://github.com/SakuraByteCore/codexmate/graphs/contributors">
|
package/cli/config-bootstrap.js
CHANGED
|
@@ -17,10 +17,8 @@ function createConfigBootstrapController(deps = {}) {
|
|
|
17
17
|
writeModels,
|
|
18
18
|
readCurrentModels,
|
|
19
19
|
writeCurrentModels,
|
|
20
|
-
updateAuthJson,
|
|
21
20
|
CONFIG_DIR,
|
|
22
21
|
CONFIG_FILE,
|
|
23
|
-
AUTH_FILE,
|
|
24
22
|
MODELS_FILE,
|
|
25
23
|
RECENT_CONFIGS_FILE,
|
|
26
24
|
INIT_MARK_FILE,
|
|
@@ -49,10 +47,8 @@ function createConfigBootstrapController(deps = {}) {
|
|
|
49
47
|
if (typeof writeModels !== 'function') throw new Error('createConfigBootstrapController 缺少 writeModels');
|
|
50
48
|
if (typeof readCurrentModels !== 'function') throw new Error('createConfigBootstrapController 缺少 readCurrentModels');
|
|
51
49
|
if (typeof writeCurrentModels !== 'function') throw new Error('createConfigBootstrapController 缺少 writeCurrentModels');
|
|
52
|
-
if (typeof updateAuthJson !== 'function') throw new Error('createConfigBootstrapController 缺少 updateAuthJson');
|
|
53
50
|
if (!CONFIG_DIR) throw new Error('createConfigBootstrapController 缺少 CONFIG_DIR');
|
|
54
51
|
if (!CONFIG_FILE) throw new Error('createConfigBootstrapController 缺少 CONFIG_FILE');
|
|
55
|
-
if (!AUTH_FILE) throw new Error('createConfigBootstrapController 缺少 AUTH_FILE');
|
|
56
52
|
if (!MODELS_FILE) throw new Error('createConfigBootstrapController 缺少 MODELS_FILE');
|
|
57
53
|
if (!RECENT_CONFIGS_FILE) throw new Error('createConfigBootstrapController 缺少 RECENT_CONFIGS_FILE');
|
|
58
54
|
if (!INIT_MARK_FILE) throw new Error('createConfigBootstrapController 缺少 INIT_MARK_FILE');
|
|
@@ -131,6 +127,7 @@ base_url = "http://127.0.0.1:3737/bridge/local/v1"
|
|
|
131
127
|
wire_api = "responses"
|
|
132
128
|
requires_openai_auth = true
|
|
133
129
|
preferred_auth_method = "codexmate"
|
|
130
|
+
experimental_bearer_token = "codexmate"
|
|
134
131
|
codexmate_bridge = "local"
|
|
135
132
|
request_max_retries = 4
|
|
136
133
|
stream_max_retries = 10
|
|
@@ -181,7 +178,7 @@ stream_idle_timeout_ms = 300000
|
|
|
181
178
|
// Check if [model_providers.local] section already exists
|
|
182
179
|
if (/\[model_providers\.local\]/.test(content)) return;
|
|
183
180
|
|
|
184
|
-
const localSection = `\n[model_providers.local]\nname = "local"\nbase_url = "http://127.0.0.1:3737/bridge/local/v1"\nwire_api = "responses"\nrequires_openai_auth = true\npreferred_auth_method = "codexmate"\ncodexmate_bridge = "local"\nrequest_max_retries = 4\nstream_max_retries = 10\nstream_idle_timeout_ms = 300000\n`;
|
|
181
|
+
const localSection = `\n[model_providers.local]\nname = "local"\nbase_url = "http://127.0.0.1:3737/bridge/local/v1"\nwire_api = "responses"\nrequires_openai_auth = true\npreferred_auth_method = "codexmate"\nexperimental_bearer_token = "codexmate"\ncodexmate_bridge = "local"\nrequest_max_retries = 4\nstream_max_retries = 10\nstream_idle_timeout_ms = 300000\n`;
|
|
185
182
|
fs.appendFileSync(CONFIG_FILE, localSection, 'utf-8');
|
|
186
183
|
}
|
|
187
184
|
|
|
@@ -263,10 +260,6 @@ stream_idle_timeout_ms = 300000
|
|
|
263
260
|
currentModels[defaultProvider] = defaultModel;
|
|
264
261
|
writeCurrentModels(currentModels);
|
|
265
262
|
}
|
|
266
|
-
|
|
267
|
-
if (!fs.existsSync(AUTH_FILE)) {
|
|
268
|
-
updateAuthJson('');
|
|
269
|
-
}
|
|
270
263
|
}
|
|
271
264
|
|
|
272
265
|
function writeInitMark(payload) {
|
package/cli/session-usage.js
CHANGED
|
@@ -15,7 +15,7 @@ async function listSessionUsageCore(params = {}, deps = {}) {
|
|
|
15
15
|
SESSION_BROWSE_SUMMARY_READ_BYTES
|
|
16
16
|
} = deps;
|
|
17
17
|
|
|
18
|
-
const source = params.source === 'codex' || params.source === 'claude' || params.source === 'gemini' || params.source === 'codebuddy' || params.source === 'workbuddy' || params.source === 'pi' || params.source === 'opencode'
|
|
18
|
+
const source = params.source === 'codex' || params.source === 'claude' || params.source === 'gemini' || params.source === 'codebuddy' || params.source === 'workbuddy' || params.source === 'pi' || params.source === 'opencode' || params.source === 'zed'
|
|
19
19
|
? params.source
|
|
20
20
|
: 'all';
|
|
21
21
|
const rawLimit = Number(params.limit);
|
|
@@ -63,7 +63,7 @@ async function listSessionUsageCore(params = {}, deps = {}) {
|
|
|
63
63
|
return normalized;
|
|
64
64
|
}
|
|
65
65
|
|
|
66
|
-
if (normalized.source === 'opencode') {
|
|
66
|
+
if (normalized.source === 'opencode' || normalized.source === 'zed') {
|
|
67
67
|
return normalized;
|
|
68
68
|
}
|
|
69
69
|
const filePath = typeof normalized.filePath === 'string' ? normalized.filePath.trim() : '';
|