npm.io
0.3.2 • Published 17h ago

@evatick/cli-linux-x64

Licence
MIT
Version
0.3.2
Deps
0
Size
22.3 MB
Vulns
0
Weekly
0
Stars
1

EVA CLI

为大模型、AI Agent 和自动化提供更易理解的金融数据。

CI npm CLI npm Skill License: MIT Python

简体中文 · English

EVA CLI 为大模型提供稳定的命令行接口,通过版本化的 EVA HTTP API 发现金融标的并查询规范化市场数据。规范标的 ID、一致的 JSON 响应、显式错误和确定性命令,让模型更容易理解、组合和使用金融数据,而不必依赖特定数据提供方的约定。

当前版本覆盖中国内地 A 股,以及由上海证券交易所、深圳证券交易所和中证指数发布的指数。

Codex 通过 EVA Tick 查询平安银行行情

Codex 根据自然语言自动选择 EVA 命令、解析规范金融标的并查询行情柱。命令与数值来自本地 EVA Tick 服务实测;服务地址和凭据已隐藏。

为什么选择 EVA CLI?

  • 面向大模型和 AI Agent 设计:可预测的数据结构、规范标的 ID 和结构化错误能够减少歧义,避免解析面向展示的自由文本。
  • 统一且稳定的接口:使用规范金融标的,不必依赖特定数据提供方的函数名和标识。
  • 便于自动化:成功结果以紧凑 JSON 输出,错误以结构化 JSON 写入标准错误流。
  • 显式标的解析:先搜索、检查并消除代码歧义,再请求市场数据。
  • 稳健的网络请求:可配置总超时时间,并对服务或网络的瞬时故障进行重试。
  • 安全的文件导出:支持 JSON、JSONL、CSV 和 Parquet,默认不会静默覆盖已有文件。
  • 轻量客户端:npm CLI 仅使用 Node.js 标准库;Python 发行版默认仅依赖 Click。

EVA CLI 仅包含客户端。市场数据由运行中的 EVA 服务提供;服务端及其 OpenAPI 契约在独立仓库中维护。

快速开始

推荐:使用 npm 安装

普通用户推荐使用 npm。它会安装纯 Node.js CLI,不要求预装或配置 Python,也不 下载平台相关原生程序。请选择与你的使用场景对应的安装方式:

使用场景 安装内容 安装命令
在终端、脚本或其他 Agent 中使用 EVA 仅 CLI npm install --global @evatick/cli
在 Codex 中使用 EVA Skill 和匹配版本的 CLI npm install --global @evatick/skill

只需要 CLI:

npm install --global @evatick/cli
eva version

在 Codex 中使用时,安装 Skill。@evatick/skill 会自动安装匹配版本的 CLI, 无需再单独安装 @evatick/cli

npm install --global @evatick/skill
eva-skill install
eva version

安装或更新 Skill 后请重启 Codex。可以运行 eva-skill status 检查 Skill 是否已 安装。临时使用 CLI 时,也可以直接运行 npx @evatick/cli health

npm 安装需要 Node.js 18 或更高版本,并需要能够访问 EVA 服务。npm 发行版支持 JSON、JSONL 和 CSV 导出;需要 Parquet 时,请使用下方的 Python 开发者安装方式。

开发者:使用 Python 从源码安装

以下方式面向需要参与开发、调试源码或使用 Parquet 可选依赖的开发者。普通用户 请优先使用上方的 npm 安装方式。源码安装需要 64 位 CPython 3.11–3.14。

git clone https://github.com/xiaochaohit/evatick-cli.git
cd evatick-cli
python -m pip install .
eva version

如需导出 Parquet:

python -m pip install '.[parquet]'
连接 EVA

客户端默认连接托管服务 https://api.evatick.com。如需连接其他 EVA 服务,可以覆盖服务地址:

eva config set --base-url https://api.example.com
eva config show
eva health

API 密钥是可选项。服务端启用鉴权时,再通过 eva config set --api-key 'eva_...' 保存密钥。未配置密钥时,客户端不发送 Authorization 请求头;已配置时, 客户端会照常发送,因此开放权限的服务端可同时接受两种请求。eva config show 会隐藏已保存的 API 密钥。在 macOS 和 Linux 上,EVA 还要求配置文件仅允许当前用户读取。

完成第一次查询
# 按名称查找股票。
eva instrument search --query 平安银行 --type equity

# 将交易代码解析为唯一的规范金融标的。
eva instrument resolve --query 000001 --type equity

# 查询最新行情快照和日行情柱。
eva stock quotes --symbol 000001
eva stock bars --symbol 000001 --start 2026-08-01 --limit 5

命令概览

命令 用途
eva health 检查 EVA 服务健康状态
eva version 查看 CLI、API 契约和当前 CLI 运行时版本
eva config set 保存服务地址或 API 密钥
eva config show 查看当前配置,密钥会被隐藏
eva instrument list 使用可选条件列出规范金融标的
eva instrument search 按名称、标识或别名搜索标的
eva instrument resolve 将用户输入解析为规范金融标的
eva instrument show 按 ID 查看规范金融标的
eva stock quotes 查询最新 A 股行情快照
eva stock bars 查询 A 股 OHLCV 行情柱
eva index quotes 查询最新指数行情快照
eva index bars 查询指数 OHLCV 行情柱
eva index constituents 查询指定生效日期的指数成分

运行 eva COMMAND --helpeva GROUP COMMAND --help 查看所有可用参数。

使用示例

发现标的
eva instrument list --type equity --venue XSHE --limit 20
eva instrument search --query 000300 --type index
eva instrument show --id cn:index:CSI:000300
查询市场数据
eva stock quotes --symbol 600000
eva stock bars --symbol 000001 \
  --interval 1d \
  --start 2026-01-01 \
  --end 2026-06-30 \
  --adjustment forward

eva index bars --symbol 000300 \
  --interval 15m \
  --start 2026-08-14 \
  --end 2026-08-14
eva index constituents --symbol 000300 --as-of 2026-08-15 --limit 20

行情柱支持 1m5m15m30m60m1d1w1mo 周期。复权模式支持 noneforwardbackward

导出结果

序列结果可以导出为 JSON、JSONL、CSV 或 Parquet:

eva stock bars --symbol 000001 \
  --start 2026-01-01 \
  --output bars.csv \
  --format csv

省略 --format 时,会根据已知的文件扩展名推断格式。使用 --overwrite 覆盖已有的普通文件,使用 --limit 仅保留前 N 条记录。CSV 要求记录字段一致且值为扁平结构;Parquet 需要安装可选依赖 evatick[parquet]

配置

配置优先级明确且可预测:

命令行参数 > 环境变量 > 配置文件 > 内置默认值
配置项 命令行参数 环境变量 默认值
配置文件 --config PATH EVA_CONFIG macOS/Linux 上为 ~/.config/eva/config.json
服务地址 --server-url URL EVA_SERVER_URL https://api.evatick.com
API 密钥(可选) --api-key KEY EVA_API_KEY 未设置

临时覆盖配置或在 CI 中注入密钥时,建议使用环境变量:

EVA_SERVER_URL=https://api.example.com \
EVA_API_KEY="$EVA_CI_API_KEY" \
eva health

请勿提交包含真实 API 密钥的配置文件。

脚本调用与错误处理

EVA 将机器可读数据与诊断信息分开:

  • 成功结果:紧凑 JSON 写入标准输出,退出码为 0
  • 参数无效:结构化 JSON 写入标准错误流,退出码为 2
  • 服务、配置或序列化失败:结构化 JSON 写入标准错误流,退出码为 1

错误包含稳定错误码、说明信息以及是否值得重试:

{"code":"SERVER_UNAVAILABLE","message":"EVA service is unavailable","retryable":true}

因此可以安全地与 jq 等工具组合:

eva instrument search --query 平安银行 --type equity | jq '.[0].instrument_id'

开发

git clone https://github.com/xiaochaohit/evatick-cli.git
cd evatick-cli
python -m venv .venv
source .venv/bin/activate  # Windows PowerShell: .venv\Scripts\Activate.ps1
python -m pip install -e '.[test,parquet]'
python -m pytest -q
python -m build

CI 在 Linux、macOS 和 Windows 上测试 Python 3.11–3.14,并以最低支持版本 Node.js 18 验证 npm CLI。架构决策和兼容性规则记录在 docs/adr 中。

欢迎贡献。重大行为或契约变更建议先创建 Issue 讨论;请保持改动聚焦,并为用户可见行为补充测试。

许可证

EVA CLI 基于 MIT License 发布,第三方声明见 THIRD_PARTY_NOTICES.md

市场数据仅供研究与参考,不构成投资建议。