Overview
OrcBot provides multiple layers of security controls including safe mode, command filtering, plugin restrictions, and policy-based configuration management.Security Modes
Safe Mode
Enable safe mode to disable command execution and skill creation.Policy: LOCKED - Security-critical configuration. Agent cannot modify.When enabled:
run_commandskill is blockedcreate_custom_skillis blocked- Command-based operations are restricted
- Plugin execution may be limited
Sudo Mode
Enable unrestricted access mode (bypasses command allow/deny lists).Policy: LOCKED - Security-critical configuration.
Override Mode
Enable behavioral override mode that bypasses persona boundaries.Policy: LOCKED - Security-critical configuration.
Command Security
Command Allow List
Whitelist of allowed shell commands. Empty list means all commands are blocked (unless in sudo mode).Default includes common development tools:
Command Deny List
Blacklist of denied commands. Takes precedence over allow list.Policy: LOCKED - Security-critical configuration.Default blocks destructive operations:
The deny list is enforced even in sudo mode to prevent accidental catastrophic operations.
Command Execution Settings
Timeout for shell command execution in milliseconds (default: 2 minutes).Prevents runaway processes from consuming resources indefinitely.
Number of retries for failed commands.
Working directory for command execution. Defaults to current directory.
Automatically execute commands without confirmation.
Example: Lockdown Configuration
orcbot.config.yaml
Plugin Security
Plugin Allow List
Whitelist of allowed plugins. Empty array means all plugins are allowed.
When
pluginAllowList is non-empty, only plugins in the list can be loaded.Plugin Deny List
Blacklist of denied plugins. Takes precedence over allow list.
Plugin Health Monitoring
Interval for checking plugin health and triggering auto-repair.OrcBot automatically detects broken plugins and uses
self_repair_skill to fix them.Example: Plugin Security
orcbot.config.yaml
Admin Permissions
Per-channel admin user allowlists. Admins have access to elevated commands and skills.Policy: LOCKED - Security-critical configuration.
Admin-Only Skills
These skills are restricted to admin users:run_command
Execute shell commands on the host system.
create_custom_skill
Create executable TypeScript plugin skills.
manage_config
Modify configuration settings (subject to policy).
spawn_agent
Create worker agent processes.
delegate_task
Orchestrate tasks across multiple agents.
system_check
Verify system dependencies and commands.
self_repair_skill
Repair broken plugin code.
execute_typescript
Write and execute TypeScript scripts.
Configuration Policy
OrcBot uses a three-tier policy system to control which configuration options agents can modify:Policy Levels
SAFE - Agent can modify
SAFE - Agent can modify
Safe configuration options that agents can modify autonomously to optimize performance:
modelName- Switch models for different tasksllmProvider- Switch providers based on availabilitymemoryContextLimit- Adjust memory contextmaxStepsPerAction- Adjust complexity limitsprogressFeedbackEnabled- Control feedback verbositysearchProviderOrder- Optimize search provider selection- Browser and diagnostic settings
APPROVAL - Requires approval
APPROVAL - Requires approval
Sensitive options that agents can request to change but require human approval:
- API keys (OpenAI, Google, Anthropic, etc.)
autonomyEnabled- Enable autonomous operationautonomyInterval- Autonomy timingskillRoutingRules- Skill selection rules
Agents can view pending approvals with
manage_config({ action: "pending" })LOCKED - Agent cannot modify
LOCKED - Agent cannot modify
Security-critical options that agents cannot modify at all:
- Channel tokens (Telegram, Discord, Slack)
safeMode- Safe mode togglesudoMode- Sudo mode toggleoverrideMode- Override mode togglecommandDenyList- Command blacklistadminUsers- Admin permissions- AWS Bedrock credentials
enableSelfModification- Self-modification permission
Policy Usage
Agents use themanage_config skill to interact with configuration:
API Key Management
Secure Storage
API Key Configuration
All API keys support environment variable fallback:Policy: APPROVALEnvironment variable:
OPENAI_API_KEYPolicy: APPROVALEnvironment variable:
GOOGLE_API_KEYPolicy: APPROVALEnvironment variable:
ANTHROPIC_API_KEYPolicy: APPROVALEnvironment variable:
OPENROUTER_API_KEYPolicy: APPROVALEnvironment variable:
NVIDIA_API_KEYPolicy: APPROVALEnvironment variable:
SERPER_API_KEYPolicy: APPROVALEnvironment variable:
BRAVE_SEARCH_API_KEY2Captcha API key for solving CAPTCHAs.Environment variable:
CAPTCHA_API_KEYPolicy: LOCKEDEnvironment variable:
TELEGRAM_TOKENPolicy: LOCKEDEnvironment variable:
DISCORD_TOKENPolicy: LOCKEDEnvironment variable:
SLACK_BOT_TOKENPolicy: LOCKEDEnvironment variable:
BEDROCK_ACCESS_KEY_ID or AWS_ACCESS_KEY_IDPolicy: LOCKEDEnvironment variable:
BEDROCK_SECRET_ACCESS_KEY or AWS_SECRET_ACCESS_KEYWeb Gateway Security
API key for authenticating gateway requests.Required for all API endpoints when configured:
CORS allowed origins for gateway API.
HTTP port for the web gateway.
Host address to bind the gateway server.
Use
127.0.0.1 to restrict to localhost only.Tailscale (Recommended)
For remote access, use Tailscale instead of exposing the gateway publicly:Tailscale provides a private mesh network so you don’t need to expose port 3100 publicly or use a reverse proxy.
Data Privacy
Local-First Architecture
OrcBot stores all data locally by default:- Memory -
~/.orcbot/memory.json - Journal -
~/.orcbot/JOURNAL.md - Learning -
~/.orcbot/LEARNING.md - User profiles -
~/.orcbot/USER.md - Action queue -
~/.orcbot/actions.json - Logs -
~/.orcbot/daemon.log
No data is uploaded to external services unless explicitly required by a skill (e.g., web search, LLM API calls).
Session Isolation
Control conversation memory isolation:
main- Single global session (all users share memory)per-peer- Separate session per userper-channel-peer- Separate session per channel-user (recommended for privacy)
Information Boundaries
OrcBot enforces information boundaries to prevent data leakage:-
Non-admin tasks are blocked from accessing:
- Journal entries
- Learning notes
- Episodic context from other users
- Admin-specific memory
- Per-channel isolation prevents cross-channel context leakage
- Memory deduplication prevents duplicate sensitive data
Telemetry
Enable anonymous usage telemetry.Telemetry includes:
- Version number
- Anonymous installation ID
- Uptime statistics
- Error counts (no error content)
No user data, messages, or API keys are included in telemetry.
Telemetry endpoint URL (default: OrcBot telemetry service).
Timeout for telemetry requests in milliseconds.
Authentication token for telemetry (if required by endpoint).
Disable Telemetry
orcbot.config.yaml
Security Best Practices
Enable Safe Mode
Use
safeMode: true in production to prevent command execution.Restrict Commands
Carefully curate
commandAllowList and commandDenyList.Set Admin Users
Explicitly configure
adminUsers per channel.Secure API Keys
Use environment variables and restrict file permissions.
Use Tailscale
Access gateway via private mesh network instead of public internet.
Set Gateway API Key
Always configure
gatewayApiKey for production.Control Plugins
Use
pluginAllowList and pluginDenyList to restrict plugins.Isolate Sessions
Use
sessionScope: per-channel-peer for privacy.Production Security Template
orcbot.config.yaml