Skip to content

Configuration

All configuration lives in .instar/config.json, created during setup and editable at any time. Most keys live at the top level. A handful of subsystems (scheduler, monitoring, threadline, evolution, multiMachine, dashboard, tunnel, updates, publishing, externalOperations, dispatches, gitBackup, inputGuard, notifications, onboarding, recoveryKey, integratedBeing, backup, prGate, parallelDev) nest their settings under their own key — sections below note which is which.

{
"port": 4040,
"host": "127.0.0.1"
}
FieldDefaultDescription
port4040Server port
host127.0.0.1Bind address (localhost only by default)
requestTimeoutMs30000Request timeout in milliseconds

Telegram, WhatsApp, and other adapters are configured via a messaging array:

{
"messaging": [
{
"type": "telegram",
"botToken": "...",
"chatId": -100...
},
{
"type": "whatsapp"
}
]
}

Each entry specifies an adapter type and its adapter-specific options. WhatsApp state is managed internally via the Baileys library.

{
"scheduler": {
"enabled": true,
"maxConcurrentSessions": 3
}
}
{
"authToken": "..."
}

The auth token is a top-level key, generated during setup. Used for API authentication via Bearer header.

For dashboard web access, a simpler dashboardPin is also available:

{
"dashboardPin": "1234"
}
{
"sessions": {
"maxConcurrent": 5,
"timeoutMinutes": 120,
"claudePath": "/path/to/claude",
"tmuxPath": "/path/to/tmux",
"idlePromptKillMinutes": 15,
"idlePromptKillMinutesBoundToTopic": 240,
"defaultMaxDurationMinutes": 240
}
}
FieldDefaultDescription
maxConcurrent5Maximum number of concurrent Claude Code sessions
timeoutMinutes120Session idle timeout in minutes
claudePathauto-detectedPath to the claude CLI binary. Override if your Claude Code installation is in a non-standard location or if auto-detection fails.
tmuxPathauto-detectedPath to the tmux binary. Override if tmux is installed in a non-standard location.
idlePromptKillMinutes15Minutes a session can sit idle at the Claude prompt before being killed. Increase for long-running research or cataloguing sessions.
idlePromptKillMinutesBoundToTopic240Idle threshold for sessions actively bound to a Telegram/Slack/iMessage topic. Topic-bound sessions sit at the prompt waiting for the user — that is healthy, not a zombie. The default 4h covers normal conversational pauses through a workday; raise it if your conversations frequently span longer gaps.
defaultMaxDurationMinutes240Absolute maximum session duration in minutes (4 hours by default). Safety net for sessions without an explicit per-session timeout.
{
"safety": { ... },
"agentAutonomy": { ... },
"autonomyProfile": "supervised",
"externalOperations": { ... }
}
FieldDescription
safetySafety configuration for autonomous operation
agentAutonomyAgent autonomy configuration
autonomyProfileUnified autonomy level: cautious, supervised, collaborative, autonomous
externalOperationsExternal operation safety — gate, sentinel, trust
{
"responseReview": {
"enabled": true,
"mode": "observe"
}
}

See Coherence Gate for full configuration options.

{
"threadline": { ... }
}

Configures the Threadline relay for inter-agent communication. See Threadline Protocol for details.

Mirror agent-to-agent threadline messages into per-thread Telegram topics for real-time visibility.

{
"threadline": {
"telegramBridge": {
"enabled": false,
"autoCreateTopics": false,
"mirrorExisting": true,
"allowList": [],
"denyList": []
}
}
}
FieldDefaultDescription
enabledfalseMaster kill-switch. When false, the bridge never posts to Telegram.
autoCreateTopicsfalseWhen true, automatically creates a new Telegram forum topic for each new threadline conversation. When false, only mirrors traffic into topics that already exist (or are in allowList).
mirrorExistingtrueMirror messages into topics that already have a binding, regardless of autoCreateTopics.
allowList[]Remote agent identifiers that always get auto-created topics, even if autoCreateTopics is false.
denyList[]Remote agent identifiers that never get auto-created topics. allowList takes precedence when both contain the same ID.

Thread-to-topic bindings are persisted in .instar/threadline/telegram-bridge-bindings.json. Configure via the dashboard Threadline tab or the /threadline/telegram-bridge/config API endpoint.

KeyDescription
messagingStyleFree-text description of how outbound messages should be written for this agent’s user (e.g. "ELI10, short sentences, plain words"). Consumed by the outbound tone gate’s B11_STYLE_MISMATCH rule — replies that clearly violate the style are blocked with HTTP 422. When unset, the style rule does not apply.
monitoringHealth monitoring configuration
relationshipsRelationship tracking config
feedbackFeedback loop config
dispatchesDispatch (intelligence broadcast) config
gitBackupGit backup config (opt-in for standalone agents)
updatesUpdate configuration (auto-updater behavior)
publishingPublishing (Telegraph) config
tunnelCloudflare Tunnel config
evolutionEvolution system configuration
multiMachineMulti-machine coordination config
agentTypestandalone or project-bound
userRegistrationPolicyUser registration policy
inputGuardCross-topic injection defense
notificationsNotification preferences for autonomy events
dashboardDashboard configuration
onboardingControls what data is collected during user registration
recoveryKeyRecovery key for admin self-recovery

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.