opencode-gmi-auth
v0.1.2
Published
GMI Cloud provider for OpenCode and magpie: API key sign-in, live model catalog, per-token pricing
Maintainers
Readme
opencode-gmi-auth
GMI Cloud provider plugin for OpenCode and magpie, written in OpenCode's v1 plugin shape.
Registers provider gmicloud against the OpenAI-compatible
GMI Cloud API
(https://api.gmi-serving.com/v1), with an API key sign-in and a live
per-account model catalog from GET /v1/models.
Install
In magpie (a folder is loaded where it is; nothing is installed):
magpie plugin add ./opencode-gmi-authOnce published to npm (or from git):
magpie plugin add opencode-gmi-authOr straight from this repository:
magpie plugin add github:Xuanwo/opencode-gmi-authIn OpenCode, put the package in plugin in opencode.json, or drop the
folder under ~/.config/opencode/plugins/.
Sign in
Create an API key in the GMI Cloud console, then:
magpie plugin login gmicloudThe key is saved as-is; the first request validates it. A refused key
(GMI answers 401 Invalid API key) marks the account so magpie asks for a
new sign-in. For multi-organization access, the API accepts an
X-Organization-ID header; the loader forwards the organization saved
with the sign-in.
Models
- The provider id is
gmicloud, which models.dev already lists, so OpenCode and magpie start from its entry. - After sign-in the plugin fetches the account's own catalog and replaces
the list. Chat-completion models keep their GMI names (
id), context length and per-token pricing (converted to per-million USD, as OpenCode and magpie track costs). - Non-chat entries (embeddings, image generation, speech) are filtered out.
- Reasoning and multimodal flags are inferred from model ids and names when
the catalog does not say, and can be overridden in
models.json/plugins.jsonmodel entries.
Development
npm testnpm test runs unit tests for catalog mapping and plugin hooks
(node --test, no dependencies). To try it against a real magpie without
touching your configuration:
sb=$(mktemp -d)
m() { env HOME=$sb XDG_CONFIG_HOME=$sb/.config XDG_CACHE_HOME=$sb/.cache \
MAGPIE_ADDR=127.0.0.1:3499 /path/to/magpie "$@"; }
m plugin add ./opencode-gmi-auth
m plugin --jsonSecurity
Plugins run with full local permissions. Review this repository before installing it on machines you care about.
License
MIT
