DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins
O

dsh-odoo

Odoo

适用于 DeepSeek Harness 的只读 Odoo 工具,并提供可选择启用的受限草稿创建工具。

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add github:maxmilian/dsh-odoo#ace35f23fedc86081bef06de79867be96026e8ae
README兼容性版本

兼容性与来源证明

Odoo 以 dsh-odoo 发布,当前版本为 0.1.1。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
any
发布来源
github
Registry 更新时间
2026/11/6

版本

0.1.1stable
2026/9/27
0.1.0stable
2026/8/26

相关插件

正在加载相关插件…

最新版
0.1.1
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
any
许可证
MIT
发布源
github
GitHub
★ 2
周下载
240
最近提交
2026/9/27
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题

相关插件

继续浏览 productivity-workflow 分类下经过校验的插件。

Client Ui Task Board@linxin666/dsh-client-ui-task-board面向 DSH Web GUI 的主机权威任务面板,支持实际会话执行、主机 cron 调度以及可选的跨平台空闲睡眠保护;以挂载方式提供,无需修改 DSH 源代码。Web All@linxin666/dsh-web-allDSH Web UI 全家桶聚合插件:一键安装全部功能插件(task-board / pet / web-ui-settings / skin-center / community-plugins / compat shim)。compat 桥接层已并入本包(src/client),无需独立 compat npm 包。Ds Harness Remoteds-harness-remote通过桌面端、网页端和 Android 端,端到端加密远程访问 DeepSeek Harness 和实验性 Codex 工作区,并支持 dsh-TUI Host。Model Router@ljwei-stak/dsh-model-routerDeepSeek Harness Desktop 的统一 DS Bot 工作区:模型和 Bot 路由、私有库、录制的桌面流程以及范围限定的远程计算机控制。

README

dsh-odoo

English | 繁體中文 | 简体中文 | 日本語

dsh-odoo is a free, open-source, read-only DeepSeek Harness plugin for the Odoo external API. It lets an agent inspect Odoo business data — contacts, quotations, sales orders, invoices, project tasks, leads, stock — without changing Odoo state. One opt-in tool can create a strictly limited draft record, and it is not even registered unless you enable it.

✅ Verified against Odoo 18 on 2026-08-27 — the official odoo:18 image reporting server_version 18.0-20260817. Most compatibility assumptions were checked on a live server; the results, and what is still unverified, are in docs/live-verification.md: only Odoo 18 was tested (8–17 and 19 were not), and only a Docker image reached directly — behind a reverse proxy, Odoo Online and Odoo.sh remain untested. The plugin speaks JSON-RPC only and needs /jsonrpc to be reachable (see Transport). When something breaks, please report the Odoo version and serie, how it is deployed (Odoo Online, Odoo.sh, self-hosted, container, and which reverse proxy sits in front), and the full output of odoo_server_info.

Tools

ToolPurpose
odoo_server_infoRead the server version and the authenticated user id.
odoo_describe_modelList the queryable fields of one allow-listed model.
odoo_search_readRun a restricted search_read on one allow-listed model.
odoo_create_draftCreate one draft record. Requires allowWrite: true; otherwise it is never registered.

Transport

This plugin speaks JSON-RPC 2.0 to POST {baseUrl}/jsonrpc, so your Odoo server must expose that endpoint (it is provided by the web module). If the endpoint is missing, redirected, or intercepted by a proxy, every tool fails with a TRANSPORT_UNSUPPORTED error that says so. XML-RPC is not implemented.

Model availability

The 14 allow-listed models are not guaranteed to exist on every Odoo. Only the base models are always present; the rest come from business modules a stock Odoo does not install.

ModuleAllow-listed modelsInstalled by default
baseres.partner, res.users, res.companyyes
productproduct.product, product.templateno
sale / sale_managementsale.order, sale.order.lineno
purchasepurchase.orderno
accountaccount.move, account.move.lineno
projectproject.project, project.taskno
crmcrm.leadno
stockstock.quantno

On a stock Odoo 18 with no business modules, querying sale.order fails with ODOO_VALIDATION_ERROR carrying the upstream reason Object sale.order doesn't exist. Call odoo_describe_model first to confirm a model is available on your instance.

Requirements

  • DeepSeek Harness with compatible @deepseek-ai/dsh-tools APIs
  • Node.js 22.19 or newer in the 22.x line, or Node.js 24 or newer
  • Bun 1.3.5 or newer when installing from GitHub source or developing locally
  • An Odoo URL, database name, login, and API key (or password) with access to the models you query

Configuration

Environment variables are recommended so credentials do not appear in a profile patch:

export ODOO_URL='https://odoo.example.com'
export ODOO_DB='production'
export ODOO_USERNAME='integration@example.com'
export ODOO_API_KEY='your-api-key'

Plugin config takes precedence over environment variables:

ConfigEnvironment fallbackDefault
baseUrlODOO_URLrequired
dbODOO_DBrequired
usernameODOO_USERNAMErequired
apiKeyODOO_API_KEYrequired
companyIdODOO_COMPANY_IDunset
allowWritenone (deliberately)false
localenoneen (en / zh-TW / zh-CN / ja)
defaultLimitnone20 (1–100)
requestTimeoutMsnone30000 (1–300000)
maxResponseBytesnone1000000 (1–52428800)

Credentials are only required when a tool actually runs: installing the plugin without filling them in does not break profile loading. locale switches tool and parameter descriptions; tool names and error messages always stay in English.

Safety

  • Read-only by default. No write, unlink, or workflow actions exist in this release.
  • Model allow list. Queries are limited to 14 standard models: res.partner, res.users, res.company, product.product, product.template, sale.order, sale.order.line, purchase.order, account.move, account.move.line, project.project, project.task, crm.lead, stock.quant.
  • No relational traversal. Domain field names may not contain dots. To filter by a related record, query the related model first and then filter with ('partner_id','in',[ids]). This keeps the allow list an actual capability boundary instead of a suggestion.
  • No binary fields. Fields whose Odoo type is binary are rejected, and default field sets never include one.
  • Bounded responses. Default fields per model, limit ≤ 100, offset + limit ≤ 10000, single string values truncated at 2000 characters, and a hard byte cap on every response.
  • Only non-archived records are returned; the active_test context is not exposed.
  • Draft creation is opt-in and fixed. sale.order is always created with state=draft; project.task may not specify state or stage_id, so Odoo applies its own default stage. Only an allow-listed subset of fields is accepted, and one-to-many commands are rejected.

Non-goals for 0.1

  • No business wrapper tools (list_customers, list_quotations, …). They depend on field assumptions that cannot be verified without a live Odoo, and a wrong assumption returns an empty result instead of an error — the worst failure mode for an agent. Deferred to 0.2.
  • No updates, deletions, or workflow transitions; no attachments or report generation.
  • No XML-RPC transport, no model discovery, no multi-database switching, no cursor pagination.

Development

bun install
bun run lint
bun run typecheck
bun run test
bun run build

scripts/smoke-odoo.sh runs a manual end-to-end check against a real server; it is deliberately excluded from CI.

License

MIT