Repository navigation
Releases: magic3007/omp-model-gateway
Releases · magic3007/omp-model-gateway
Release list
v0.4.1
Changed
assets/banner.pngre-set with the new name: the wordmark readsomp-model-gatewayin Montserrat Bold, the closest match to the original letterforms. The key-and-hexagon artwork, the gap and the gradient underline keep the original proportions — the design is scaled once, so the side margins stay as wide as they were.
v0.4.0
Now on npm.
Changed
- Renamed the package, the plugin id and the repository to
omp-model-gateway: the npm nameomp-gatewaybelongs to an unrelated project. Install withomp plugin install omp-model-gateway. An install that came from the git URL keeps working, but must move id once:omp plugin uninstall omp-gateway, then install the new one. - npm is now the documented install channel;
github:magic3007/omp-model-gatewaystays supported. - Keywords
litellmandone-apiadded, for npm search.
Added
.github/workflows/publish.yml: pushing av*tag runs the typecheck and the tests, then publishes to npm with--provenance.
v0.3.0
Any gateway, under any name, with the key kept wherever you keep secrets.
Added
apiKeyis a key reference, resolved by omp exactly like every other config value (resolveConfigValue): an environment variable name (LITELLM_API_KEY), a!commandwhose stdout is the key (!gpg -q -d ~/.omp/keys/gateway.gpg), or a literal key. The file can name where the secret comes from instead of holding it, so it is safe to track in a dotfiles repository.- The login entry accepts a reference as well as a key, resolves it before the model-list probe, and reports how the key was stored.
bun run typecheckandbun test(URL, name, model-id and config-parsing helpers), both run by CI on push and pull request.- SECURITY.md: what each reference form protects, and how to report a vulnerability privately.
Changed
- Renamed the repository, package and plugin to
omp-gateway(wasomp-gateway-login). Uninstall the old id once:omp plugin uninstall omp-gateway-login, then installgithub:magic3007/omp-gateway. - A pasted literal key that an environment variable already holds is stored as that variable's name, and the login output says which one. A literal nothing holds is stored as typed and the login output says so — a secret never reaches the file silently.
- Docs and prompt examples use vendor-neutral gateway names; the config file (
~/.omp/agent/gateways-login.json) and its format are unchanged. - Base URLs with a query string or fragment are rejected at login: the derived endpoints would have dropped them silently.
Fixed
- One malformed row no longer costs every gateway. The file was validated as a whole, so a single bad row made the loader report no gateways at all — and the next login then wrote that empty list back over the file. Rows are now parsed one by one, bad ones are logged and skipped, and the login entry refuses to write while any row is unusable.
openai-completionsgateways now get the/v1that wire requires, andanthropic-messagesgateways no longer get a doubled/v1when the stored URL ends in/v1: base URLs are canonicalized to the gateway root and the suffix is added per use.- A login name already taken by another provider (a built-in, or a
models.ymlblock) is rejected instead of shadowing it. - A second row repeating a gateway name is skipped instead of registering the provider twice.
- The config file is
chmod'ed to0600on every write, not only when created. - Model discovery failures are logged with the gateway name and endpoint before being rethrown; omp otherwise swallows them and the models just go missing.
- Typing the name of a variable nothing exports now fails with that diagnosis, instead of the gateway's bare 401 for a key it never had.
- Non-chat ids with no prefix (
tts-1,whisper-1) are filtered out of catalogs.
v0.2.0 — named gateways, many per install
Any base URL + API key gateway, and as many as you like.
Install
omp plugin install git:https://github.com/magic3007/omp-gateway-login
omp login # → Custom gateway (name + base URL + API key)
# ① name ② base URL ③ API key ④ extra model ids (optional)Then allow each name in ~/.omp/agent/config.yml:
enabledModels:
- mafia/*
- kafara/*
- volcengine/*Highlights
- The login entry now takes a name; that name is the model prefix (
mafia/claude-opus-5-5,volcengine/ark-code-latest). - Unlimited gateways per installation, stored in
~/.omp/agent/gateways-login.json(0600) and registered at every start. - Extra model ids cover plan-only aliases a gateway never lists — the Ark coding plan's
ark-code-latest,doubao-seed-2.0-pro,glm-5.3. - Catalog handling learned from real gateways: reported
token_limits/modalitiesare used instead of blanket 200k/64k and text+image;Shutdown/Deprecatedtombstones and non-texttask_typeentries are dropped. - Renamed the project to omp-gateway-login — CLIProxyAPI is one gateway among many.
Verified against three live gateways (CLIProxyAPI, a vendor router, the Volcengine Ark coding plan): logins, discovery and end-to-end calls.
See CHANGELOG.md for details.
v0.1.0 — first release
A /login entry for any CLIProxyAPI gateway.
Install
omp plugin install git:https://github.com/magic3007/omp-cliproxy-login
omp login # pick "CLIProxyAPI Gateway (API key)" → gateway URL → API keyThen allow the discovered catalog in ~/.omp/agent/config.yml:
enabledModels:
- cliproxy/*Highlights
- Gateway URL + API key are typed at login and validated with one
/v1/modelscall — nothing is stored on a bad pair. - The gateway URL is remembered in
~/.omp/agent/cliproxy-login.json; a new URL re-registers the provider without a restart. - Live catalog discovery through
cliproxy/<model-id>selectors, with image/video/speech entries filtered out. - Costs nothing to run: the extension is dependency-free TypeScript loaded by omp itself.
See CHANGELOG.md for details.