# Openwork Models

Manage OpenWork inference model aliases, openwork model overlays, discounts...

- Repository: https://github.com/different-ai/openwork (24362 stars)
- Category: Git and review
- License: see repository
- Last updated: 2026-11-01
- Runs scripts: yes, review before use

## Install

Claude Code: `npx skills add different-ai/openwork --skill openwork-models -g -a claude-code -y`
Codex: `npx skills add different-ai/openwork --skill openwork-models -g -a codex -y`
Cursor: `npx skills add different-ai/openwork --skill openwork-models -g -a cursor -y`
Gemini CLI: `npx skills add different-ai/openwork --skill openwork-models -g -a gemini-cli -y`

## Description

Manage OpenWork inference model aliases, openwork model overlays, discounts, validation, and automated base model refreshes from models.dev. Use when adding, removing, discounting, auditing, or updating OpenWork models, including requests like "update the models" that should trigger the GitHub update-models workflow and report when its PR merges.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# OpenWork Models

Use this skill for OpenWork inference model changes. The source of truth for
available upstream models is:

- `ee/apps/gateway/src/models/base.json`
- provider key: `openrouter`
- model map: `openrouter.models`

The editable OpenWork model list is:

- `ee/apps/gateway/src/models/openwork-models.json`

Managed file:

- `packages/types/src/den/inference.ts`

`ee/apps/gateway/scripts/build-models.mjs` reads `openwork-models.json` and
generates the OpenWork provider overlay in memory. It selects the API URL from
`OPENWORK_DEV_MODE`: dev uses `http://127.0.0.1:8791/api/v1`, otherwise prod
uses `https://inference.openworklabs.com/api/v1`.

Do not inspect the full `base.json` in chat. Use the scripts so the large source
model body stays out of context.

## Scripts

Extract/search source models into a temp file:

```bash
node .opencode/skills/openwork-models/scripts/extract-source-models.mjs
node .opencode/skills/openwork-models/scripts/extract-source-models.mjs --query "zai 5.1"
```

Manage OpenWork models:

```bash
node .opencode/skills/openwork-models/scripts/openwork-models.mjs search "zai 5.1"
node .opencode/skills/openwork-models/scripts/openwork-models.mjs add "z-ai/glm-5.1"
node .opencode/skills/openwork-models/scripts/openwork-models.mjs remove "z-ai/glm-5.1"
node .opencode/skills/openwork-models/scripts/openwork-models.mjs discount 0.1 "z-ai/glm-5.1"
node .opencode/skills/openwork-models/scripts/openwork-models.mjs sync
node .opencode/skills/openwork-models/scripts/openwork-models.mjs validate
```

Trigger the remote base model refresh workflow:

```bash
node .opencode/skills/openwork-models/scripts/trigger-update-workflow.mjs
node .opencode/skills/openwork-models/scripts/trigger-update-workflow.mjs --base dev --ref dev
```

## Update Models Workflow

When the user asks to update/refresh/sync the models from models.dev, do not edit
`base.json` manually. Trigger `.github/workflows/update-models.yml` and wait for
the result:

The rest: https://github.com/different-ai/openwork/blob/HEAD/.opencode/skills/openwork-models/SKILL.md
