> ## Documentation Index
> Fetch the complete documentation index at: https://docs.orcbot.buzzchat.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Configuration Reference

> Complete reference for all OrcBot configuration options

## Overview

OrcBot uses a hierarchical configuration system that reads settings from multiple sources in priority order:

1. **Environment variables** (highest priority)
2. **Local config** (`./orcbot.config.yaml`)
3. **Home config** (`~/orcbot.config.yaml`)
4. **Global config** (`~/.orcbot/orcbot.config.yaml`)

## Configuration File Location

OrcBot searches for configuration files in this order:

<CodeGroup>
  ```bash Local (highest priority) theme={null}
  ./orcbot.config.yaml
  ```

  ```bash Home theme={null}
  ~/orcbot.config.yaml
  ```

  ```bash Global theme={null}
  ~/.orcbot/orcbot.config.yaml
  ```
</CodeGroup>

<Note>
  Environment variables always override configuration file values for API keys and credentials.
</Note>

## Core Settings

### Agent Identity

<ParamField path="agentName" type="string" default="OrcBot">
  The display name for your agent instance.
</ParamField>

<ParamField path="agentIdentityPath" type="string" default="~/.orcbot/.AI.md">
  Path to the agent's self-updating identity file containing personality and operating instructions.
</ParamField>

### LLM Configuration

<ParamField path="modelName" type="string" default="gpt-4o">
  Primary LLM model to use. Examples: `gpt-4o`, `gpt-4-turbo`, `claude-3-5-sonnet-20241022`, `gemini-2.0-flash-exp`.

  **Policy:** SAFE - Agent can modify autonomously to optimize for different tasks.
</ParamField>

<ParamField path="llmProvider" type="enum" default="openai">
  Explicit LLM provider selection. Supported values:

  * `openai` - OpenAI (GPT-4, GPT-3.5, o1)
  * `google` - Google Gemini
  * `bedrock` - AWS Bedrock
  * `openrouter` - OpenRouter (200+ models)
  * `nvidia` - NVIDIA NIM
  * `anthropic` - Anthropic Claude
  * `ollama` - Local Ollama models

  **Policy:** SAFE - Agent can switch providers based on availability.
</ParamField>

<ParamField path="providerModelNames" type="object">
  Per-provider model preferences. Automatically persists the last model used for each provider.

  ```yaml theme={null}
  providerModelNames:
    openai: gpt-4o
    google: gemini-2.0-flash-exp
    anthropic: claude-3-5-sonnet-20241022
  ```
</ParamField>

<ParamField path="fallbackModelNames" type="object">
  Fallback models to use when primary provider is unavailable.

  ```yaml theme={null}
  fallbackModelNames:
    openai: gpt-4o-mini
    google: gemini-1.5-flash
  ```
</ParamField>

<ParamField path="fastModelName" type="string">
  Fast model for lightweight operations (e.g., `gpt-4o-mini`, `gemini-1.5-flash`).
</ParamField>

### Ollama (Local Models)

<ParamField path="ollamaEnabled" type="boolean" default={false}>
  Enable local Ollama integration for running models locally.
</ParamField>

<ParamField path="ollamaApiUrl" type="string" default="http://localhost:11434">
  Ollama API endpoint URL.

  **Policy:** SAFE - Non-sensitive endpoint configuration.
</ParamField>

## Task Execution Limits

<ParamField path="maxStepsPerAction" type="number" default={30}>
  Maximum reasoning steps per action. Dynamically adjusted based on task complexity.

  **Policy:** SAFE - Agent can adjust complexity limits based on task needs.
</ParamField>

<ParamField path="maxMessagesPerAction" type="number" default={10}>
  Maximum user-facing messages per action to prevent spam.

  **Policy:** SAFE - Agent can adjust delivery budget for long-running tasks.
</ParamField>

<ParamField path="maxActionRunMinutes" type="number" default={10}>
  Maximum execution time for a single action in minutes.
</ParamField>

<ParamField path="maxStaleActionMinutes" type="number" default={30}>
  Maximum time before an action is considered stale and terminated.
</ParamField>

<ParamField path="messageDedupWindow" type="number" default={10}>
  Window (in messages) for deduplicating similar user messages.
</ParamField>

## Memory System

### Memory Limits

<ParamField path="memoryContextLimit" type="number" default={20}>
  Number of recent short-term memories to include in context.

  **Policy:** SAFE - Agent can adjust to optimize performance (1-100).
</ParamField>

<ParamField path="memoryEpisodicLimit" type="number" default={5}>
  Number of episodic summaries to include in context.

  **Policy:** SAFE - Agent can adjust for better context (1-20).
</ParamField>

<ParamField path="memoryExtendedContextLimit" type="number" default={2000}>
  Character limit for extended memory context.
</ParamField>

<ParamField path="memoryContentMaxLength" type="number" default={500}>
  Maximum length for individual memory entries (characters).
</ParamField>

### Memory File Paths

<ParamField path="memoryPath" type="string" default="~/.orcbot/memory.json">
  Path to short-term memory storage (JSON).
</ParamField>

<ParamField path="journalPath" type="string" default="~/.orcbot/JOURNAL.md">
  Path to daily journal file for long-term event logging.
</ParamField>

<ParamField path="learningPath" type="string" default="~/.orcbot/LEARNING.md">
  Path to learning file where agent stores research findings.
</ParamField>

<ParamField path="userProfilePath" type="string" default="~/.orcbot/USER.md">
  Path to user profile containing preferences and facts.
</ParamField>

<ParamField path="worldPath" type="string" default="~/.orcbot/world.md">
  Path to world events log (GDELT, USGS earthquake data).
</ParamField>

### Memory Consolidation

<ParamField path="memoryConsolidationThreshold" type="number" default={30}>
  Number of short-term memories before triggering consolidation to episodic.
</ParamField>

<ParamField path="memoryConsolidationBatch" type="number" default={20}>
  Batch size for memory consolidation operations.
</ParamField>

<ParamField path="memoryFlushSoftThreshold" type="number" default={25}>
  Soft threshold for flushing memories to disk.
</ParamField>

<ParamField path="memoryFlushCooldownMinutes" type="number" default={30}>
  Cooldown period between memory flush operations.
</ParamField>

<ParamField path="memoryInteractionBatchSize" type="number" default={12}>
  Batch size for scoped interaction consolidation.

  **Policy:** SAFE - Non-sensitive memory quality tuning (4-100).
</ParamField>

<ParamField path="memoryInteractionStaleMinutes" type="number" default={10}>
  Max minutes before pending interaction batch is consolidated.

  **Policy:** SAFE - Non-sensitive memory durability tuning (1-180).
</ParamField>

<ParamField path="memoryDedupWindowMinutes" type="number" default={5}>
  Deduplication window for duplicate inbound memory events.

  **Policy:** SAFE - Non-sensitive reliability tuning (1-120).
</ParamField>

### Thread Context

<ParamField path="threadContextRecentN" type="number" default={8}>
  Number of recent messages to include in thread context.
</ParamField>

<ParamField path="threadContextRelevantN" type="number" default={8}>
  Number of relevant messages to include from semantic search.
</ParamField>

<ParamField path="threadContextMaxLineLen" type="number" default={420}>
  Maximum line length for thread context entries.
</ParamField>

<ParamField path="threadContextOtherMemoriesN" type="number" default={5}>
  Number of other memories to include in thread context.
</ParamField>

### Context Limits by Type

<ParamField path="journalContextLimit" type="number" default={1500}>
  Character limit for journal entries in context.
</ParamField>

<ParamField path="learningContextLimit" type="number" default={1500}>
  Character limit for learning entries in context.
</ParamField>

<ParamField path="userContextLimit" type="number" default={2000}>
  Character limit for user profile data in context.
</ParamField>

<ParamField path="userExchangeContextLimit" type="number" default={8}>
  Scoped user exchange count injected into decisions.

  **Policy:** SAFE - Non-sensitive context sizing control (3-30).
</ParamField>

### Step Compaction

<ParamField path="stepCompactionThreshold" type="number" default={10}>
  Number of steps before compaction is triggered.
</ParamField>

<ParamField path="stepCompactionPreserveFirst" type="number" default={2}>
  Number of first steps to preserve during compaction.
</ParamField>

<ParamField path="stepCompactionPreserveLast" type="number" default={5}>
  Number of last steps to preserve during compaction.
</ParamField>

<ParamField path="stepCompactionExpandOnDemand" type="boolean" default={true}>
  Expand compacted middle step history for continuity-heavy tasks.

  **Policy:** SAFE - Non-sensitive context shaping behavior.
</ParamField>

<ParamField path="stepCompactionExpansionMaxMiddleSteps" type="number" default={12}>
  Maximum number of middle steps to expand on continuity intent.

  **Policy:** SAFE - Non-sensitive context sizing control (1-50).
</ParamField>

<ParamField path="stepCompactionExpansionMaxChars" type="number" default={2400}>
  Maximum characters reserved for expanded middle-step context.

  **Policy:** SAFE - Non-sensitive context sizing control (400-20000).
</ParamField>

## Autonomy & Heartbeat

<ParamField path="autonomyEnabled" type="boolean" default={true}>
  Enable autonomous operation mode where the agent can initiate tasks independently.

  **Policy:** APPROVAL - Autonomy mode should be explicitly approved.
</ParamField>

<ParamField path="autonomyInterval" type="number" default={15}>
  Autonomous operation interval in minutes. Uses exponential backoff when unproductive.

  **Policy:** APPROVAL - Autonomy settings affect system behavior significantly.
</ParamField>

<ParamField path="autonomyPostUserCooldownSeconds" type="number" default={90}>
  Cooldown period after user interaction before autonomy resumes.
</ParamField>

<ParamField path="autonomyBacklogLimit" type="number" default={3}>
  Maximum number of autonomous tasks in the queue.
</ParamField>

<ParamField path="autonomyAllowedChannels" type="array" default={[]}>
  List of channels where the agent can send proactive messages.

  ```yaml theme={null}
  autonomyAllowedChannels:
    - telegram
    - discord
  ```

  <Note>
    Empty array means silent mode - agent will not send unsolicited messages. Direct responses are always allowed.
  </Note>
</ParamField>

<ParamField path="workerPoolAllowAutonomyDuringUserWork" type="boolean" default={false}>
  Allow autonomy lane to continue running while user lane is busy.

  **Policy:** APPROVAL - Parallel autonomy can increase throughput but may compete for resources.
</ParamField>

## Action Queue

<ParamField path="actionQueuePath" type="string" default="~/.orcbot/actions.json">
  Path to the durable action queue file.
</ParamField>

<ParamField path="actionQueueCompletedTTL" type="number" default={86400000}>
  Time-to-live for completed actions in milliseconds (default: 24 hours).
</ParamField>

<ParamField path="actionQueueFailedTTL" type="number" default={259200000}>
  Time-to-live for failed actions in milliseconds (default: 72 hours).
</ParamField>

<ParamField path="actionQueueFlushIntervalMs" type="number" default={5000}>
  Interval for flushing action queue to disk in milliseconds.
</ParamField>

<ParamField path="actionQueueMaintenanceIntervalMs" type="number" default={60000}>
  Interval for action queue maintenance (cleanup) in milliseconds.
</ParamField>

## Command Execution

<ParamField path="commandTimeoutMs" type="number" default={120000}>
  Timeout for shell command execution in milliseconds (default: 2 minutes).
</ParamField>

<ParamField path="commandRetries" type="number" default={1}>
  Number of retries for failed commands.
</ParamField>

<ParamField path="commandWorkingDir" type="string">
  Working directory for command execution (defaults to current directory).
</ParamField>

<ParamField path="commandAllowList" type="array">
  List of allowed commands. Default includes common development tools:

  ```yaml theme={null}
  commandAllowList:
    - npm
    - node
    - git
    - python
    - curl
    - wget
  ```
</ParamField>

<ParamField path="commandDenyList" type="array">
  List of denied commands for security. Includes destructive operations:

  ```yaml theme={null}
  commandDenyList:
    - rm
    - rmdir
    - del
    - format
    - shutdown
  ```

  **Policy:** LOCKED - Security-critical configuration.
</ParamField>

<ParamField path="autoExecuteCommands" type="boolean" default={false}>
  Automatically execute commands without confirmation (use with caution).
</ParamField>

## File Paths

<ParamField path="projectRoot" type="string" default=".">
  Root directory for source code operations. Auto-detected from `package.json` location.
</ParamField>

<ParamField path="buildWorkspacePath" type="string" default="~/.orcbot/workspace">
  Workspace directory for building and compiling code.
</ParamField>

<ParamField path="skillsPath" type="string" default="~/.orcbot/SKILLS.md">
  Path to skills documentation file.
</ParamField>

<ParamField path="pluginsPath" type="string" default="~/.orcbot/plugins">
  Directory for hot-loadable TypeScript plugins.
</ParamField>

<ParamField path="toolsPath" type="string" default="~/.orcbot/tools">
  Directory for custom tool scripts.
</ParamField>

## Plugins

<ParamField path="pluginAllowList" type="array" default={[]}>
  Whitelist of allowed plugins. Empty means all plugins are allowed.
</ParamField>

<ParamField path="pluginDenyList" type="array" default={[]}>
  Blacklist of denied plugins. Takes precedence over allow list.
</ParamField>

<ParamField path="pluginHealthCheckIntervalMinutes" type="number" default={15}>
  Interval for checking plugin health and auto-repair.
</ParamField>

## Decision Pipeline

### Skill Routing

<ParamField path="skillRoutingRules" type="array" default={[]}>
  Intent-based skill selection rules for better tool matching.

  ```yaml theme={null}
  skillRoutingRules:
    - match: "search"
      prefer:
        - web_search
        - browser_navigate
    - match: "code"
      prefer:
        - run_command
        - execute_typescript
      avoid:
        - browser_navigate
  ```

  **Policy:** APPROVAL - Routing rules can affect which tools are used.
</ParamField>

### Tool Loop Protection

<ParamField path="maxToolRepeats" type="number" default={5}>
  Maximum times a tool can be repeated in sequence.
</ParamField>

<ParamField path="maxResearchToolRepeats" type="number" default={15}>
  Higher repeat limit for research tools (web\_search, browser\_navigate).
</ParamField>

<ParamField path="maxToolLoops" type="number" default={3}>
  Maximum number of tool usage loops before intervention.
</ParamField>

### Autopilot Mode

<ParamField path="autopilotNoQuestions" type="boolean" default={false}>
  Suppress clarification requests to keep agent moving autonomously.
</ParamField>

<ParamField path="autopilotNoQuestionsAllow" type="array" default={[]}>
  Skills allowed to ask questions even in autopilot mode.
</ParamField>

<ParamField path="autopilotNoQuestionsDeny" type="array" default={[]}>
  Skills explicitly denied from asking questions.
</ParamField>

## Reasoning & Simulation

<ParamField path="robustReasoningMode" type="boolean" default={false}>
  Enable enhanced reasoning with deeper analysis.
</ParamField>

<ParamField path="reasoningExposeChecklist" type="boolean" default={false}>
  Send the agent's internal step-by-step checklist to the user before starting complex tasks.
</ParamField>

<ParamField path="reasoningChecklistMaxItems" type="number" default={5}>
  Maximum number of checklist items to expose.
</ParamField>

<ParamField path="skipSimulationForSimpleTasks" type="boolean" default={true}>
  Skip pre-task simulation for simple/trivial tasks to reduce latency.
</ParamField>

<ParamField path="compactSkillsPrompt" type="boolean" default={false}>
  Use compact skill descriptions in prompts to reduce token usage.
</ParamField>

## Progress Feedback

<ParamField path="progressFeedbackEnabled" type="boolean" default={true}>
  Enable progress feedback messages during long-running tasks.

  **Policy:** SAFE - Agent can adjust feedback verbosity.
</ParamField>

<ParamField path="progressFeedbackStepInterval" type="number" default={4}>
  Send progress update every N steps.
</ParamField>

<ParamField path="progressFeedbackForceInitial" type="boolean" default={true}>
  Always send initial "working on it" message.
</ParamField>

<ParamField path="progressFeedbackTypingOnly" type="boolean" default={true}>
  Use typing indicators instead of sending progress messages (reduces noise).

  **Policy:** SAFE - Agent can reduce channel noise while preserving feedback.
</ParamField>

## User Experience

<ParamField path="sessionScope" type="enum" default="per-channel-peer">
  Conversation session scope:

  * `main` - Single global session
  * `per-peer` - Separate session per user
  * `per-channel-peer` - Separate session per channel-user combination
</ParamField>

<ParamField path="onboardingQuestionnaireEnabled" type="boolean" default={true}>
  Prompt new users with onboarding questionnaire.
</ParamField>

<ParamField path="reconnectBriefingEnabled" type="boolean" default={true}>
  Send briefing to users who reconnect after inactivity.
</ParamField>

<ParamField path="reconnectBriefingThresholdDays" type="number" default={3}>
  Days of inactivity before triggering reconnect briefing.
</ParamField>

<ParamField path="reconnectBriefingMaxCompletions" type="number" default={5}>
  Maximum completed tasks to include in briefing.
</ParamField>

<ParamField path="reconnectBriefingMaxPending" type="number" default={3}>
  Maximum pending tasks to include in briefing.
</ParamField>

<ParamField path="enforceExplicitFileRequestForSendFile" type="boolean" default={false}>
  Require explicit user request before send\_file is allowed.

  **Policy:** SAFE - Agent can tune delivery strictness for file attachments.
</ParamField>

## Storage

<ParamField path="vectorMemoryMaxEntries" type="number" default={5000}>
  Maximum entries in vector memory index.
</ParamField>

<ParamField path="processedMessagesCacheSize" type="number" default={1000}>
  Size of processed messages cache for deduplication.
</ParamField>

<ParamField path="tokenUsagePath" type="string" default="~/.orcbot/token-usage-summary.json">
  Path to token usage summary file.
</ParamField>

<ParamField path="tokenLogPath" type="string" default="~/.orcbot/token-usage.log">
  Path to detailed token usage log.
</ParamField>

## Server Mode

<ParamField path="serverMode" type="boolean" default={false}>
  Enable conservative defaults optimized for server/headless deployments.

  Applies reduced memory limits and more aggressive cleanup:

  * Reduced memory context limits
  * Shorter action TTLs
  * More frequent maintenance cycles
  * Compact skills prompt enabled
</ParamField>

## Web Gateway

<ParamField path="gatewayPort" type="number" default={3100}>
  HTTP port for the web gateway.
</ParamField>

<ParamField path="gatewayHost" type="string" default="0.0.0.0">
  Host address to bind the gateway server.
</ParamField>

<ParamField path="gatewayApiKey" type="string">
  API key for authenticating gateway requests.

  ```bash theme={null}
  curl -H "X-Api-Key: your-key" http://localhost:3100/api/status
  ```
</ParamField>

<ParamField path="gatewayCorsOrigins" type="array" default={["*"]}>
  CORS allowed origins for gateway API.
</ParamField>

## Image Generation

<ParamField path="imageGenProvider" type="enum">
  Image generation provider:

  * `openai` - DALL-E
  * `google` - Imagen

  **Policy:** SAFE - Non-critical preference setting.
</ParamField>

<ParamField path="imageGenModel" type="string">
  Image generation model name.

  **Policy:** SAFE - Non-critical preference setting.
</ParamField>

<ParamField path="imageGenSize" type="string" default="1024x1024">
  Default image generation size (e.g., `1024x1024`, `512x512`).
</ParamField>

<ParamField path="imageGenQuality" type="string" default="medium">
  Image generation quality (`low`, `medium`, `high`).
</ParamField>

## Agentic User

<ParamField path="agenticUserEnabled" type="boolean" default={false}>
  Enable agentic user simulation for testing and validation.
</ParamField>

<ParamField path="agenticUserResponseDelay" type="number" default={120}>
  Simulated user response delay in seconds.
</ParamField>

<ParamField path="agenticUserConfidenceThreshold" type="number" default={70}>
  Confidence threshold (0-100) for agentic user interventions.
</ParamField>

<ParamField path="agenticUserProactiveGuidance" type="boolean" default={true}>
  Enable proactive guidance from agentic user.
</ParamField>

<ParamField path="agenticUserProactiveStepThreshold" type="number" default={8}>
  Steps before proactive guidance is triggered.
</ParamField>

<ParamField path="agenticUserCheckInterval" type="number" default={30}>
  Interval for checking agentic user status in seconds.
</ParamField>

<ParamField path="agenticUserMaxInterventions" type="number" default={3}>
  Maximum interventions per task from agentic user.
</ParamField>

<ParamField path="agenticUserNotifyUser" type="boolean" default={true}>
  Notify real user about agentic user interventions.
</ParamField>

## World Events

<ParamField path="worldEventsSources" type="array" default={["gdelt", "usgs"]}>
  Data sources for world events tracking:

  * `gdelt` - GDELT Project (global events)
  * `usgs` - USGS earthquake data
</ParamField>

<ParamField path="worldEventsRefreshSeconds" type="number" default={60}>
  Interval for refreshing world events data.
</ParamField>

<ParamField path="worldEventsLookbackMinutes" type="number" default={60}>
  Lookback window for fetching historical events.
</ParamField>

<ParamField path="worldEventsMaxRecords" type="number" default={250}>
  Maximum number of event records to store.
</ParamField>

<ParamField path="worldEventsBatchMinutes" type="number" default={10}>
  Batch interval for event aggregation.
</ParamField>

<ParamField path="worldEventsStoreEnabled" type="boolean" default={true}>
  Store world events to memory.
</ParamField>

<ParamField path="worldEventsHeartbeatEnabled" type="boolean" default={true}>
  Include world events in autonomy heartbeat.
</ParamField>

<ParamField path="worldEventsGdeltQuery" type="string" default="global">
  GDELT query filter.
</ParamField>

<ParamField path="worldEventsGlobeRenderer" type="enum" default="mapscii">
  Globe visualization renderer:

  * `ascii` - ASCII art
  * `external` - External command
  * `map` - Simple map
  * `mapscii` - MapSCII terminal viewer
</ParamField>

<ParamField path="worldEventsGlobeCommand" type="string" default="mapscii">
  Command for external globe renderer.
</ParamField>

<ParamField path="worldEventsGlobeArgs" type="array" default={[]}>
  Arguments for globe renderer command.
</ParamField>

## Guidance & Guardrails

<ParamField path="guidanceMode" type="enum" default="balanced">
  Completion guidance strictness:

  * `strict` - Enforce all delivery rules strictly
  * `balanced` - Moderate enforcement
  * `fluid` - Flexible completion criteria
</ParamField>

<ParamField path="guidanceAckPatterns" type="array">
  Regular expressions for detecting acknowledgement-only messages.
</ParamField>

<ParamField path="guidanceLowValuePatterns" type="array">
  Regular expressions for detecting low-value status updates.
</ParamField>

<ParamField path="guidanceClarificationKeywords" type="array">
  Keywords for detecting clarification questions.
</ParamField>

<ParamField path="guidanceQuestionStopWords" type="array">
  Stop words to ignore when analyzing questions.
</ParamField>

<ParamField path="guidanceRepeatQuestionThreshold" type="number" default={0.65}>
  Similarity threshold for detecting repeated questions.
</ParamField>

<ParamField path="guidanceShortReplyMaxWords" type="number" default={7}>
  Maximum word count for short replies.
</ParamField>

<ParamField path="guidanceShortReplyMaxChars" type="number" default={48}>
  Maximum character count for short replies.
</ParamField>

## Time Signals

<ParamField path="timeSignalHighRiskNoMessageSeconds" type="number" default={25}>
  Seconds without message before triggering high-risk time signal.
</ParamField>

<ParamField path="timeSignalMediumRiskSilentSteps" type="number" default={4}>
  Silent steps before medium-risk time signal.
</ParamField>

<ParamField path="timeSignalMediumRiskSinceDeliverySeconds" type="number" default={45}>
  Seconds since last delivery before medium-risk time signal.
</ParamField>

## Session Anchoring

<ParamField path="sessionAnchorEnabled" type="boolean" default={true}>
  Enable session anchoring for conversation continuity.
</ParamField>

<ParamField path="sessionAnchorMaxHints" type="number" default={4}>
  Maximum session anchor hints to include in context.
</ParamField>

## Task Deduplication

<ParamField path="taskDedupWindowMs" type="number" default={60000}>
  Window for deduplicating similar tasks in milliseconds (default: 1 minute).
</ParamField>

<ParamField path="messageSimilarityThreshold" type="number" default={0.7}>
  Similarity threshold (0-1) for detecting duplicate messages.
</ParamField>

<ParamField path="recoveryDedupWindowHours" type="number" default={6}>
  Deduplication window for recovery tasks in hours.
</ParamField>

## Time Capsule

<ParamField path="timeCapsuleMaxSteps" type="number" default={500}>
  Maximum steps to preserve in time capsule.
</ParamField>

<ParamField path="timeCapsuleMaxMessages" type="number" default={100}>
  Maximum messages to preserve in time capsule.
</ParamField>

## OrcBot CLI Control

<ParamField path="orcbotControlEnabled" type="boolean" default={true}>
  Allow agent to run orcbot CLI commands.
</ParamField>

<ParamField path="orcbotControlCliAllowList" type="array">
  Allowed orcbot CLI commands:

  ```yaml theme={null}
  orcbotControlCliAllowList:
    - config get
    - config set
    - models
    - security
  ```
</ParamField>

<ParamField path="orcbotControlCliDenyList" type="array">
  Denied orcbot CLI commands:

  ```yaml theme={null}
  orcbotControlCliDenyList:
    - reset
    - daemon stop
  ```
</ParamField>

<ParamField path="orcbotControlTimeoutMs" type="number" default={45000}>
  Timeout for orcbot CLI commands in milliseconds.
</ParamField>

## Termination Force (TForce)

<ParamField path="tforceEnabled" type="boolean" default={true}>
  Enable Termination Force incident tracking and prevention.
</ParamField>

<ParamField path="tforceMaxIncidentsPerAction" type="number" default={30}>
  Maximum incidents tracked per action.
</ParamField>

## Usage Telemetry

<ParamField path="usagePingEnabled" type="boolean" default={true}>
  Enable anonymous usage telemetry.
</ParamField>

<ParamField path="usagePingUrl" type="string" default="">
  Telemetry endpoint URL.
</ParamField>

<ParamField path="usagePingTimeoutMs" type="number" default={4000}>
  Timeout for telemetry requests in milliseconds.
</ParamField>

<ParamField path="usagePingToken" type="string" default="">
  Authentication token for telemetry.
</ParamField>

## Pi AI Integration

<ParamField path="usePiAI" type="boolean" default={true}>
  Enable Pi AI integration for enhanced reasoning.
</ParamField>

## Identity Links

<ParamField path="identityLinks" type="object" default={{}}>
  Map user identities across channels:

  ```yaml theme={null}
  identityLinks:
    telegram:123456789: whatsapp:1234567890@s.whatsapp.net
    discord:987654321: telegram:123456789
  ```
</ParamField>

## Example Configuration

```yaml orcbot.config.yaml theme={null}
# Basic Setup
agentName: MyOrcBot
modelName: gpt-4o
llmProvider: openai

# Autonomy
autonomyEnabled: true
autonomyInterval: 15
autonomyAllowedChannels:
  - telegram

# Memory
memoryContextLimit: 30
memoryEpisodicLimit: 10

# Task Execution
maxStepsPerAction: 40
maxMessagesPerAction: 15

# Security
safeMode: false
commandDenyList:
  - rm
  - rmdir
  - shutdown

# Progress
progressFeedbackEnabled: true
progressFeedbackTypingOnly: true
```
