Reference
ship.json Reference
Current ship.json layering, loading behavior, and key fields
ship.json Reference
Model config is now split into two layers:
~/.ship/ship.db(console-global SQLite) manages the full model pool- Project
ship.json(agent-local) only setsmodel.primary
Agent project minimal shape
{
"$schema": "./.ship/schema/ship.schema.json",
"name": "my-agent",
"version": "1.0.0",
"model": {
"primary": "default"
}
}model.primary must match an existing model id in ~/.ship/ship.db.
Console-global model pool
Full model management stays in ~/.ship/ship.db:
- providers table
- models table
- provider apiKey is encrypted at rest (
api_key_encrypted)
Use CLI:
sma console config llm provider list
sma console config llm model listRuntime resolution
At agent runtime:
- Read project
model.primary - Resolve model in SQLite models table by id
- Resolve provider in SQLite providers table by providerId
If any link is missing, startup fails fast.