@luffysolution/omnischolar-pi 0.1.9 → 0.1.11
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 +28 -7
- package/README.zh-CN.md +28 -7
- package/docs/CONFIGURATION.en.md +3 -2
- package/docs/CONFIGURATION.md +3 -2
- package/docs/INSTALLATION.en.md +37 -9
- package/docs/INSTALLATION.md +37 -9
- package/docs/RESEARCH.en.md +3 -2
- package/docs/RESEARCH.md +3 -2
- package/host-configs/README.md +1 -1
- package/host-configs/hermes.yaml +2 -2
- package/host-configs/opencode.jsonc +1 -1
- package/host-configs/pi.md +1 -0
- package/host-configs/workbuddy.json +2 -2
- package/omnischolar.config.example.json +1 -0
- package/package.json +1 -1
- package/pi-extension/dist/index.js +2 -2
package/README.md
CHANGED
|
@@ -44,6 +44,13 @@ omnischolar --version
|
|
|
44
44
|
omnischolar doctor --json
|
|
45
45
|
```
|
|
46
46
|
|
|
47
|
+
Update or uninstall the Python command:
|
|
48
|
+
|
|
49
|
+
```sh
|
|
50
|
+
uv tool upgrade luffysolution-omnischolar
|
|
51
|
+
uv tool uninstall luffysolution-omnischolar
|
|
52
|
+
```
|
|
53
|
+
|
|
47
54
|
## Connect an agent
|
|
48
55
|
|
|
49
56
|
### Codex app and Codex CLI plugin
|
|
@@ -57,13 +64,13 @@ codex plugin add omnischolar@omnischolar
|
|
|
57
64
|
|
|
58
65
|
In the ChatGPT desktop app, restart the app, open **Plugins**, select the **OmniScholar** marketplace, and install or enable **OmniScholar**. In Codex CLI, run `/plugins` to browse the same marketplace.
|
|
59
66
|
|
|
60
|
-
The plugin bundles all eight Skills and starts its local MCP server
|
|
67
|
+
The plugin bundles all eight Skills and starts its local MCP server from the latest PyPI release:
|
|
61
68
|
|
|
62
69
|
```sh
|
|
63
|
-
uvx --from luffysolution-omnischolar
|
|
70
|
+
uvx --from luffysolution-omnischolar@latest omnischolar mcp
|
|
64
71
|
```
|
|
65
72
|
|
|
66
|
-
No separate `pip install` is required for this plugin path.
|
|
73
|
+
No separate `pip install` is required for this plugin path. `@latest` asks `uvx` to resolve the latest package instead of pinning this plugin to a release number. Provider credentials and optional service settings remain in your OmniScholar configuration; plugin installation does not collect them.
|
|
67
74
|
|
|
68
75
|
### Claude Code plugin
|
|
69
76
|
|
|
@@ -79,9 +86,10 @@ For scripts or a regular terminal, use the non-interactive shell commands:
|
|
|
79
86
|
```sh
|
|
80
87
|
claude plugin marketplace add luffysolution-svg/omnischolar
|
|
81
88
|
claude plugin install omnischolar@omnischolar --scope user
|
|
89
|
+
claude plugin update omnischolar@omnischolar --scope user
|
|
82
90
|
```
|
|
83
91
|
|
|
84
|
-
Run `/reload-plugins` if the install summary asks for it, then start a new session. The plugin automatically starts the
|
|
92
|
+
Run `/reload-plugins` if the install summary asks for it, then start a new session. The plugin automatically starts the latest `uvx` MCP server and exposes namespaced Skills such as `/omnischolar:scholar-search`. No separate Python installation is required.
|
|
85
93
|
|
|
86
94
|
### Host configuration installer
|
|
87
95
|
|
|
@@ -104,20 +112,33 @@ For Pi, the full installer runs `pi install npm:@luffysolution/omnischolar-pi` a
|
|
|
104
112
|
|
|
105
113
|
```sh
|
|
106
114
|
pi install npm:@luffysolution/omnischolar-pi
|
|
115
|
+
pi update npm:@luffysolution/omnischolar-pi
|
|
116
|
+
pi remove npm:@luffysolution/omnischolar-pi
|
|
107
117
|
```
|
|
108
118
|
|
|
109
119
|
WorkBuddy/CodeBuddy uses `~/.codebuddy/.mcp.json` for user scope and `.mcp.json` for project scope. It does not publish a portable Skills path, so its installer configures MCP and reports Skills as `manual_required`.
|
|
110
120
|
|
|
111
|
-
The MCP command is:
|
|
121
|
+
The direct latest MCP command is:
|
|
112
122
|
|
|
113
123
|
```sh
|
|
114
|
-
omnischolar mcp
|
|
124
|
+
uvx --from luffysolution-omnischolar@latest omnischolar mcp
|
|
115
125
|
```
|
|
116
126
|
|
|
117
127
|
Normally the agent starts this process from its MCP configuration. The installer checks `initialize`, `tools/list`, and `omnischolar_status` after writing a supported configuration.
|
|
118
128
|
|
|
119
129
|
Full host and update instructions are in [Installation](docs/INSTALLATION.en.md).
|
|
120
130
|
|
|
131
|
+
### Standalone Skills CLI
|
|
132
|
+
|
|
133
|
+
Plugins already bundle their declared Skills. Use the official Skills CLI separately when you want to install the repository's Skills directly into an agent:
|
|
134
|
+
|
|
135
|
+
```sh
|
|
136
|
+
# User scope; replace codex with claude-code, pi, cursor, or another supported agent
|
|
137
|
+
npx skills add luffysolution-svg/omnischolar --skill '*' --agent codex --global --yes
|
|
138
|
+
npx skills update --global --yes
|
|
139
|
+
npx skills remove --skill '*' --agent codex --global --yes
|
|
140
|
+
```
|
|
141
|
+
|
|
121
142
|
## Try it
|
|
122
143
|
|
|
123
144
|
```text
|
|
@@ -136,7 +157,7 @@ Create a labelled illustration of this mechanism. Treat it as a draft, not exper
|
|
|
136
157
|
|
|
137
158
|
On the first MCP start or installer run, if no discoverable config exists, OmniScholar creates a complete user-level `omnischolar.config.json` template with all service sections and credential fields. You can also create it explicitly with `omnischolar config init`. API keys may be entered directly as `apiKey`; `apiKeyEnv` is an optional alternative when you prefer environment variables.
|
|
138
159
|
|
|
139
|
-
Customize the Obsidian output location and
|
|
160
|
+
Customize the Obsidian output location, paper folders, Markdown files, and parsed image assets with `output.rootDirectory`, `output.literatureDirectory`, `output.folderNameTemplate`, `output.filenameTemplate`, `output.filenameSeparator`, and `output.assetFilenameTemplate`; see [literature and output configuration](docs/RESEARCH.en.md).
|
|
140
161
|
|
|
141
162
|
A small local configuration can start with Zotero and the output directory:
|
|
142
163
|
|
package/README.zh-CN.md
CHANGED
|
@@ -42,6 +42,13 @@ omnischolar --version
|
|
|
42
42
|
omnischolar doctor --json
|
|
43
43
|
```
|
|
44
44
|
|
|
45
|
+
更新或卸载 Python 命令:
|
|
46
|
+
|
|
47
|
+
```sh
|
|
48
|
+
uv tool upgrade luffysolution-omnischolar
|
|
49
|
+
uv tool uninstall luffysolution-omnischolar
|
|
50
|
+
```
|
|
51
|
+
|
|
45
52
|
## 连接 Agent
|
|
46
53
|
|
|
47
54
|
### Codex App 与 Codex CLI 插件安装
|
|
@@ -55,13 +62,13 @@ codex plugin add omnischolar@omnischolar
|
|
|
55
62
|
|
|
56
63
|
在 ChatGPT 桌面应用中重启应用,打开 **Plugins**,选择 **OmniScholar** Marketplace,然后安装或启用 **OmniScholar**。在 Codex CLI 中可运行 `/plugins` 浏览同一 Marketplace。
|
|
57
64
|
|
|
58
|
-
插件会同时安装 8 个 Skills
|
|
65
|
+
插件会同时安装 8 个 Skills,并从 PyPI 最新版本启动本地 MCP:
|
|
59
66
|
|
|
60
67
|
```sh
|
|
61
|
-
uvx --from luffysolution-omnischolar
|
|
68
|
+
uvx --from luffysolution-omnischolar@latest omnischolar mcp
|
|
62
69
|
```
|
|
63
70
|
|
|
64
|
-
采用插件安装方式时无需另外执行 `pip install
|
|
71
|
+
采用插件安装方式时无需另外执行 `pip install`。`@latest` 会让 `uvx` 解析最新包,不把插件锁死在某个版本号。各服务的凭据与可选配置仍保存在 OmniScholar 配置中,插件安装不会收集这些信息。
|
|
65
72
|
|
|
66
73
|
### Claude Code 插件安装
|
|
67
74
|
|
|
@@ -77,9 +84,10 @@ uvx --from luffysolution-omnischolar==0.1.9 omnischolar mcp
|
|
|
77
84
|
```sh
|
|
78
85
|
claude plugin marketplace add luffysolution-svg/omnischolar
|
|
79
86
|
claude plugin install omnischolar@omnischolar --scope user
|
|
87
|
+
claude plugin update omnischolar@omnischolar --scope user
|
|
80
88
|
```
|
|
81
89
|
|
|
82
|
-
如果安装结果提示需要重新加载,请运行 `/reload-plugins
|
|
90
|
+
如果安装结果提示需要重新加载,请运行 `/reload-plugins`,然后新建会话。插件会自动启动最新的 `uvx` MCP,并提供 `/omnischolar:scholar-search` 等带命名空间的 Skills,无需另行安装 Python 包。
|
|
83
91
|
|
|
84
92
|
### Agent 配置安装器
|
|
85
93
|
|
|
@@ -102,20 +110,33 @@ omnischolar uninstall cursor --scope project
|
|
|
102
110
|
|
|
103
111
|
```sh
|
|
104
112
|
pi install npm:@luffysolution/omnischolar-pi
|
|
113
|
+
pi update npm:@luffysolution/omnischolar-pi
|
|
114
|
+
pi remove npm:@luffysolution/omnischolar-pi
|
|
105
115
|
```
|
|
106
116
|
|
|
107
117
|
WorkBuddy/CodeBuddy 的用户级配置位于 `~/.codebuddy/.mcp.json`,项目级配置位于 `.mcp.json`。其官方文档没有给出可移植的 Skills 目录,因此安装器会配置 MCP,并将 Skills 状态报告为 `manual_required`。
|
|
108
118
|
|
|
109
|
-
|
|
119
|
+
直接运行最新 MCP 的命令为:
|
|
110
120
|
|
|
111
121
|
```sh
|
|
112
|
-
omnischolar mcp
|
|
122
|
+
uvx --from luffysolution-omnischolar@latest omnischolar mcp
|
|
113
123
|
```
|
|
114
124
|
|
|
115
125
|
通常无需手动运行,Agent 会根据 MCP 配置启动该进程。安装器写入受支持的配置后,会检查 `initialize`、`tools/list` 和 `omnischolar_status`。
|
|
116
126
|
|
|
117
127
|
各 Agent 的路径、更新和卸载方法见[安装说明](docs/INSTALLATION.md)。
|
|
118
128
|
|
|
129
|
+
### 独立安装 Skills
|
|
130
|
+
|
|
131
|
+
插件已经包含其声明的 Skills。如果需要把仓库 Skills 独立安装到 Agent,可使用官方 Skills CLI:
|
|
132
|
+
|
|
133
|
+
```sh
|
|
134
|
+
# 用户级安装;将 codex 换成 claude-code、pi、cursor 或其他受支持 Agent
|
|
135
|
+
npx skills add luffysolution-svg/omnischolar --skill '*' --agent codex --global --yes
|
|
136
|
+
npx skills update --global --yes
|
|
137
|
+
npx skills remove --skill '*' --agent codex --global --yes
|
|
138
|
+
```
|
|
139
|
+
|
|
119
140
|
## 使用示例
|
|
120
141
|
|
|
121
142
|
```text
|
|
@@ -134,7 +155,7 @@ omnischolar mcp
|
|
|
134
155
|
|
|
135
156
|
首次启动 MCP 或执行安装命令时,如果没有可发现的配置,程序会在用户配置目录自动创建包含所有服务区块和认证字段的完整 `omnischolar.config.json` 模板。也可以用 `omnischolar config init` 主动创建。API key 可以直接填写在配置文件的 `apiKey` 中;如果希望使用环境变量,也可以填写 `apiKeyEnv`。
|
|
136
157
|
|
|
137
|
-
文献导入到 Obsidian
|
|
158
|
+
文献导入到 Obsidian 的位置、文件夹、Markdown 文件和图片附件命名可通过 `output.rootDirectory`、`output.literatureDirectory`、`output.folderNameTemplate`、`output.filenameTemplate`、`output.filenameSeparator` 和 `output.assetFilenameTemplate` 自定义,详见[文献与输出配置](docs/RESEARCH.md)。
|
|
138
159
|
|
|
139
160
|
最小的本地配置可以只写 Zotero 和输出目录:
|
|
140
161
|
|
package/docs/CONFIGURATION.en.md
CHANGED
|
@@ -46,14 +46,15 @@ The new-paper subfolder and file name can be customized as well:
|
|
|
46
46
|
"output": {
|
|
47
47
|
"rootDirectory": "F:/Personal Knowledge Base",
|
|
48
48
|
"literatureDirectory": "Literature/Parsed",
|
|
49
|
+
"folderNameTemplate": "{author}{separator}{year}",
|
|
49
50
|
"filenameTemplate": "{year}{separator}{author}{separator}{title}",
|
|
50
51
|
"filenameSeparator": "+",
|
|
51
|
-
"assetFilenameTemplate": "figure
|
|
52
|
+
"assetFilenameTemplate": "figure{separator}{index}{separator}{original}{extension}"
|
|
52
53
|
}
|
|
53
54
|
}
|
|
54
55
|
```
|
|
55
56
|
|
|
56
|
-
|
|
57
|
+
Paper and folder templates support `{author}`, `{year}`, `{title}`, and `{separator}`; `folderNameTemplate` controls each paper directory name. The shared separator accepts `-`, `+`, and `_` and is available to paper, folder, and attachment templates. Attachment filenames support `{index}`, `{original}`, `{extension}`, and `{separator}`. These settings affect new publications only; existing sync records keep the path stored in the manifest. Here, attachment means a parsed image asset, not the original Zotero PDF attachment.
|
|
57
58
|
|
|
58
59
|
## API keys
|
|
59
60
|
|
package/docs/CONFIGURATION.md
CHANGED
|
@@ -46,14 +46,15 @@ OmniScholar 使用 `schemaVersion: 1` 的 JSON 配置。可直接复制根目录
|
|
|
46
46
|
"output": {
|
|
47
47
|
"rootDirectory": "F:/个人知识库",
|
|
48
48
|
"literatureDirectory": "文献/已解析",
|
|
49
|
+
"folderNameTemplate": "{author}{separator}{year}",
|
|
49
50
|
"filenameTemplate": "{year}{separator}{author}{separator}{title}",
|
|
50
51
|
"filenameSeparator": "+",
|
|
51
|
-
"assetFilenameTemplate": "figure
|
|
52
|
+
"assetFilenameTemplate": "figure{separator}{index}{separator}{original}{extension}"
|
|
52
53
|
}
|
|
53
54
|
}
|
|
54
55
|
```
|
|
55
56
|
|
|
56
|
-
|
|
57
|
+
文献和文件夹模板支持 `{author}`、`{year}`、`{title}`、`{separator}`;`folderNameTemplate` 控制每篇文献目录名。连接符目前支持 `-`、`+` 和 `_`,并由文献、文件夹、附件模板共用。附件图片模板支持 `{index}`、`{original}`、`{extension}`、`{separator}`。这些设置只影响新建文献,已有同步记录沿用 manifest 中的路径。这里的附件图片是解析生成的图片,不是 Zotero 原始 PDF 附件。
|
|
57
58
|
|
|
58
59
|
## API key
|
|
59
60
|
|
package/docs/INSTALLATION.en.md
CHANGED
|
@@ -12,6 +12,13 @@ pipx install luffysolution-omnischolar
|
|
|
12
12
|
python -m pip install luffysolution-omnischolar
|
|
13
13
|
```
|
|
14
14
|
|
|
15
|
+
Update or uninstall the Python command:
|
|
16
|
+
|
|
17
|
+
```sh
|
|
18
|
+
uv tool upgrade luffysolution-omnischolar
|
|
19
|
+
uv tool uninstall luffysolution-omnischolar
|
|
20
|
+
```
|
|
21
|
+
|
|
15
22
|
For development from a source checkout, replace the package name with `.`.
|
|
16
23
|
|
|
17
24
|
Check the command:
|
|
@@ -21,7 +28,7 @@ omnischolar --version
|
|
|
21
28
|
omnischolar doctor --json
|
|
22
29
|
```
|
|
23
30
|
|
|
24
|
-
The Python command installation above is optional when you use the Codex plugin path below. The plugin runs the
|
|
31
|
+
The Python command installation above is optional when you use the Codex plugin path below. The plugin runs the latest PyPI package through `uvx` instead.
|
|
25
32
|
|
|
26
33
|
## Install in the Codex app or Codex CLI
|
|
27
34
|
|
|
@@ -44,13 +51,20 @@ Restart the ChatGPT desktop app after adding the marketplace. Open **Plugins**,
|
|
|
44
51
|
The installed plugin contains `plugin.json`, `skills/`, and `mcp.json`. Its MCP entry executes:
|
|
45
52
|
|
|
46
53
|
```sh
|
|
47
|
-
uvx --from luffysolution-omnischolar
|
|
54
|
+
uvx --from luffysolution-omnischolar@latest omnischolar mcp
|
|
48
55
|
```
|
|
49
56
|
|
|
50
|
-
`uvx` creates an isolated environment and
|
|
57
|
+
`uvx` creates an isolated environment and runs the latest package requested by `@latest`, so this route does not require a separate `pip install`. To force a package-cache refresh, run:
|
|
58
|
+
|
|
59
|
+
```sh
|
|
60
|
+
uvx --refresh-package luffysolution-omnischolar --from luffysolution-omnischolar@latest omnischolar mcp
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
To update the Codex Git marketplace and plugin, run:
|
|
51
64
|
|
|
52
65
|
```sh
|
|
53
66
|
codex plugin marketplace upgrade omnischolar
|
|
67
|
+
codex plugin add omnischolar@omnischolar
|
|
54
68
|
```
|
|
55
69
|
|
|
56
70
|
To uninstall the plugin or remove its marketplace source:
|
|
@@ -80,10 +94,10 @@ claude plugin install omnischolar@omnischolar --scope user
|
|
|
80
94
|
|
|
81
95
|
Choose `--scope project` to share the enabled plugin through repository settings, or `--scope local` to enable it only for yourself in the current repository. If Claude reports `Run /reload-plugins to activate`, run that command before using the plugin.
|
|
82
96
|
|
|
83
|
-
Claude Code copies the repository-root plugin into its versioned cache, discovers the eight folders under `skills/`, and starts `.mcp.json` automatically when the plugin is enabled. The MCP command
|
|
97
|
+
Claude Code copies the repository-root plugin into its versioned cache, discovers the eight folders under `skills/`, and starts `.mcp.json` automatically when the plugin is enabled. The MCP command uses the latest PyPI package:
|
|
84
98
|
|
|
85
99
|
```sh
|
|
86
|
-
uvx --from luffysolution-omnischolar
|
|
100
|
+
uvx --from luffysolution-omnischolar@latest omnischolar mcp
|
|
87
101
|
```
|
|
88
102
|
|
|
89
103
|
The first MCP start needs package-index access. Skills are namespaced with `omnischolar`, for example `/omnischolar:scholar-search` and `/omnischolar:zotero-research`.
|
|
@@ -92,6 +106,7 @@ Update or remove the installation with:
|
|
|
92
106
|
|
|
93
107
|
```sh
|
|
94
108
|
claude plugin marketplace update omnischolar
|
|
109
|
+
claude plugin update omnischolar@omnischolar --scope user
|
|
95
110
|
claude plugin uninstall omnischolar@omnischolar --scope user
|
|
96
111
|
claude plugin marketplace remove omnischolar
|
|
97
112
|
```
|
|
@@ -121,7 +136,13 @@ omnischolar install cursor --scope project
|
|
|
121
136
|
| Pi | npm Extension | npm Extension | supported |
|
|
122
137
|
| WorkBuddy/CodeBuddy | `~/.codebuddy/.mcp.json` | `.mcp.json` | no documented portable path |
|
|
123
138
|
|
|
124
|
-
For Pi, `omnischolar install pi` installs `npm:@luffysolution/omnischolar-pi` with Pi's package manager and copies the Skills to the selected scope. The Extension starts the
|
|
139
|
+
For Pi, `omnischolar install pi` installs the latest `npm:@luffysolution/omnischolar-pi` with Pi's package manager and copies the Skills to the selected scope. The Extension starts the latest PyPI MCP through `uvx`, so only `uv` must be on `PATH`; a separate global Python CLI installation is not required. To manage the Pi Extension directly:
|
|
140
|
+
|
|
141
|
+
```sh
|
|
142
|
+
pi install npm:@luffysolution/omnischolar-pi
|
|
143
|
+
pi update npm:@luffysolution/omnischolar-pi
|
|
144
|
+
pi remove npm:@luffysolution/omnischolar-pi
|
|
145
|
+
```
|
|
125
146
|
|
|
126
147
|
WorkBuddy/CodeBuddy supports local stdio MCP servers. Its official documentation does not define a portable Skills directory, so only the MCP component is installed automatically.
|
|
127
148
|
|
|
@@ -162,11 +183,18 @@ omnischolar npx-skills cursor
|
|
|
162
183
|
For example:
|
|
163
184
|
|
|
164
185
|
```sh
|
|
165
|
-
|
|
186
|
+
# User scope: replace codex with claude-code, pi, cursor, or another supported agent
|
|
187
|
+
npx skills add luffysolution-svg/omnischolar --skill '*' -a codex -g -y
|
|
188
|
+
npx skills update -g -y
|
|
189
|
+
npx skills remove --skill '*' -a codex -g -y
|
|
190
|
+
|
|
191
|
+
# Project scope: omit -g; use project scope for update and removal too
|
|
192
|
+
npx skills add luffysolution-svg/omnischolar --skill '*' -a codex -y
|
|
166
193
|
npx skills update -p -y
|
|
194
|
+
npx skills remove --skill '*' -a codex -y
|
|
167
195
|
```
|
|
168
196
|
|
|
169
|
-
These commands install Skills only; they do not install the `omnischolar` Python command.
|
|
197
|
+
These commands install Skills only; they do not install the `omnischolar` Python command. The Codex/Claude plugin or Pi full installer already handles its corresponding Skills, so do not install the same Skills twice.
|
|
170
198
|
|
|
171
199
|
## If MCP does not connect
|
|
172
200
|
|
|
@@ -179,5 +207,5 @@ These commands install Skills only; they do not install the `omnischolar` Python
|
|
|
179
207
|
The only MCP server entry in this release is local stdio:
|
|
180
208
|
|
|
181
209
|
```sh
|
|
182
|
-
omnischolar mcp
|
|
210
|
+
uvx --from luffysolution-omnischolar@latest omnischolar mcp
|
|
183
211
|
```
|
package/docs/INSTALLATION.md
CHANGED
|
@@ -12,6 +12,13 @@ pipx install luffysolution-omnischolar
|
|
|
12
12
|
python -m pip install luffysolution-omnischolar
|
|
13
13
|
```
|
|
14
14
|
|
|
15
|
+
更新或卸载 Python 命令:
|
|
16
|
+
|
|
17
|
+
```sh
|
|
18
|
+
uv tool upgrade luffysolution-omnischolar
|
|
19
|
+
uv tool uninstall luffysolution-omnischolar
|
|
20
|
+
```
|
|
21
|
+
|
|
15
22
|
如需从源码开发安装,请将包名替换为 `.`。
|
|
16
23
|
|
|
17
24
|
验证命令是否可用:
|
|
@@ -21,7 +28,7 @@ omnischolar --version
|
|
|
21
28
|
omnischolar doctor --json
|
|
22
29
|
```
|
|
23
30
|
|
|
24
|
-
如果采用下面的 Codex 插件安装方式,则无需预先安装上述 Python 命令;插件会通过 `uvx`
|
|
31
|
+
如果采用下面的 Codex 插件安装方式,则无需预先安装上述 Python 命令;插件会通过 `uvx` 运行 PyPI 最新包。
|
|
25
32
|
|
|
26
33
|
## 安装到 Codex App 或 Codex CLI
|
|
27
34
|
|
|
@@ -44,13 +51,20 @@ codex plugin add omnischolar@omnischolar
|
|
|
44
51
|
安装后的插件包含 `plugin.json`、`skills/` 和 `mcp.json`。其 MCP 配置执行:
|
|
45
52
|
|
|
46
53
|
```sh
|
|
47
|
-
uvx --from luffysolution-omnischolar
|
|
54
|
+
uvx --from luffysolution-omnischolar@latest omnischolar mcp
|
|
48
55
|
```
|
|
49
56
|
|
|
50
|
-
`uvx`
|
|
57
|
+
`uvx` 会创建隔离环境并运行 `@latest` 指定的最新包,无需另行运行 `pip install`。若需强制刷新包缓存,可运行:
|
|
58
|
+
|
|
59
|
+
```sh
|
|
60
|
+
uvx --refresh-package luffysolution-omnischolar --from luffysolution-omnischolar@latest omnischolar mcp
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
若要更新 Codex Git Marketplace 和插件:
|
|
51
64
|
|
|
52
65
|
```sh
|
|
53
66
|
codex plugin marketplace upgrade omnischolar
|
|
67
|
+
codex plugin add omnischolar@omnischolar
|
|
54
68
|
```
|
|
55
69
|
|
|
56
70
|
卸载插件或移除 Marketplace 来源:
|
|
@@ -80,10 +94,10 @@ claude plugin install omnischolar@omnischolar --scope user
|
|
|
80
94
|
|
|
81
95
|
使用 `--scope project` 可通过仓库设置与协作者共享启用状态;使用 `--scope local` 则只在当前仓库为自己启用。如果 Claude 提示 `Run /reload-plugins to activate`,请先运行该命令。
|
|
82
96
|
|
|
83
|
-
Claude Code 会把仓库根插件复制到版本化缓存,发现 `skills/` 下的 8 个 Skills,并在插件启用时自动启动 `.mcp.json`。MCP
|
|
97
|
+
Claude Code 会把仓库根插件复制到版本化缓存,发现 `skills/` 下的 8 个 Skills,并在插件启用时自动启动 `.mcp.json`。MCP 命令使用 PyPI 最新包:
|
|
84
98
|
|
|
85
99
|
```sh
|
|
86
|
-
uvx --from luffysolution-omnischolar
|
|
100
|
+
uvx --from luffysolution-omnischolar@latest omnischolar mcp
|
|
87
101
|
```
|
|
88
102
|
|
|
89
103
|
第一次启动 MCP 需要能够访问 Python 包索引。Skills 使用 `omnischolar` 命名空间,例如 `/omnischolar:scholar-search` 和 `/omnischolar:zotero-research`。
|
|
@@ -92,6 +106,7 @@ uvx --from luffysolution-omnischolar==0.1.9 omnischolar mcp
|
|
|
92
106
|
|
|
93
107
|
```sh
|
|
94
108
|
claude plugin marketplace update omnischolar
|
|
109
|
+
claude plugin update omnischolar@omnischolar --scope user
|
|
95
110
|
claude plugin uninstall omnischolar@omnischolar --scope user
|
|
96
111
|
claude plugin marketplace remove omnischolar
|
|
97
112
|
```
|
|
@@ -121,7 +136,13 @@ omnischolar install cursor --scope project
|
|
|
121
136
|
| Pi | npm Extension | npm Extension | 支持 |
|
|
122
137
|
| WorkBuddy/CodeBuddy | `~/.codebuddy/.mcp.json` | `.mcp.json` | 无官方可移植目录 |
|
|
123
138
|
|
|
124
|
-
对 Pi,`omnischolar install pi` 会通过 Pi
|
|
139
|
+
对 Pi,`omnischolar install pi` 会通过 Pi 包管理器安装最新的 `npm:@luffysolution/omnischolar-pi`,并把 Skills 复制到所选作用域。Extension 会通过 `uvx` 启动 PyPI 最新 MCP,因此只需保证 `uv` 位于 `PATH`,无需另行安装全局 Python 命令。直接管理 Pi Extension 时使用:
|
|
140
|
+
|
|
141
|
+
```sh
|
|
142
|
+
pi install npm:@luffysolution/omnischolar-pi
|
|
143
|
+
pi update npm:@luffysolution/omnischolar-pi
|
|
144
|
+
pi remove npm:@luffysolution/omnischolar-pi
|
|
145
|
+
```
|
|
125
146
|
|
|
126
147
|
WorkBuddy/CodeBuddy 支持本地 stdio MCP。其官方文档没有定义可移植的 Skills 目录,因此安装器只自动配置 MCP。
|
|
127
148
|
|
|
@@ -162,11 +183,18 @@ omnischolar npx-skills cursor
|
|
|
162
183
|
例如:
|
|
163
184
|
|
|
164
185
|
```sh
|
|
165
|
-
|
|
186
|
+
# 用户级安装:将 codex 替换为 claude-code、pi、cursor 或其他受支持 Agent
|
|
187
|
+
npx skills add luffysolution-svg/omnischolar --skill '*' -a codex -g -y
|
|
188
|
+
npx skills update -g -y
|
|
189
|
+
npx skills remove --skill '*' -a codex -g -y
|
|
190
|
+
|
|
191
|
+
# 项目级安装:省略 -g;更新和卸载也使用项目作用域
|
|
192
|
+
npx skills add luffysolution-svg/omnischolar --skill '*' -a codex -y
|
|
166
193
|
npx skills update -p -y
|
|
194
|
+
npx skills remove --skill '*' -a codex -y
|
|
167
195
|
```
|
|
168
196
|
|
|
169
|
-
这组命令只安装 Skills,不会安装 `omnischolar` Python
|
|
197
|
+
这组命令只安装 Skills,不会安装 `omnischolar` Python 命令。通过 Codex/Claude plugin 或 Pi Extension 安装时,插件/安装器已经处理了对应 Skills,不需要重复执行。
|
|
170
198
|
|
|
171
199
|
## MCP 连接失败
|
|
172
200
|
|
|
@@ -179,5 +207,5 @@ npx skills update -p -y
|
|
|
179
207
|
OmniScholar 的 MCP 入口只有本地 stdio:
|
|
180
208
|
|
|
181
209
|
```sh
|
|
182
|
-
omnischolar mcp
|
|
210
|
+
uvx --from luffysolution-omnischolar@latest omnischolar mcp
|
|
183
211
|
```
|
package/docs/RESEARCH.en.md
CHANGED
|
@@ -81,14 +81,15 @@ The output location and new-file naming can be customized in the global configur
|
|
|
81
81
|
"output": {
|
|
82
82
|
"rootDirectory": "F:/Personal Knowledge Base",
|
|
83
83
|
"literatureDirectory": "Literature/Parsed",
|
|
84
|
+
"folderNameTemplate": "{author}{separator}{year}",
|
|
84
85
|
"filenameTemplate": "{year}{separator}{author}{separator}{title}",
|
|
85
86
|
"filenameSeparator": "+",
|
|
86
|
-
"assetFilenameTemplate": "figure
|
|
87
|
+
"assetFilenameTemplate": "figure{separator}{index}{separator}{original}{extension}"
|
|
87
88
|
}
|
|
88
89
|
}
|
|
89
90
|
```
|
|
90
91
|
|
|
91
|
-
Supported paper filename variables are `{author}`, `{year}`, `{title}`, and `{separator}`; `filenameSeparator`
|
|
92
|
+
Supported paper filename variables are `{author}`, `{year}`, `{title}`, and `{separator}`; `folderNameTemplate` independently controls each paper directory name. `filenameSeparator` accepts `-`, `+`, and `_`, and is shared by paper, folder, and attachment templates. Attachment images support `assetFilenameTemplate` with `{index}`, `{original}`, `{extension}`, and `{separator}`. New papers are written under `rootDirectory/literatureDirectory`, with images under each paper directory's `assets/` folder. Existing manifest records keep their original paths so changing the configuration does not break incremental synchronization. Here, attachment images means parsed image assets, not the original Zotero PDF attachment.
|
|
92
93
|
|
|
93
94
|
`omnischolar_sync` shows a plan before writing under `output.rootDirectory`. The directory can be a regular folder or part of an Obsidian vault.
|
|
94
95
|
|
package/docs/RESEARCH.md
CHANGED
|
@@ -81,14 +81,15 @@ OmniScholar 不会自动把 Zotero 附件上传到 MinerU。应先确认具体
|
|
|
81
81
|
"output": {
|
|
82
82
|
"rootDirectory": "F:/个人知识库",
|
|
83
83
|
"literatureDirectory": "文献/已解析",
|
|
84
|
+
"folderNameTemplate": "{author}{separator}{year}",
|
|
84
85
|
"filenameTemplate": "{year}{separator}{author}{separator}{title}",
|
|
85
86
|
"filenameSeparator": "+",
|
|
86
|
-
"assetFilenameTemplate": "figure
|
|
87
|
+
"assetFilenameTemplate": "figure{separator}{index}{separator}{original}{extension}"
|
|
87
88
|
}
|
|
88
89
|
}
|
|
89
90
|
```
|
|
90
91
|
|
|
91
|
-
支持的文献文件名变量为 `{author}`、`{year}`、`{title}` 和 `{separator}`;`filenameSeparator` 当前支持
|
|
92
|
+
支持的文献文件名变量为 `{author}`、`{year}`、`{title}` 和 `{separator}`;`folderNameTemplate` 单独控制每篇文献目录名。`filenameSeparator` 当前支持 `-`、`+` 和 `_`,会同时提供给文献、文件夹和附件模板。附件图片支持 `assetFilenameTemplate`,变量为 `{index}`、`{original}`、`{extension}` 和 `{separator}`。新文献会写入 `rootDirectory/literatureDirectory`,图片放在每篇文献目录下的 `assets/`。已有 manifest 记录会沿用原路径,避免改配置后破坏增量同步。这里的附件图片是解析结果中的图片,不是 Zotero 原始 PDF 附件。
|
|
92
93
|
|
|
93
94
|
`omnischolar_sync` 会先给出计划,再写入 `output.rootDirectory`。该目录可以是普通文件夹,也可以位于 Obsidian Vault 中。
|
|
94
95
|
|
package/host-configs/README.md
CHANGED
|
@@ -8,4 +8,4 @@
|
|
|
8
8
|
- Pi: see `pi.md`; the npm Extension bridges the local MCP server
|
|
9
9
|
- WorkBuddy/CodeBuddy: merge `workbuddy.json` into `~/.codebuddy/.mcp.json` or project `.mcp.json`
|
|
10
10
|
|
|
11
|
-
All supported MCP entries start the
|
|
11
|
+
All supported MCP entries start the latest PyPI package with `uvx --from luffysolution-omnischolar@latest omnischolar mcp`. These files contain no provider credentials.
|
package/host-configs/hermes.yaml
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
mcp_servers:
|
|
2
2
|
omnischolar:
|
|
3
|
-
command: "
|
|
4
|
-
args: ["mcp"]
|
|
3
|
+
command: "uvx"
|
|
4
|
+
args: ["--from", "luffysolution-omnischolar@latest", "omnischolar", "mcp"]
|
|
5
5
|
# Optional: restrict exposure with tools.include or tools.exclude.
|
|
6
6
|
# Inherit OMNISCHOLAR_* and provider environment variables from Hermes.
|
package/host-configs/pi.md
CHANGED
|
@@ -6,6 +6,7 @@ OmniScholar uses the npm-published `@luffysolution/omnischolar-pi` Extension to
|
|
|
6
6
|
omnischolar install pi
|
|
7
7
|
# or install only the Extension with Pi's package manager
|
|
8
8
|
pi install npm:@luffysolution/omnischolar-pi
|
|
9
|
+
pi update npm:@luffysolution/omnischolar-pi
|
|
9
10
|
```
|
|
10
11
|
|
|
11
12
|
The Extension starts the matching PyPI MCP through `uvx`, discovers the server's tools, forwards calls and cancellation signals, and closes the MCP client when the Pi session ends. A separate global `omnischolar` command is not required; `uv` must be on `PATH`.
|
|
@@ -233,6 +233,7 @@
|
|
|
233
233
|
"output": {
|
|
234
234
|
"rootDirectory": "omnischolar-output",
|
|
235
235
|
"literatureDirectory": "Literatures",
|
|
236
|
+
"folderNameTemplate": "{author}{separator}{year}{separator}{title}",
|
|
236
237
|
"filenameTemplate": "{author}{separator}{year}{separator}{title}",
|
|
237
238
|
"filenameSeparator": "-",
|
|
238
239
|
"assetFilenameTemplate": "image-{index}{extension}",
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
|
|
2
2
|
import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js";
|
|
3
3
|
import { Type } from "typebox";
|
|
4
|
-
const CLIENT_INFO = { name: "omnischolar-pi", version: "0.1.
|
|
4
|
+
const CLIENT_INFO = { name: "omnischolar-pi", version: "0.1.11" };
|
|
5
5
|
export function resultText(result) {
|
|
6
6
|
return result.content
|
|
7
7
|
.map((item) => {
|
|
@@ -39,7 +39,7 @@ export default function omnischolarExtension(pi) {
|
|
|
39
39
|
connection = (async () => {
|
|
40
40
|
transport = new StdioClientTransport({
|
|
41
41
|
command: "uvx",
|
|
42
|
-
args: ["--from", "luffysolution-omnischolar
|
|
42
|
+
args: ["--from", "luffysolution-omnischolar@latest", "omnischolar", "mcp"],
|
|
43
43
|
stderr: "pipe",
|
|
44
44
|
});
|
|
45
45
|
client = new Client(CLIENT_INFO);
|