DeepSeek Harness 插件

omicverse/dsh-omicos

Star 数 ★ 0 分类 工具与能力 收录于 2026-08-18 npm @omicverse/dsh-omicos

在持久 Python 内核里跑 OmicVerse/OmicOS 生信分析,附能力目录检索、内核变量查看与账号订阅页签。

安装

# npm 包(预构建)

dsh plugin --profile web add @omicverse/dsh-omicos

# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)

dsh plugin --profile web add github:omicverse/dsh-omicos

装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本。请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。

README

Run OmicVerse/OmicOS bioinformatics analyses from inside DeepSeek Harness. The dsh agent keeps the wheel; this plugin gives it a persistent Python kernel (scanpy / omicverse / R) plus the catalog of analysis skills that OmicOS ships.

中文简介:把 OmicOS 的生信分析能力接进 dsh。DeepSeek 负责对话与规划, OmicOS 负责跑分析——持久 Python 内核,adata 等状态跨轮累积; 另带账号/订阅标签页与实时执行过程可视化。

dsh plugin --profile web add @omicverse/dsh-omicos

Tools

One tool runs an analysis; the rest are direct reads of the local kernel that cost neither a turn nor a token.

Tool What it does
omicos_analyze Runs a full OmicOS turn in a persistent kernel bound to the workspace. Repeated calls in one dsh session land on the same OmicOS conversation, so state accumulates. background: true hands it to ctx.jobs with live tqdm progress.
omicos_capabilities Searches the installed skill/agent catalog (several hundred skills and ~100 agents on a full install) and returns a ranked, bounded projection. Use it to decide whether a task is worth delegating. Omit the query for a category overview.
omicos_list_variables What currently lives in the kernel — name, type, shape, size.
omicos_query_variable One variable in detail. For an AnnData this includes the preprocessing state (is_int / is_normalized / is_log1p / is_scaled), which is what decides whether the next step is legal.
omicos_list_generated_files Every file the analyses of this conversation produced.

Commands

/omicos-help (what the plugin adds, and where to look), /omicos-login (device-code pairing — sign in with phone or email in the browser), /omicos-status, /omicos-account, /omicos-logout, /omicos-stop-kernel.

Deliberately short: commands are for what the agent cannot do for you. Listing variables, browsing capabilities or finding outputs is better asked of the agent, which has tools for exactly that.

UI

The client bundle adds two surfaces to the web profile:

  • an OmicOS tab next to the conversation — a small console: sign-in state, plan and expiry with links to subscribe or manage; which kernels are attached, where, at what version, and what is bound in them right now; and a search box over the installed capability catalog;
  • a live tool view on omicos_analyze calls — the steps, tool calls and stdout tail as the analysis runs, instead of a spinner that ends in a wall of text. Generated figures render in the settled card.

If dsh-better-sidebar is installed, an "OmicOS 产物" tab is registered there too; the integration is optional and detected at runtime.

Requirements

  • omicos-core comes with the install. @omicverse/omicos is a dependency, so the ~21 MB platform binary lands in node_modules alongside the plugin rather than being fetched by npx in the middle of your first tool call. At run time the plugin still attaches to a kernel you already have running (desktop app or terminal) if there is one, spawns the bundled binary only when there is not, and only ever stops a kernel it started itself.
  • An OmicOS account for cloud-backed models and the higher plan tiers. Sign in with /omicos-login; no token is ever persisted by this plugin — the approved login is handed to the local core, which keeps it.
  • dsh 0.1.0-rc.6. Note that some @deepseek-ai/dsh-* packages have a stale latest dist-tag pointing at 0.0.1-rc.x, so every dsh dependency here is pinned exactly.

Configuration

Override in your profile's own cordis.patch.yml. A patch replaces the row's whole config — there is no deep merge — so restate every key you care about:

- id: omicos
  config:
    workspace: /path/to/project   # '' = follow each dsh session's own cwd
    autoStart: true               # spawn a kernel when none is attachable
    upstreamBaseUrl: https://auth.omicos.cn
    npmRegistry: ''               # mirror knob for the kernel spawn

Security posture

  • Tools run in core with permission_mode: "full". A single-shot tool result has no room for a mid-flight approval prompt, and blocking on one deadlocks the turn; bridging dsh's approval UI into an OmicOS turn is planned, not done.
  • Catalog search projects before it answers: the skill source_path (an absolute local path) and the verbatim use_when routing text are indexed but never returned, so they do not travel to the model.
  • The plugin's HTTP routes are pinned to loopback.

Development

pnpm install
pnpm build       # tsc + the client bundle
pnpm typecheck
pnpm test        # 89 tests against the real dsh defineTool and a mock core

This package publishes as ONE dependency-light artifact: the @omicverse/omicos-* SDK is inlined by esbuild.host.mjs and kept as devDependencies, while @deepseek-ai/* stays external (the harness supplies it, and a second copy of Schema would fail config validation) and @omicverse/omicos stays a real dependency (it is spawned as a child process, never imported).

src/host/dsh-compat.ts is the only module allowed to import @deepseek-ai/*. bridge.ts / kernel.ts / runner.ts / auth.ts have no dsh dependency at all, so a dsh API change is absorbed in the compat layer plus tools.ts, commands.ts and index.ts.

GPL-3.0-only

内容来自项目 README(GitHub)↗

链接

同类插件

查看整个分类 →