Skip to content

Configuration

All configuration lives in .instar/config.json, created during setup and editable at any time.

{
"server": {
"port": 4040,
"host": "127.0.0.1"
}
}
FieldDefaultDescription
port4040Server port
host127.0.0.1Bind address (localhost only by default)
{
"telegram": {
"botToken": "...",
"chatId": -100...,
"topicAutoCreate": true
}
}
{
"whatsapp": {
"enabled": true
}
}

WhatsApp state is managed internally via the Baileys library.

{
"scheduler": {
"enabled": true,
"maxConcurrentSessions": 3
}
}
{
"auth": {
"token": "..."
}
}

The auth token is used for API authentication. Generated during setup.

{
"serendipity": {
"enabled": true,
"maxPerSession": 5
}
}
FieldDefaultDescription
enabledtrueEnable/disable the serendipity capture protocol
maxPerSession5Maximum findings a sub-agent can capture per session

The protocol is opt-out — enabled by default. Findings are stored in .instar/state/serendipity/.

These aren’t in config.json but are critical configuration:

FilePurpose
.instar/AGENT.mdAgent identity — who it is, its principles
.instar/USER.mdUser context — who it works with, preferences
.instar/MEMORY.mdPersistent learnings across sessions
.instar/ORG-INTENT.mdOrganizational constraints (optional)

Jobs are defined in .instar/jobs.json. See Job Scheduler for the format.

Behavioral hooks are installed in .claude/settings.json and scripts live in .instar/hooks/ and .claude/scripts/. See Hooks reference for details.