Configuration
Console Config Storage (ship.db)
Console-global config is now unified in ~/.ship/ship.db with encrypted sensitive fields
Console Config Storage (ship.db)
From current versions, Console no longer uses:
~/.ship/ship.json~/.ship/.env
Console-global config is unified in:
~/.ship/ship.db
What is stored
ship.db contains these major groups:
- Model pool (providers/models)
- Console-global env (
global_env) - Agent-private env (
agent_env) - Bot account vault (
channel_accounts) - Console-global extension config (
extensions_config)
Sensitive fields (such as API keys) are stored encrypted.
Boundary with Agent project config
These files remain agent-project-level config (unchanged):
<agent>/ship.json<agent>/.env
So the split is:
- Console:
~/.ship/ship.db - Agent: project-local
ship.json/.env
Environment Variable Scope (Important)
Current versions use explicit layers:
- Console-global shared env:
global_env - Agent-private env in DB:
agent_env - Agent-local runtime overlay:
<agent>/.env(user-managed) - Chat channel credentials:
channel_accounts(bound byship.jsonchannelAccountId)
Key behavior:
- Runtime env map is
agent_env + <agent>/.env(.envwins). .envremains agent-local and does not mutate globalprocess.env.ship.jsonstores channel binding (channelAccountId) instead of plaintext secrets.- Bot credentials are resolved from
channel_accounts. - Extension config is read from
extensions_config.
Common operations
Initialize Console (writes into ship.db):
city console initRead/update console extension config:
city console config get extensions.voice
city console config set extensions.voice.enabled trueManage model pool:
city console model list
city console model createRelated docs
Runtime files
These runtime files stay in filesystem (not config):
~/.ship/console/console.pid~/.ship/console/ui.pid~/.ship/console/console.log~/.ship/console/ui.log~/.ship/console/agents.json