Octri CLI

dev.octriPublished by octri.devv1.0.6Updated Oct 24, 2026

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

Overview

AI-generated overview

Octri CLI over MCP: lets an assistant push OpenAPI specs, build SDKs, publish API docs and triage production SDK errors.

What you can do
  • Push and manage OpenAPI specs, convert or import them, and check pipeline status
  • Build, audit, preview, download and publish SDKs in ten languages, and inspect builds and artifacts
  • Draft and publish documentation pages, guides, nav, redirects, endpoints, versions and custom domains
  • Read and triage monitoring issues, logs, traces, performance, releases and alerts, and upload source maps
  • Manage projects, organizations, API keys, GitHub sync and webhooks
When to use it
Useful when the assistant should work inside an Octri project: shipping a spec change, generating or auditing client libraries, updating hosted API docs, or investigating production errors reported by generated SDKs.
Requirements
Local process run with npx (Node 20 or newer) or a global install. Sign in first with octri auth login, or set OCTRI_API_KEY; an API key only reaches public routes. Optional OCTRI_PROFILE, OCTRI_PROJECT_ID, HTTPS_PROXY and NO_PROXY must be set in the MCP client's env block, since clients rarely pass the shell environment through.
Before you install
Credentials: the stored session in ~/.octri/config.json and the OCTRI_API_KEY secret; a proxy URL may embed a username and password. Writes and irreversible actions: publishing SDKs, MCP packages or drafted docs nav, and deleting specs, components or webhooks, are refused unless the server is started with --allow-publish or --allow-delete. Some docs settings apply live on save. Monitoring source-map uploads need an ingest token.

Installation

In SourceWeft

  1. Open Octri CLI in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

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.

The site's structure is drafted like it is in the API Studio. Redirects, the home page and draft endpoints wait for a publish; nav buttons apply on save:

bash
octri docs redirects add /old-guide /guides/installoctri docs home set <guideId>octri docs nav publish
octri docs endpoints add POST /refunds --summary "Refund a payment"octri docs endpoints publish
octri docs components push ./components/Banner.jsxoctri docs buttons add "Sign up" https://app.example.com --style primary

A component file holds the markup alone: one root element, HTML attribute names (class, not className), and props written as {name}.

The sidebar itself round-trips through a file, and is drafted like the rest:

bash
octri docs nav --json > nav.jsonoctri docs nav set nav.jsonoctri docs nav publish

Appearance, SEO, social links, page feedback, the API playground and custom code have no draft: each set is live when it returns. Keys are spelled as in the API, @file reads a value from a file, and an empty value clears a link:

bash
octri docs theme set primaryColor=#ff6a00 colorScheme=dark codeTheme=nordoctri docs seo set metaDescription="Payments API reference" indexable=trueoctri docs socials set github=https://github.com/acme x=octri docs feedback onoctri docs playground set enabled=true allowedOrigins=https://acme.comoctri docs custom-code set [email protected] enabled=true

In Git Bash on Windows, a lone argument starting with / is rewritten into a Windows path before the CLI sees it. Set MSYS_NO_PATHCONV=1, or use PowerShell, for commands that take docs paths.

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 · convert [import|report]
sdklanguages · operations · settings get|set · validate · audit [apply|ignore|source] · quickstart [set|unset] · preview · build · builds · watch · artifacts · download · retry · publish · repos · stats
docspages [generate|regenerate|publish|title] · show <slug> · guides · nav · redirects · home · buttons · components · endpoints · 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> · docs [pull|sync]
webhookslist · events · create <url> · update <id> · test <id> · deliveries <id> · delete <id>
jobslist · show <id>
mcptools · permissions [set] · usage · calls · package [download|publish] · 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. An API key reaches the public routes only: the docs, webhook and MCP-management tools need the signed-in profile. 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 operations you cannot take back are refused unless you start the server with the flag for them:

bash
octri mcp serve --allow-publish   # publishing SDKs, your MCP package, or the drafted docs navoctri mcp serve --allow-delete    # deleting specs, components or webhooks

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.

Source: README.md at commit 90b81fc

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

3
  1. v1.0.6LatestOct 12, 2026
  2. v1.0.4Sep 27, 2026
  3. v1.0.3Sep 25, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts