EVA CLI 为大模型提供稳定的命令行接口,通过版本化的 EVA HTTP API 发现金融标的并查询规范化市场数据。规范标的 ID、一致的 JSON 响应、显式错误和确定性命令,让模型更容易理解、组合和使用金融数据,而不必依赖特定数据提供方的约定。
当前版本覆盖中国内地 A 股,以及由上海证券交易所、深圳证券交易所和中证指数发布的指数。

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 --help 或 eva 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
行情柱支持 1m、5m、15m、30m、60m、1d、1w 和 1mo 周期。复权模式支持 none、forward 和 backward。
导出结果
序列结果可以导出为 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。
市场数据仅供研究与参考,不构成投资建议。