Termlings workspace settings are stored in:
.termlings/workspace.json
There is no Settings tab in the TUI. Edit this file directly when you need to change workspace-level UI behavior.
{
"version": 1,
"projectName": "your-project",
"createdAt": 1772720000000,
"updatedAt": 1772723600000,
"settings": {
"avatarSize": "small",
"showBrowserActivity": true
}
}App availability can also live in the same file:
{
"apps": {
"defaults": {
"crm": false,
"browser": true
}
}
}avatarSize:"large" | "small" | "tiny"showBrowserActivity:true | false
If a setting is missing or invalid, Termlings falls back to defaults:
avatarSize:smallshowBrowserActivity:true
Apps control which agent-native file-based app surfaces are injected into agent system context and which agent-facing commands and TUI surfaces are available at runtime.
Current core app keys:
messagingrequestsorg-chartbrieftaskworkflowscalendarbrowserskillsbrandsocialadsmemorycmscrmmediaanalyticsfinanceeval
Resolution order:
- built-in defaults in code
apps.defaults- agent SOUL frontmatter
apps:allowlist, if present
If workspace.json has no apps object, all toggleable core apps default to true.
Required app rule:
messagingis always enabledworkspace.json.apps.defaults.messaging = falseis ignored- agent SOUL cannot disable
messaging evalis operator-only and is always hidden from normal agent sessions
Example:
{
"apps": {
"defaults": {
"crm": false,
"ads": false
}
}
}That means:
- CRM is disabled for everyone by default
- Ads are disabled for everyone by default
Per-agent allowlists now live in .termlings/agents/<slug>/SOUL.md:
---
name: Growth
dna: 80bf40
apps:
- messaging
- brief
- task
- social
- analytics
---That means the growth agent only gets those globally-enabled apps.
When an app is disabled, it is removed from injected context, top-level termlings --help, and any TUI tabs owned by that app.
Hide browser events in the activity feed:
{
"settings": {
"showBrowserActivity": false
}
}Use tiny avatar mode in the TUI:
{
"settings": {
"avatarSize": "tiny"
}
}