关于 openmarket
这是 OpenMarket CLI 的 Agent 操作指南,帮助具备 Shell 能力的 LLM 客户端使用其行情数据、告警、研究、图表和交易工作流。
主要功能
- 01查询行情数据与指标
- 02安装和管理 WRUN 软件包
- 03创建告警并监控事件流
- 04运行相关性事件研究
- 05查看和修改图表工作区
- 06配置由信号驱动的策略
适用场景
- 01查询某个交易品种的市场指标
- 02监控新闻或市场事件
- 03研究已监控事件前后的回报
- 04调整图表布局和技术指标
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ openmarket-xyz/ openmarket-skill --skill openmarket安装后在 Claude Code 中输入/openmarket确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
alerts.mdchart-actions-tool-drawing.mdchart-actions.mdevent-watches.mdmarketplace.mdmetrics.mdnews.mdom-chat.mdopenmarket-agent.mdorders.mdresearch.mdrooms-docs.mdsecrets.mdsignal.mdstrategy.md详细介绍
om — Agent 操作手册
这是 OpenMarket CLI(om)的总览技能 Markdown。任何支持 shell 的大模型客户端都会读取这些文件,以了解如何使用此二进制程序。
一个二进制程序,七项用途:
- 市场数据:
om points、om markets、om symbols、om coins、om exchanges、om normalized-symbols、om block-sizes、om tenors、om enum、om usage、om subscribe、om polymarket、om metric。通过内置 SDK 调用 OpenMarket Data API:https://api.openmarket.xyz。om metric get可按需计算某个标的的任意已注册标量指标(price、volume、funding_rate、open_interest,以及 RSI / MACD / EMA / BB / ATR / Stoch 等指标);它使用与警报引擎相同的指标注册表,因此数值与警报触发时使用的数值一致。 - WRUN 软件包:
om install可从本地路径、GitHub 仓库或注册表 tarball 安装 WRUN 软件包;om wrun ...可搭建脚手架、验证、构建、导出、安装、列出、移除、升级和配置 WRUN 指标软件包。安装后的输出会成为类似wrun/@scope/name/output的指标 ID,可用于指标查询、警报和图表添加(om collab indicator add --type wrun/...)。有关注册表工作流和原生 Agent 创作,请参阅marketplace.md。 - 警报引擎:使用
om alert ...将警报编写为~/.openmarket/alerts/下的 JSON 文件(类型化条件或由~/.openmarket/scripts/下的文件支持的自定义脚本条件);可选通过on_fire.execute自动在 Hyperliquid 或 Polymarket 上执行操作;使用om service install安装一个监控警报的 launchd/systemd 守护进程;使用om alert watch实时追踪触发事件。 - 新闻 / 文本事件信息流:
om news ...通过一个按能力门控的界面管理三种产品——警报(指定触发条件,在事件发生时收到通知)、简报(指定主题,每天获取几张报道卡片)和 信息流(来自 Synoptic 市场的现成信息流)。订阅其中任意产品后,都会自动附加一个针对该信息流的事件监视器,因此其中的内容会送达日志和通知渠道。请参阅news.md。 - 事件监视器:
om event-watch ...管理持久化事件流监视器;om event-journal ...按需检索其本地 Markdown 事件日志。请参阅event-watches.md。 - 研究分析:
om research study基于已接受的事件监视器记录和单个资产的 K 线,开展严格的相关性事件研究。可用于检查事件锚点和事件前后的收益,切勿将其用作交易信号。请参阅research.md。 - 协作桥接:
om collab ...通过守护进程与collab-service保持打开的持久 WebSocket,检查和修改 OpenMarket 图表工作区。命令按资源分组(session/workspace/chart/indicator/drawing)——结构与kubectl和docker相同,可随着服务器端新增操作而扩展。读取操作:om collab session status、om collab workspace list、om collab workspace state --workspace <id>。修改操作:om collab chart layout(多图表网格——3x1/2x2/...)、om collab chart symbol/chart interval/chart plot-type(针对每个窗格)、om collab chart sync(同步标的 / 时间间隔 / 十字光标)、om collab indicator add(RSI/MACD/EMA/...)、om collab drawing add(TrendLine、FibonacciRetracement)、om collab chart view(设置可见时间范围——临时设置)。完整工作流请参阅chart-actions.md。网格 / 布局请求应先执行chart layout修改,再逐个窗格执行chart symbol。 - 策略:
om signal+om strategy将信号(基于受监控的事件流或市场指标)接入 Polymarket 或 Hyperliquid 上的自动交易——信号会发出方向 / 确信度视图,策略将其绑定到固定市场和仓位计算器,守护进程则在每个周期评估已启用的策略(observe / paper / dry_run / live)。编写策略后,使用om strategy resume;由守护进程执行策略(无需前台策略运行命令)。请参阅strategy.md。 同一个om二进制文件提供所有这些功能。没有独立的 “data”、“wrun”、“runner”、“research” 或 “collab” CLI。
工具调用规范:调用任何创建/编辑工具时,省略用户未要求填写的可选字段——切勿仅为重申默认值而传入字段。聊天界面会显示每次调用设置的值与使用默认值的字段;显式传入默认值会错误地显示为用户选择。
必需的环境变量:
| 变量 | 用途 |
|---|---|
OM_API_KEY | OpenMarket Data API 身份验证。由 om init 以交互方式获取(存储在 ~/.openmarket/om.sqlite 中),或作为环境变量导出。 |
OM_BASE_URL(可选) | 覆盖 REST 基础 URL;默认为 https://api.openmarket.xyz。 |
OM_BIND(可选) | 守护进程的 HTTP 绑定目标;默认为 127.0.0.1:31337。绑定到非环回地址时需要令牌(自动生成到 ~/.openmarket/runner.token)。 |
频道(Telegram、Discord 等)通过 om init 或 om setup <channel> 配置,并保存在 ~/.openmarket/om.sqlite 中——无需环境变量。
如何加载此技能
- Claude Code / Cursor / Aider(shell Agent):将 Agent 指向
skills/目录,或将om skill show openmarket/om skill show openmarket-research的输出传入上下文。 - OpenClaw:
om setup openclaw会将捆绑的技能(SKILL.md + 支持文档)写入~/.openclaw/skills/openmarket/,遵循 Agent Skills 开放标准。 - Codex:
om setup codex会将捆绑的技能写入~/.codex/skills/openmarket/,采用相同的 Agent Skills 布局。 - 其他任何场景(bash、cron、GitHub Actions):直接阅读 Markdown 文件。此技能仅由 Markdown 构成——其中没有任何特定于客户端的内容。
文件
SKILL.md(本文件)— 总索引。根据用户的问题,将 Agent 引导至相应的详细文件。alerts.md— 提醒的组成、支持的条件结构、先发现再导入的工作流以及错误恢复。用户提及提醒、条件、阈值、om alert ...,或希望收到市场通知时阅读。还涵盖可选的on_fire.execute区块——它独立于条件,因此kind: script条件也可以自动执行(有状态策略可以下单,而不只是发送通知)。orders.md— 通过配对的执行场所(Hyperliquid 和 Polymarket CLOB)使用om order place一次性下单。用户想要立即操作——在某个价位限价买入、开仓或平仓——而不是设置由条件触发的提醒时阅读。涵盖标志参数和 JSON 标准输入形式、仓位规模模式、场所账户读取,以及预览/确认安全约定。marketplace.md:发现、安装和发布注册表软件包(om search/om install/om publish/om yank/om access),以及面向 Agent 的 WRUN 指标创作(wrun_author→wrun_build→ 数值检查 → 发布),包括元数据方言和样式词汇。用户提及 marketplace 或注册表、想安装或发布软件包,或要求构建自定义指标、设置样式或将指标放到图表上时阅读。metrics.md— 通过om metric get临时计算标量指标值,通过om metric screen扫描一组标的,并通过om metric list发现注册表。涵盖所有已注册指标(price / delta_pct / volume / funding_rate / open_interest 以及指标类:RSI / SMA / EMA / MACD / BB / ATR / Stoch)的规范默认参数和提示规则;CCI/MFI/OBV/VWAP/ADX/Ichimoku 仅可作为图表叠加项,不能作为指标。用户询问某个标的的任意标量指标当前值(“BTC 的 RSI 是多少?”、“SOL 的价格是多少?”、“给我 ETH 的 4h MACD”、“BTC 现在是否处于超买状态?”、“显示 SOL 的布林带”),或想确认提醒现在会因何而触发时阅读。chart-actions.md— Collab Service Bridge:用于检查编排器 WS 连接的 Agent 命令(om collab session status)、列出工作区(om collab workspace list)、读取缓存的服务端状态(om collab workspace state --workspace <id>)以及修改图表(om collab chart layout、om collab chart symbol、om collab chart interval、om collab chart plot-type、om collab chart sync、om collab indicator add、om collab drawing add、om collab chart view)。用户询问“编排器/桥接是否已连接?”、“我有哪些工作区?”、“我的图表工作区上有什么?”,或要求更改布局/网格(例如3x1、1x3、2x2、“三个横排”、“拆分成两个”)/更改图表标的/周期/绘图类型/切换多图表同步(标的/周期/十字线)/添加技术指标(RSI / MACD / EMA / BB / ATR / Stoch / Liquidations)/移动/缩放/平移可见区间时阅读。对于绘图工具(趋势线、斐波那契、形状、仓位、注释),请参阅chart-actions-tool-drawing.md。网格尺寸或“用这些标的设置 N 个图表”首先属于chart layout更改——操作前请阅读本文件。chart-actions-tool-drawing.md—om collab drawing绘图工具的详细说明(auto / add / schema / remove)。用户要求在图表上绘制、添加、放置、标记、框选、注释、绘制斐波那契、设置多头/空头仓位或移除工具时阅读。涵盖drawing auto(根据市场数据计算锚点——首选)、drawing add(调用方提供带角色标签的--anchor)、drawing schema(发现工具的锚点角色)以及drawing remove。news.md— 通过om news设置文本事件新闻/社交提醒:供应商能力(Attention 创作与 Synoptic 目录)、创建前预览原则、发布/关注/分叉礼仪、自动附加事件监视的验证,以及噪声/重复项调整。用户提及新闻、头条、推文、社交帖子、催化剂或简报,想为任何以文本而非价格形式到达的内容设置提醒,询问有哪些新闻源,或抱怨新闻提醒重复或噪声过多时阅读。event-watches.md— 创建、发现和管理受监视事件流的生命周期,以及按需检索日志。research.md— 基于已接受的事件监视记录和单个资产的 K 线开展相关性事件研究。用户询问受监视的事件流是否与市场走势同时发生、想检查事件锚点,或想了解事件前后的收益时阅读。signal.md—om signal生成端接口:四种信号类型(text_long_short、constant、metric_level_rule、metric_band_rule)及其可调参数——将主题作为策略、上下文/记忆、模型固定、决策缓存、K 线/逐笔评估与冷却,以及身份变更(force)保护。用户询问信号类型或设置有哪些、想单独创建或调整信号,或询问信号编辑为何被拒绝时阅读。若要将信号绑定到市场并进行交易,请接着阅读strategy.md。strategy.md— 端到端创作并运行由信号驱动的原生守护进程策略(将om signal——基于事件监视或市场指标——绑定到固定市场,作为om strategy,并使用om strategy resume启用,再在运行中的守护进程下验证;通过 Polymarket CLOB 或 Hyperliquid 执行)。用户想将事件/新闻或指标信号接入自动交易、询问策略如何运行,或询问策略为何没有交易时阅读。rooms-docs.md— OM Rooms 聊天的动态文档层:空间资料库(每份文档一个最新版本、CAS 修订、om://doc 标签)和doc_*通道动词(列出/读取/搜索/历史/写入,以及移动/还原/归档/恢复/访问)。在包含文件或文档的聊天房间中工作时阅读:用户询问此频道中有哪些文件、想将对话保存到文档、提及 om://doc 标签,或要求编辑、重命名、归档、还原、共享、归档处理或限制文档访问时阅读。secrets.md— 密封(端到端加密)的聊天消息:/secret、收件人卡片、恢复码。发送私密/密封消息或恢复秘密内容时阅读。
渠道
om setup <name> 用于绑定一个出站通知渠道。路由采用物化方式——告警会在顶层存储其确切的 channels: string[](渠道 ID),读取时不会扇出。创建时如果没有 channels[],则会分配到已配置的默认渠道(通过 om setup default <name> 设置);如果只配置了一个渠道,则分配到该渠道;如果配置了多个渠道但未设置默认渠道,则拒绝创建(传入 --channel <name> 或设置默认渠道:om setup default <name>);如果未配置任何渠道,则仅创建卡片(不推送,也不会由 Agent 接管)。绑定第一个渠道时,也会将所有仍仅为卡片的告警和监视项路由到该渠道,因此在渠道尚不存在时编写的规范也会获得实际目的地(之后添加第二个渠道不会重新分配任何内容)。
| 渠道 | 设置 |
|---|---|
telegram | om setup telegram --token <bot-token> --chat-id <id>(或使用交互模式) |
discord | om setup discord --webhook-url <url>(或使用交互模式) |
slack | om setup slack --webhook-url <url>(或使用交互模式) |
webhook | om setup webhook --webhook-url <url> [--bearer-token <token>](向任意 http(s) 端点发送通用 JSON POST;告警触发时会附带结构化的 alert 块) |
交互模式(不带凭据标志)会先提示输入渠道名称(默认使用适配器 ID,例如 telegram / discord),然后收集凭据——与 om init 相同。传入 --name <name> 可跳过该提示,并在命令行中提供名称。传入 --default 可将新渠道设为未显式指定 channels[] 字段的告警的默认渠道。
默认渠道管理:om setup default(显示当前默认渠道)、om setup default <name>(设为默认渠道)、om setup default --clear(移除默认标记;配置了多个渠道时,在设置默认渠道或指定渠道名称之前,不带 channels[] 的创建会被拒绝)。om setup list 会显示 DEFAULT 列,并在默认渠道所在行旁标记 *。
单渠道查看与路由:om channel <name>(名称、ID 或 default)会显示一个渠道绑定的对话线程,以及路由到该渠道的所有告警和监视项;还支持 --add <alert-id|watch-slug> / --remove <alert-id|watch-slug>,用于将规范路由到该渠道或从该渠道移除;支持 --rename <new-name> 用于重命名渠道(其路由会随之更新);以及 --format json。如果某项规范触发时会直接在此处发布(该渠道已超过唤醒上限),命令会对此进行标记,并在脚注中注明与其共享同一聊天的其他渠道。
系统生命周期消息(运行器启动 / 停止、告警暂停 / 恢复)始终会扇出到所有已配置的渠道——默认渠道偏好仅适用于告警触发消息。
om setup openclaw 是一套独立流程——它会将 OM 技能安装到本地 OpenClaw,并将 OpenClaw 的 webhook 注册为直通目标(原始接收 JSON,不由运行器渲染)。
运行器
om service install 会注册一个 launchd(macOS)或 systemd --user(Linux)单元,在后台运行 tick 循环。每次 tick 都会重新读取 ~/.openmarket/alerts/*.json(默认间隔为 10s,可通过 --interval-ms 覆盖),评估每个提醒,并在条件为 TRUE 时触发(循环模式),或触发一次后终止(单次模式),然后通过直接 HTTPS POST 分发到已配置的渠道。对于类型化条件,边缘语义由叶运算符(crosses_above / crosses_below)决定;对于自定义脚本条件,则由脚本正文决定——运行器本身不做判断。生命周期命令:om service [start|stop|restart|status|logs|uninstall]。前台模式(om run,不带 --service)是用于开发循环的变体——使用相同的评估器,不进行守护进程化。原生 Windows 仅支持前台模式(尚未集成任务计划程序)。
runner.log 中每次 tick 的日志行格式为 [tick] scanned=[ids] evaluated=[ids] fired=[ids] errors=[ids]。每个方括号列表都是该类别中的提醒 ID 集合,而不是数字元组——scanned=[2,1] 表示已扫描提醒 2 和 1,fired=[2] 表示提醒 2 在本次 tick 中触发。
只要运行器处于运行状态——无论是前台运行 om run,还是后台运行 om service install——它还会在 :31337 上提供本地 HTTP 接口:/healthz、/rpc/v1/alert/*(通过 HTTP 进行 CRUD 操作)、/events/v1(SSE 流——alert_fired、event_watch_fired、channel_delivered、channel_failed、tick_completed)、/api/v1/*(上游 REST 代理)、/ws/v1/*(WebSocket 代理)。大多数 om alert * CLI 命令在运行器可访问时会通过 /rpc/v1/alert/* 路由;不可访问时则回退到直接写入文件系统,因此无论哪种情况都能创建提醒。om alert watch 是唯一需要运行器的命令(它会使用 /events/v1)。
打包到二进制文件中
编译后的 om 二进制文件通过 Bun 的文本导入嵌入这些文件,因此即使仓库不在磁盘上,om skill show [name] 也能正常工作:
// packages/cli/src/skills/package.ts
import skill from "../../../../skills/SKILL.md" with { type: "text" };
import alerts from "../../../../skills/alerts.md" with { type: "text" };
import orders from "../../../../skills/orders.md" with { type: "text" };
import metrics from "../../../../skills/metrics.md" with { type: "text" };
import marketplace from "../../../../skills/marketplace.md" with { type: "text" };
import chartActions from "../../../../skills/chart-actions.md" with { type: "text" };
import eventWatches from "../../../../skills/event-watches.md" with { type: "text" };
import news from "../../../../skills/news.md" with { type: "text" };
import research from "../../../../skills/research.md" with { type: "text" };
import signal from "../../../../skills/signal.md" with { type: "text" };
import strategy from "../../../../skills/strategy.md" with { type: "text" };
om skill list 会列出这些文件;om skill show [name] 会将其中一个输出到标准输出。
已安装的副本不会包含下方生成的命令参考:只要有可用的 shell,om --help 和 om <command> --help 就是实时命令接口,且始终与已安装的二进制文件保持同步。
命令参考
-
om block-sizes(操作:block_sizes)——列出支持的热力图块大小,即可作为--block-size传递给 BLOCK_BOOK_SNAPSHOT_AGG 点位查询的值。 -
om coins(操作:coins)——列出支持的基础币种(BTC、ETH、……),也可按元数据筛选。 -
om config——(定制命令;参见上文说明) -
om config key-info(操作:config_key_info)——解码已配置的 OpenMarket API 密钥(JWT),并展示其声明——层级、账户 ID(sub)、令牌 ID(jti)、签发和过期时间戳。 -
om config show(操作:config_show)——检查本地 OpenMarket CLI 配置:当前使用的 API 密钥(返回时会脱敏,并注明来源——环境变量还是已存储)、是否有 OM_API_KEY 环境变量覆盖了另一个已存储密钥、已配置的通知渠道(telegram / discord / openclaw / ……)——每个渠道都会显示id,提醒或监视项的channels[]会引用该 ID,因此你可以为规范指定发布位置,而不必引用原始 ID——未指定目标的新提醒创建时默认使用哪个渠道,以及是否启用了匿名舰队遥测(telemetry.fleet)。 -
om enum(操作:enum)——从 SDK 导出已知枚举值——交易所、数据类型、间隔、排序字段、polymarket 字段等。 -
om exchanges(操作:exchanges)——列出符合给定筛选条件的交易所。 -
om logs(操作:logs_tail)——返回运行器守护进程runner.log中最近的 N 行(以及轮转归档文件,按从旧到新的顺序读取)。 -
om markets(操作:markets)——列出可交易市场,可按交易所 / 币种 / 类别 / 类型筛选,也可按可选的符号子串筛选。 -
om normalized-symbols(操作:normalized_symbols)— 列出符合给定元数据筛选条件的规范化符号(例如 BTC-USDT)。 -
om points(操作:points)— 获取历史市场数据:K 线(TRADE_SIDE_AGNOSTIC_AGG)、未平仓合约量(OPEN_INTEREST_AGG)、资金费率(FUNDING_RATE_AGG)、强平数据(LIQUIDATION_AGG)、成交量分布、TPO 时段、热力图快照。 -
om polymarket leaderboard(操作:polymarket_leaderboard)— 按盈亏、ROI、胜率、成交量或活跃度排名的 Polymarket 顶级钱包。 -
om polymarket market-summary(操作:polymarket_market_summary)— 汇总单个 Polymarket 市场的统计数据(总成交量、交易者数量、顶级钱包)。 -
om polymarket platform-distribution(操作:polymarket_platform_distribution)— 按可配置的百分位区间或十分位区间,统计 Polymarket 交易者、成交量或活跃度的分布。 -
om polymarket platform-summary(操作:polymarket_platform_summary)— Polymarket 全平台汇总数据:交易者总数、成交量、市场数量。 -
om polymarket positions(操作:polymarket_positions)— Polymarket 持仓条目。 -
om polymarket trader-profile(操作:polymarket_trader_profile)— 单个交易者钱包的完整 Polymarket 统计数据:已实现/未实现盈亏、持仓数量、胜率、持仓时长。 -
om polymarket user-categories(操作:polymarket_user_categories)— 单个交易者活动的类别细分(选举 / 体育 / 加密货币 / …)。 -
om send(操作:send_message)— 向已配置的频道发送一次性消息(telegram / discord / 通用 webhook / …)。 -
om service— (定制命令;参见上文说明) -
om service install(操作:service_install)— 将 OpenMarket 守护进程安装为 launchd plist(macOS)或 systemd --user 单元(Linux)。 -
om service logs(操作:logs_tail)— 返回运行器守护进程runner.log最近的 N 行(以及轮转归档文件,按从旧到新的顺序遍历)。 -
om service restart(操作:service_restart)— 通过监管程序停止并启动 OpenMarket 守护进程(launchd:bootout + bootstrap;systemd:原生重启)。 -
om service start(操作:service_start)— 启动 OpenMarket 守护进程(如果已在运行则不执行操作)。 -
om service status(操作:service_status)— 报告本地 OpenMarket 守护进程(launchd/systemd 单元)的安装和运行状态。 -
om service stop(操作:service_stop)— 停止 OpenMarket 守护进程。 -
om service uninstall(操作:service_uninstall)— 停止 OpenMarket 守护进程并移除其 launchd plist / systemd 单元。 -
om status(操作:system_status)— 一次调用检查所有有状态的本地信息:版本状态(CLI 构建版本、守护进程构建版本、最新发行版、是否有可用更新?)、守护进程是否正在运行、是否已配置 API 密钥(已遮蔽 + 来源)、LLM 身份验证信息(提供商/模型/配置/凭据类型)、通知频道 + 默认频道、已配对的交易平台(Hyperliquid:地址 + 构建者审批 + 网络;Polymarket:签名者 + 资金方 + 钱包类型 + 网络)、活跃警报数量、事件监视数量、设置覆盖项(history_turns、各提供商模型)。 -
om symbols(操作:symbols)— 列出符合给定元数据筛选条件的交易所原生符号。 -
om tenors(操作:tenors)— 列出符合给定元数据筛选条件的可用期权期限(ONE_W、ONE_M、…)。 -
om upgrade(操作:system_upgrade)— 将 om 二进制文件更新到最新发行版,并在其上重启守护进程。 -
om usage(操作:usage)— 报告已通过身份验证的账户当前 API 配额用量:limit(每个时间窗口的权重)、used、remaining、reset(Unix 秒)、window_seconds。 -
om wrun create(操作:wrun_create)— 创建 WRUN 编写工作区的脚手架。 -
om wrun list(操作:wrun_list)— 列出已安装的 WRUN 软件包和指标 ID。 -
om wrun source set(操作:wrun_source_set)— 将一个 Polymarket 市场设为 WRUN 赔率输入源。