# @octri/cli

Command line for Octri. Push OpenAPI specs, build SDKs in ten languages, publish docs, and triage the errors those SDKs report from production. Ships an MCP server so an AI assistant can run the same commands.

- **Type:** MCP server
- **Trust:** 60/100 (B), scored on the package rubric
- **Verification:** community-indexed — nobody has claimed this listing
- **Version:** 1.0.4
- **Author:** Octri
- **License:** MIT
- **npm:** @octri/cli
- **Source:** https://github.com/octridev/octri-cli
- **Compatible clients:** claude-code, cursor, copilot, gemini (basis: transport)

## Trust

60/100 (B), scored on the package rubric
- Publisher verified: no
- Install scripts: nothing suspicious found
- Prompt-injection scan: not run
- Obfuscation scan: not run
- Evidence age: 7 days

## Security scan

- **Status:** clean
- **Scanned:** 2026-09-28T15:22:59.763Z
- **Version scanned:** 1.0.4
- **CVEs:** none found by OSV at scan time

## Tools

33 declared. Statically extracted from the shipped source — a floor on the surface, not a census.
- `octri_whoami` — The signed-in user, org, plan, API URL and currently selected project. Call this first to confirm which environment the session is pointed at.
- `octri_list_projects` — All projects in the organisation, with ids.
- `octri_list_specs` — OpenAPI specs uploaded to a project, newest first.
- `octri_push_spec` — Upload OpenAPI spec text (JSON or YAML) as the project's new current spec. Returns the created spec id.
- `octri_import_spec_url` — Import an OpenAPI spec from a public URL.
- `octri_list_languages` — The SDK generator's language catalogue and the preference keys each language accepts.
- `octri_list_operations` — Every operation the parser found in the current spec, with method, path, operationId and deprecation, the list the SDK Studio renders.
- `octri_get_sdk_settings` — The project's persisted SDK Studio settings, per-endpoint overrides, revision, and last published release. The revision is required to write settings back.
- `octri_set_sdk_settings` — Write SDK Studio settings. Pass a full settings object (read it first with octri_get_sdk_settings and modify), plus the revision you read. A stale revision is r
- `octri_validate_spec` — Run the generator's validator against the project's current spec. Cheap; do this before spending a build.
- `octri_preview_sdk` — Generate one language WITHOUT spending a build, and return the emitted file paths (and optionally contents). This is the fast loop for generator changes.
- `octri_trigger_build` — Queue an SDK build for one or more languages. Returns a build id immediately; poll with octri_get_build or block with octri_wait_for_build.
- `octri_list_builds` — Recent SDK builds with per-language status.
- `octri_get_build` — One build's current state, including each language's lifecycle phase and any failure message.
- `octri_wait_for_build` — Block until every language of a build reaches a terminal state, then return the final per-language result. Use after octri_trigger_build.
- `octri_retry_build` — Re-run only the named languages of an existing build, in place. Omit `languages` to retry exactly the ones that failed.
- `octri_fetch_artifacts` — Download and extract a build's artifacts into the local cache so their files can be listed and read. Returns per-language file counts and a content fingerprint.
- `octri_list_generated_files` — List the files of a previously fetched build+language, with sizes. Call octri_fetch_artifacts first.
- `octri_read_generated_file` — Read one generated file from a fetched build. This is how to inspect what the generator actually emitted.
- `octri_diff_builds` — Compare two fetched builds file-by-file per language: which emitted files were added, removed or changed. The primary way to judge a generator change.
- `octri_list_doc_pages` — Documentation pages generated for the project.
- `octri_get_doc_page` — One documentation page by slug.
- `octri_list_mcp_tools` — The MCP tool catalogue this project publishes to its own customers, derived from its SDK config.
- `octri_list_sdk_repos` — Per-language GitHub repositories linked to the project's SDKs.
- `octri_monitoring_summary` — Production health for the project: event count, error count, error rate and distinct issues over a window. Call this before reading issues. It tells you whether
- `octri_list_issues` — Grouped production errors, newest first. Each issue has an id usable with octri_get_issue.
- `octri_get_issue` — One issue with its stack frames and recent events. A frame with resolved=true was de-minified against an uploaded source map; if none are, the symbols for that 
- `octri_set_issue_status` — Triage an issue: resolve it, ignore it, or reopen it (status `unresolved`).
- `octri_query_logs` — Raw production events, unaggregated. Use when an issue's grouped view is not enough, e.g. to see every occurrence across releases.
- `octri_monitoring_releases` — Error rate, new issues and regressions per release. This is how you tell whether a deploy made things worse.
- `octri_monitoring_performance` — Slowest transactions (p50/p95) and suspected N+1 query patterns for the project.
- `octri_publish_build` — Publish a ready build's artifacts to package registries. Irreversible for public registries. Prefer mode `pack` unless a release was explicitly requested.
- `octri_delete_spec` — Permanently delete a spec from a project.

## Install

**Verdict: review** — Installable, but 1 thing to check first: No publisher has proved control of this listing; it is indexed, not vouched for.
**Cautions** (coverage gaps and advisories — never blocking)
- No publisher has proved control of this listing; it is indexed, not vouched for.
**Config** (claude-code):
```json
"{\n  \"mcpServers\": {\n    \"cli\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\",\n        \"@octri/cli\"\n      ],\n      \"env\": {\n        \"OCTRI_API_KEY\": \"<YOUR_OCTRI_API_KEY>\"\n      }\n    }\n  }\n}"
```
**Credentials it will ask for** (names only — Forge never holds a value):
- `OCTRI_API_KEY` — Octri API Key (optional)
Placeholders only. Forge never holds, brokers, or transmits a credential value — replace each <YOUR_NAME> in your own config file. Do not send a value back to Forge; no Forge endpoint accepts one.
- This entry needs 1 credential (0 required). The generated config carries placeholders, so it will fail in the editor rather than at runtime if they are left unset.

## Blast radius

Extensive blast radius — deletes data; holds an api key.
- Floor 52, ceiling 52 (tier: extensive)
- This is impact, not likelihood. A high radius is not a defect: a filesystem server is supposed to write files. It is never part of the trust score.

## Machine-readable views of this entry

- Signed JSON: https://forgeregistry.com/api/v1/packages/%40octri%2Fcli
- Install plan: https://forgeregistry.com/api/v1/packages/%40octri%2Fcli/install-plan
- Alternatives: https://forgeregistry.com/api/v1/alternatives/%40octri%2Fcli
- HTML page: https://forgeregistry.com/registry/%40octri%2Fcli
- MCP: POST https://forgeregistry.com/api/mcp → `forge_get_package` / `forge_install_plan`

## About this document

Generated by Forge (https://forgeregistry.com) — a compact rendering of the same record served, signed, at the JSON URL above. Trust and scan facts are the registry's own measurements; anything Forge did not measure is named as unmeasured rather than omitted.
