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.
Server
Section titled “Server”{ "port": 4040, "host": "127.0.0.1"}| Field | Default | Description |
|---|---|---|
port | 4040 | Server port |
host | 127.0.0.1 | Bind address (localhost only by default) |
requestTimeoutMs | 30000 | Request timeout in milliseconds |
Messaging
Section titled “Messaging”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
Section titled “Scheduler”{ "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
Section titled “Sessions”{ "sessions": { "maxConcurrent": 5, "timeoutMinutes": 120, "claudePath": "/path/to/claude", "tmuxPath": "/path/to/tmux", "idlePromptKillMinutes": 15, "idlePromptKillMinutesBoundToTopic": 240, "defaultMaxDurationMinutes": 240 }}| Field | Default | Description |
|---|---|---|
maxConcurrent | 5 | Maximum number of concurrent Claude Code sessions |
timeoutMinutes | 120 | Session idle timeout in minutes |
claudePath | auto-detected | Path to the claude CLI binary. Override if your Claude Code installation is in a non-standard location or if auto-detection fails. |
tmuxPath | auto-detected | Path to the tmux binary. Override if tmux is installed in a non-standard location. |
idlePromptKillMinutes | 15 | Minutes a session can sit idle at the Claude prompt before being killed. Increase for long-running research or cataloguing sessions. |
idlePromptKillMinutesBoundToTopic | 240 | Idle 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. |
defaultMaxDurationMinutes | 240 | Absolute maximum session duration in minutes (4 hours by default). Safety net for sessions without an explicit per-session timeout. |
Safety & Autonomy
Section titled “Safety & Autonomy”{ "safety": { ... }, "agentAutonomy": { ... }, "autonomyProfile": "supervised", "externalOperations": { ... }}| Field | Description |
|---|---|
safety | Safety configuration for autonomous operation |
agentAutonomy | Agent autonomy configuration |
autonomyProfile | Unified autonomy level: cautious, supervised, collaborative, autonomous |
externalOperations | External operation safety — gate, sentinel, trust |
Response Review (Coherence Gate)
Section titled “Response Review (Coherence Gate)”{ "responseReview": { "enabled": true, "mode": "observe" }}See Coherence Gate for full configuration options.
Threadline
Section titled “Threadline”{ "threadline": { ... }}Configures the Threadline relay for inter-agent communication. See Threadline Protocol for details.
Telegram Bridge (Threadline)
Section titled “Telegram Bridge (Threadline)”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": [] } }}| Field | Default | Description |
|---|---|---|
enabled | false | Master kill-switch. When false, the bridge never posts to Telegram. |
autoCreateTopics | false | When 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). |
mirrorExisting | true | Mirror 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.
Additional Config Keys
Section titled “Additional Config Keys”| Key | Description |
|---|---|
messagingStyle | Free-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. |
monitoring | Health monitoring configuration |
relationships | Relationship tracking config |
feedback | Feedback loop config |
dispatches | Dispatch (intelligence broadcast) config |
gitBackup | Git backup config (opt-in for standalone agents) |
updates | Update configuration (auto-updater behavior) |
publishing | Publishing (Telegraph) config |
tunnel | Cloudflare Tunnel config |
evolution | Evolution system configuration |
multiMachine | Multi-machine coordination config |
agentType | standalone or project-bound |
userRegistrationPolicy | User registration policy |
inputGuard | Cross-topic injection defense |
notifications | Notification preferences for autonomy events |
dashboard | Dashboard configuration |
onboarding | Controls what data is collected during user registration |
recoveryKey | Recovery key for admin self-recovery |
Identity Files
Section titled “Identity Files”These aren’t in config.json but are critical configuration:
| File | Purpose |
|---|---|
.instar/AGENT.md | Agent identity — who it is, its principles |
.instar/USER.md | User context — who it works with, preferences |
.instar/MEMORY.md | Persistent learnings across sessions |
.instar/ORG-INTENT.md | Organizational 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.