Overview
OrcBot provides multiple layers of security controls including safe mode, command filtering, plugin restrictions, and policy-based configuration management.Security Modes
Safe Mode
boolean
default:false
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
boolean
default:false
Enable unrestricted access mode (bypasses command allow/deny lists).Policy: LOCKED - Security-critical configuration.
Override Mode
boolean
default:false
Enable behavioral override mode that bypasses persona boundaries.Policy: LOCKED - Security-critical configuration.
Command Security
Command Allow List
array
Whitelist of allowed shell commands. Empty list means all commands are blocked (unless in sudo mode).Default includes common development tools:
Command Deny List
array
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
number
default:120000
Timeout for shell command execution in milliseconds (default: 2 minutes).Prevents runaway processes from consuming resources indefinitely.
number
default:1
Number of retries for failed commands.
string
Working directory for command execution. Defaults to current directory.
boolean
default:false
Automatically execute commands without confirmation.
Example: Lockdown Configuration
orcbot.config.yaml
Plugin Security
Plugin Allow List
array
default:[]
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
array
default:[]
Blacklist of denied plugins. Takes precedence over allow list.
Plugin Health Monitoring
number
default:15
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
object
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
1
Use environment variables
Store API keys in
.env files:.env
2
Restrict file permissions
3
Use key rotation
Regularly rotate API keys and update configuration:
4
Monitor usage
Enable token tracking to detect anomalies:
API Key Configuration
All API keys support environment variable fallback:string
Policy: APPROVALEnvironment variable:
OPENAI_API_KEYstring
Policy: APPROVALEnvironment variable:
GOOGLE_API_KEYstring
Policy: APPROVALEnvironment variable:
ANTHROPIC_API_KEYstring
Policy: APPROVALEnvironment variable:
OPENROUTER_API_KEYstring
Policy: APPROVALEnvironment variable:
NVIDIA_API_KEYstring
Policy: APPROVALEnvironment variable:
SERPER_API_KEYstring
Policy: APPROVALEnvironment variable:
BRAVE_SEARCH_API_KEYstring
2Captcha API key for solving CAPTCHAs.Environment variable:
CAPTCHA_API_KEYstring
Policy: LOCKEDEnvironment variable:
TELEGRAM_TOKENstring
Policy: LOCKEDEnvironment variable:
DISCORD_TOKENstring
Policy: LOCKEDEnvironment variable:
SLACK_BOT_TOKENstring
Policy: LOCKEDEnvironment variable:
BEDROCK_ACCESS_KEY_ID or AWS_ACCESS_KEY_IDstring
Policy: LOCKEDEnvironment variable:
BEDROCK_SECRET_ACCESS_KEY or AWS_SECRET_ACCESS_KEYWeb Gateway Security
string
API key for authenticating gateway requests.Required for all API endpoints when configured:
array
default:["*"]
CORS allowed origins for gateway API.
number
default:3100
HTTP port for the web gateway.
string
default:"0.0.0.0"
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:1
Install Tailscale
2
Connect to Tailnet
3
Configure gateway for Tailnet
4
Set Tailnet ACLs
Restrict access to specific devices/users in your Tailnet.
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
enum
default:"per-channel-peer"
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
boolean
default:true
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.
string
default:""
Telemetry endpoint URL (default: OrcBot telemetry service).
number
default:4000
Timeout for telemetry requests in milliseconds.
string
default:""
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