Octri CLI

dev.octri由 octri.dev 发布v1.0.6更新于 Oct 24, 2026

Push OpenAPI specs, build SDKs in ten languages, publish API docs, and triage production SDK errors.

概览

AI 生成的概览

Octri CLI 的 MCP 服务器让助手在 Octri 项目中推送 OpenAPI 规范、构建 SDK、发布文档并处理生产环境 SDK 错误。

可以做什么
  • 推送、导入、列出和查看 OpenAPI 规范,并跟踪生成文档与变更日志的流水线
  • 构建、审计、预览、下载和重试十种语言的 SDK,管理构建产物与仓库
  • 生成、发布和标记文档页面、版本、导航与自定义域名
  • 读取监控摘要、问题、日志、链路、性能、发布、告警和检查,并对问题执行解决、忽略、重开或评论
  • 管理项目、组织、成员、API 密钥、GitHub 同步与任务
  • 以类型化工具形式提供同样的命令,失败以工具结果返回,助手可读取并自行纠正
适用场景
适合让助手直接在 Octri 项目内工作:提交 OpenAPI 规范、迭代生成的 SDK、发布文档,或排查这些 SDK 上报的生产错误,而无需切换到控制台。
运行要求
以 stdio 在本地运行,通过 npx 或 octri 命令启动;需要 Node 20 或更高版本。需要 Octri 账号:先用 octri auth login 登录,或设置 OCTRI_API_KEY。可选 OCTRI_PROFILE 和 OCTRI_PROJECT_ID 指定配置与默认项目;在公司代理后需在服务器的 env 中设置 HTTPS_PROXY 和 NO_PROXY。
安装前请注意
凭据来自 ~/.octri/config.json 中保存的会话,该文件含会话令牌,应妥善保护;助手看不到这些凭据。除非以 --allow-publish 或 --allow-delete 启动,否则发布到包仓库和删除规范会被拒绝。监控处理会写入状态(解决、忽略、重开、评论),构建、文档发布和域名变更会影响线上项目,并可能产生付费用量。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Octri CLI,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

@octri/cli

octri is the command line for your Octri project. It does what the dashboard does: push a spec, build SDKs, publish docs, and work through the errors those SDKs report from production.

Octri takes an OpenAPI spec and gives you a documentation site, client libraries in ten languages, an MCP server, and monitoring for the API behind all of it. See octri.dev.

Node 20 or newer.

Install

bash
npm install -g @octri/clioctri --help

Start here

bash
octri auth loginoctri projects useoctri specs push ./openapi.yaml

auth login prompts for your email and password, and for your authenticator code if you have two-factor on. projects use with no argument opens a picker.

specs push waits for the pipeline, not the upload. Your spec parses in about a second, then the doc pages, search index and changelog get written behind it. The spinner names the stage it is on.

Build an SDK

bash
octri sdk audit                            # what is costing you, scoredoctri sdk build --lang go,typescript --download

In a terminal, sdk build draws a lane per language and repaints it through generating, verifying, packaging, installing, ready. Piped or under CI it prints append-only lines instead, and exits non-zero if any language fails, so it works as a build step with no extra flags.

sdk audit scores the spec and marks which findings the generator can fix on its own. octri sdk audit apply <key> writes one in.

For a look at real generator output without spending a build:

bash
octri sdk preview --lang gooctri sdk preview --lang go --show client.go

Publish docs

bash
octri docs versions publish <specId>octri docs versions label <specId> "Stable"octri docs domain set docs.example.com

docs domain prints the CNAME and TXT records to create, then docs domain verify checks them.

Monitoring

Reads and triage run on your session, so they need nothing but a login:

bash
octri monitoring summaryoctri monitoring issues --status unresolvedoctri monitoring issue <id>octri monitoring resolve <id>

monitoring issue prints the stack and marks which frames resolved against uploaded source maps. When none of them did, the release those errors came from has no symbols, and the CLI says so.

The two upload commands work differently. They talk to the monitoring service directly with an ingest token, because a CI job has one secret and no way to log in:

bash
# CIoctri monitoring sourcemaps upload ./dist \  --url "$MONITORING_URL" --token "$MONITORING_TOKEN" \  --environment "$MONITORING_ENVIRONMENT" --release "$GIT_SHA"
# your own machine, already signed inoctri monitoring sourcemaps upload ./dist

Run octri monitoring config for the three values to store as CI secrets. The release you upload under has to equal the release your SDK reports at runtime, or the service has nothing to pair a trace with.

Commands

GroupWhat
authlogin · logout · whoami · token · profiles
configlist · set <k> <v> · use <profile> · path
projectslist · show · create · use · current
specslist · push <file|-> · import <url> · status · delete
sdklanguages · operations · settings get|set · validate · audit · preview · build · builds · watch · artifacts · download · retry · publish · repos · stats
docspages [generate|regenerate|publish|title] · show <slug> · guides · nav · versions · domain · changelog
monitoringstatus · enable · summary · issues · issue <id> · resolve|ignore|reopen|comment · logs · traces · performance · releases · alerts · checks · sourcemaps upload · sources upload · config
orgslist · show · switch · usage · billing · invoices · members · invites
keyslist · create <name> · revoke <id>
githubstatus · connect <owner/repo> · sync · auto-sync <on|off>
jobslist · show <id>
mcptools · serve

Run octri <group> --help for one group on its own.

Global flags: --project <id>, --profile <name>, --api-url <url>, --json, --quiet, --plain, --no-color.

Output

ModeWhenWhat you get
InteractiveA terminalColour, spinners, live build lanes, tables
PlainPiped, or CI is setAppend-only lines, no escape sequences
--jsonYou ask for itOne JSON document on stdout, errors on stderr

--json is the one to script against:

bash
octri sdk builds --json | jq '.[0].status'octri monitoring issues --status unresolved --json | jq 'length'

NO_COLOR and FORCE_COLOR are both honoured.

Configuration

State lives in ~/.octri/config.json, mode 0600, since it holds session tokens. OCTRI_CONFIG_DIR moves it.

Profiles keep environments side by side:

bash
octri config use prod --api-url api.octri.devoctri config set defaultLanguages go,rust,swift

Every value resolves flag first, then environment, then the stored profile.

VariableEffect
OCTRI_PROFILEProfile to use
OCTRI_API_URLAPI root (local is shorthand for :3001)
OCTRI_TOKENBearer token, bypassing the stored session
OCTRI_API_KEYAPI key for the public routes
OCTRI_PROJECT_IDDefault project
OCTRI_CONFIG_DIRWhere config and the artifact cache live
OCTRI_DEBUGPrint stack traces on failure

Behind a proxy

The CLI and octri mcp serve read the standard proxy variables, in upper or lower case, with no extra Node flag. https:// requests use HTTPS_PROXY, or HTTP_PROXY when that is the only one set. Hosts listed in NO_PROXY, and their subdomains, connect directly; * turns the proxy off.

bash
export HTTPS_PROXY=http://user:[email protected]:3128export NO_PROXY=localhost,127.0.0.1,corp.exampleoctri specs push ./openapi.yaml

If the proxy inspects TLS with its own certificate authority, point Node at that CA with NODE_EXTRA_CA_CERTS=/path/to/ca.pem.

MCP clients usually start servers with a minimal environment, so set these in the server's env block rather than relying on your shell.

MCP server

bash
octri mcp serve

This speaks MCP over stdio and offers the same commands as typed tools. An assistant can push a spec, wait for the build, read the generated Go, and then read the production error that build caused.

To add it to Cursor or VS Code in one click, through npx so no global install is needed:

[Add to Cursor] [Install in VS Code]

The server uses the profile from octri auth login, so sign in first, or set OCTRI_API_KEY in its environment. Listed in the official MCP Registry as dev.octri/cli.

jsonc
// Claude Desktop / Cursor{  "mcpServers": {    "octri": {      "command": "octri",      "args": ["mcp", "serve"]    }  }}

Credentials come from your stored profile and the assistant never sees them. Reads are open. The two operations you cannot take back are refused unless you start the server with the flag for them:

bash
octri mcp serve --allow-publish   # publishing to package registriesoctri mcp serve --allow-delete    # deleting specs

Tool failures come back as tool results rather than protocol errors, so an assistant can read the message and correct itself.

Notes

  • Build progress is polled, not streamed. The /ws/sdk socket authenticates from a header or cookie, which Node's built-in WebSocket cannot set, and a WebSocket dependency would buy about a second of latency on a build that takes minutes.
  • Artifact archives are extracted by hand-rolled tar and zip readers, so neither binary needs to be installed. Both refuse entries that would write outside the destination directory.
  • @modelcontextprotocol/sdk is the only runtime dependency. Colour, spinners, progress bars, tables and prompts are all local.

The rest of Octri

ProductWhat it does
API StudioYour OpenAPI spec becomes a hosted documentation site with a live request playground, editable page by page.
SDK StudioThe same spec becomes client libraries for ten languages, versioned and released together.
MCPYour endpoints and docs become tools an AI assistant can call, generated from the same spec.
MonitoringErrors, traces, uptime and releases for the API, joined to the SDK calls that reached it.

Monitoring runtimes

Node · Python · Go · Ruby · Rust · PHP · Java · Kotlin · Swift · Dart

Documentation · Pricing · Changelog

MIT licensed.

来源:README.md,提交 4105da1

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

3
  1. v1.0.6最新Oct 12, 2026
  2. v1.0.4Sep 27, 2026
  3. v1.0.3Sep 25, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分