local
Use this to manage and run local models. Backed by smoltalk-llama-cpp + node-llama-cpp; install once with npm i -g smoltalk-llama-cpp before any subcommand that downloads/inspects models.
agency local download qwen3.5-2b # curated name, alias, hf: URI, or .gguf path
agency local list # downloaded models + sizes
agency local remove qwen3.5-2b # delete a downloaded model
agency local resolve my7b # show what a name/alias maps to
agency local alias add my7b hf:Qwen/Qwen2.5-7B-Instruct-GGUF:Q4_K_M
agency local alias list # curated + your aliases
agency local alias remove my7bThe agent has a shortcut for the common case:
agency agent --local-model qwen3.5-2b # download (if needed) + run locally--local-model runs the local model as both the fast and slow model, so the deep subagents stay local too; it ignores --model/--provider/--fastmodel/--slowmodel.
Subcommands
| command | purpose |
|---|---|
agency local list | List downloaded .gguf files with sizes and a total. |
agency local download <value> | Download a model if not already cached; prints the source it resolved to and the local path. <value> may be a curated short name, an alias, an hf: URI, or an existing .gguf path. |
agency local remove <name> | Delete a downloaded .gguf from the cache. |
agency local resolve <value> | Show what a name/alias maps to, without downloading. |
agency local refresh [url] | Fetch the remote model catalog and update the source:"remote" aliases in agency.json. Adds/updates models from the catalog, removes ones it dropped, and skips any name you've aliased yourself (printing what it would have set). |
agency local alias list | List usable short names. Curated entries show params, category, size, context window, and license (with the description on the next line); your aliases show their target. |
agency local alias add <name> <uri> | Add a short-name alias. Prints the agency.json path that was edited. |
agency local alias remove <name> | Remove a short-name alias. Prints the agency.json path that was inspected (the file is left untouched if the alias wasn't present). |
Refreshing the catalog
agency local refresh pulls a JSON catalog of recommended models and writes them into client.modelAliases as rich, source:"remote"-tagged entries, so new model recommendations arrive without upgrading agency. Your own hand-added aliases are never overwritten — on a name clash the command keeps yours and prints the remote value it skipped.
URL resolution (first wins): the [url] argument, AGENCY_MODEL_CATALOG_URL, client.modelCatalogUrl in agency.json, then the built-in default (raw.githubusercontent.com/egonSchiele/agency-lang/main/packages/agency-lang/data/model-catalog.json). A remote URL must be https:// (an http:// source is rejected). The source may also be a local file path or file:// URL — e.g. agency local refresh ./my-catalog.json — which reads the catalog from disk without any network call.
Heads-up: the first refresh writes one tagged entry per catalog model into
client.modelAliases, so a freshly-refreshedagency.jsonwill be noticeably larger than before. The entries are tagged with"source": "remote"— anything without that tag (your own aliases) is never touched. Re-runningagency local refreshoverwrites only thesource:"remote"entries.
Where things live
- Cache dir:
AGENCY_MODELS_DIRenv var, elseclient.modelsDirin the nearestagency.json, else~/.agency-agent/models. The default is shared withagency agent --local-model, so alocal downloadpre-populates what the agent reuses. - Aliases: written to the nearest
agency.jsonwalking up from the current directory; if none is found,~/agency.jsonis used. The CLI prints which file it edited on every add/remove. - Curated catalog: permissive licenses only (apache-2.0 / mit); restrictively-licensed weights (Gemma 1–3's custom terms, llama) are intentionally excluded. Gemma 4 ships under apache-2.0, so it is included.
Config
Aliases, the models cache dir, and the catalog URL live under client and are read at runtime, so edits take effect on the next call:
{
"client": {
"modelAliases": {
"my7b": "hf:Qwen/Qwen2.5-7B-Instruct-GGUF:Q4_K_M"
},
"modelsDir": "/data/agency-models",
// Override the URL `agency local refresh` fetches the model catalog from.
// Defaults to the catalog committed in the agency repo.
"modelCatalogUrl": "https://example.com/my-model-catalog.json"
}
}See also
agency agent --local-model— the easy button that composes the local-model primitives.- Custom providers guide — for using any non-llama provider.