# Weekly Hugging Face model license and access audit

> Check every Hugging Face model your products rely on each Monday, and open a high priority Linear issue the moment one becomes more restrictive.

- Workflow type: agent
- Services: Hugging Face, Google Sheets, Linear
- Categories: Engineering, Operations
- Published: 2026-08-04

## What it does

- Reads your watchlist of approved models from a Google Sheet, including the license you recorded at approval time and the product or team that depends on each one.
- Checks every model on Hugging Face each Monday morning for its current license, whether it has become gated, and whether it is still publicly available.
- Opens a high priority Linear issue for legal review whenever a model gets more restrictive, naming the old and new license, the product at risk, and a link to the model.
- Writes the current license and a last checked date back to the sheet, so your record stays accurate and you never get the same alert twice.

## What you'll need

- A Hugging Face account
- A Google Sheet listing the models you have approved, one per row, with the license you recorded and the product or team that uses it
- A Linear workspace with a team that handles legal or compliance review

## Prompt

Every Monday at 9am, audit the Hugging Face models my team depends on and flag any that have become more legally restrictive since we approved them.

The watchlist lives in a Google Sheets tab. Read it with Get Values. Each row is one approved model and has these columns: the model repo id (for example acme-labs/summarizer-7b), the license we recorded when we approved that model, the product or team that depends on it, the access status we last recorded (open, gated, or unavailable), and the timestamp of the last check. Skip the header row. Treat this sheet as the system of record for what we approved, because Hugging Face has no concept of our internal approval state.

For each row, call Get Model on Hugging Face with the repo id and read the current license, the gated status, and the tags. If the call comes back as not found or forbidden, treat the model as private, deleted, or otherwise no longer accessible to us rather than as an error to abort on.

Compare what you find against the recorded values and decide whether restrictions have increased. Restrictions have increased when a permissive license (Apache 2.0, MIT, BSD, and similar) has shifted to a custom, research only, non commercial, or unspecified license; when a model that was open has become gated; or when the repo has become private or been deleted. Use judgement on the license strings, since many are custom names rather than standard identifiers, and a rename or a change of casing for the same underlying license is not a real change. Gated status matters as much as the license string, because a model going gated silently breaks automated pulls.

Only raise an issue when restrictions increase. Never raise one when a model becomes more permissive, for example moving from a research only license to Apache 2.0. In that case just update the sheet and move on.

For each model where restrictions increased, create a Linear issue with Create Issue on the team that handles legal review. The title should name the model and the nature of the change. The description should state the model repo id, the old recorded license and the new current license, exactly what changed (license, gating, or availability), the product or team at risk, and a link to the repo at https://huggingface.co/ followed by the repo id. Set the issue priority to High (priority value 2 in Linear) so legal picks it up in the current week.

After handling each row, use Update Values to write the current license, the current access status, and today's date as the last checked timestamp back into that row. This write back is also how we avoid duplicate reports: next week's run compares against the updated recorded values, so a change that has already been filed will match and will not produce a second issue. Never file a second issue for a change that is already recorded in the sheet.

If nothing has changed, do not create any issues, but still refresh the last checked timestamps so we can prove the audit ran.

## How to customize

- Change the cadence: run it daily in the run up to a major release, or monthly if your approved model list rarely moves.
- Adjust what counts as an escalation, for example treating any move away from Apache 2.0 or MIT as urgent rather than high priority.
- Send issues to a specific Linear team, or add the engineer who owns the affected product as the assignee.

## Example output

Linear issue created (High priority)

Title: License change: acme-labs/summarizer-7b is now research only

Model: acme-labs/summarizer-7b
Recorded license: apache-2.0
Current license: custom research only license
What changed: the license became more restrictive
Product at risk: Support Copilot (Platform team)
Repo: https://huggingface.co/acme-labs/summarizer-7b

Flagged for legal review. The watchlist has been updated with the new license and a last checked date of 2026-08-03.

## FAQ

### Will it alert me when a model becomes more permissive?

No. It only raises an issue when restrictions increase. If a model moves from a research only license to something open like Apache 2.0, that is good news, so it quietly updates your sheet and stays silent.

### Will I get the same alert every week for the same model?

No. Once a change has been filed, the new license is written back into your sheet as the recorded value. The following week compares against that updated record, sees no new change, and does not file a second issue.

### What happens if a model is deleted or made private?

That counts as a restriction increase and gets an issue. A model disappearing or going private breaks automated downloads just as surely as a license change, so it is worth knowing about the same week it happens.

### Do I need a paid Hugging Face plan?

No. Public model information is readable with a free account. Connecting an account is still recommended so your weekly checks are not held back by limits on anonymous requests.

### How many models can it keep an eye on?

It works through your sheet one row at a time, so a watchlist of a few dozen models runs comfortably. If you track hundreds, consider splitting them across separate tabs or staggering the checks.

Use this prompt in General Input: https://www.generalinput.com/prompts/weekly-hugging-face-model-license-and-access-audit