Overview
OrcBot provides multiple layers of security to protect your system, data, and users. This guide covers configuration options, access controls, and production best practices.Security Modes
Safe Mode
run_command- No shell executionexecute_typescript/execute_python_code- No code executionwrite_file- No file writescreate_custom_skill- No plugin creationmanage_config(unsafe keys) - No API key modifications
- Testing new LLM providers
- Public demos
- Untrusted environments
Sudo Mode (Default)
- Command allow/deny lists
- Plugin security controls
- Admin-only skills
- Configuration policy (SAFE/APPROVAL/LOCKED)
- Personal assistant
- Development environments
- Trusted multi-user deployments
Override Mode
Command Security
Allow/Deny Lists
1
Command Requested
Agent attempts
run_command("rm -rf /tmp/file")2
Parse Command
Extract base command:
rm3
Check Allow List
If
commandAllowList is set and rm is not in it, reject.4
Check Deny List
If
rm -rf matches any pattern in commandDenyList, reject.5
Execute or Block
If all checks pass, execute. Otherwise, return error.
Platform-Specific Commands
Plugin Security
Allow/Deny Lists
- If
pluginAllowListis set, only listed plugins load - Plugins in
pluginDenyListare always blocked - Wildcards supported:
experimental-*
Plugin Health Monitoring
- Detects plugin crashes
- Attempts
self_repair_skillfor broken plugins - Disables plugins after 3 consecutive failures
Manual Plugin Management
Admin Permissions
Configuring Admins
Admin-Only Skills
These skills require admin permissions:
Non-Admin Behavior:
Temporary Elevation
Configuration Policy
OrcBot uses a 3-tier policy system for agent-driven config management:Policy Levels
- SAFE
- APPROVAL
- LOCKED
Agent can modify autonomously.Examples:
modelName- Switch models for better performancemaxStepsPerAction- Increase for complex tasksmemoryContextLimit- Expand for large contexts
Approving Config Changes
API Key Management
Secure Storage
1
Use Environment Variables
2
Restrict File Permissions
3
Use Secrets Manager (Production)
For cloud deployments, use AWS Secrets Manager, HashiCorp Vault, or similar.Load secrets at runtime:
Key Rotation
Web Gateway Security
API Key Authentication
CORS Configuration
["*"] (allow all origins)
Production: Restrict to your frontend domains only.
HTTPS via Reverse Proxy
Tailscale Private Network
1
Install Tailscale
2
Authenticate
3
Configure Gateway
4
Access via Tailscale IP
Data Privacy
Local-First Architecture
All data stays on your machine:- Memory -
~/.orcbot/memory/ - Logs -
~/.orcbot/logs/ - Profiles -
~/.orcbot/profiles/ - Config -
~/.orcbot/orcbot.config.yaml
- LLM API (OpenAI, Google, etc.) - Only when processing tasks
- Web searches - Only when
web_searchskill is used - Channel APIs (Telegram, Discord) - Only for message delivery
Session Isolation
main- Single global context (all users share memory)per-peer- Separate context per user (across all channels)per-channel-peer- Separate context per user per channel
per-channel-peer for multi-user deployments.
Information Boundaries
Non-admin tasks are blocked from accessing:- Other users’ profiles (
USER.md) - Episodic memory (consolidated summaries)
- Agent journal (
JOURNAL.md) - Learning notes (
LEARNING.md)
Telemetry
Usage Ping (Optional)
- Agent startup event
- Anonymous usage statistics (task count, skill usage)
- Error reports (for debugging)
- OrcBot version
- Platform (Linux/macOS/Windows)
- Task count (aggregated)
- API keys
- User messages
- Memory content
- Personal information
Opt-Out
Production Security Checklist
1
Enable Safe Mode Initially
2
Configure Admin Users
3
Set Command Deny List
4
Restrict Plugin Loading
5
Secure API Keys
- Use environment variables
- Set file permissions:
chmod 600 orcbot.config.yaml - Never commit keys to git
6
Enable Gateway Authentication
7
Use HTTPS
Set up nginx or Caddy with Let’s Encrypt.Or use Tailscale for private network access.
8
Monitor Logs
9
Regular Updates
10
Backup Configuration
Best Practices
Do’s
- Run in safe mode initially
- Use environment variables for secrets
- Configure admin users explicitly
- Set command/plugin allow lists in production
- Use Tailscale or VPN for remote access
- Monitor logs for suspicious activity
- Regularly update dependencies
- Backup configuration and memory
Don’ts
- Don’t run as root/administrator
- Don’t commit API keys to git
- Don’t expose web gateway publicly without auth
- Don’t disable all guardrails in multi-user environments
- Don’t share admin credentials
- Don’t trust unvetted plugins
- Don’t ignore security warnings in logs
Related Configuration
Configuration Reference
Complete list of security-related config options
Security Settings API
API reference for security configuration
Admin Skills
Skills that require admin permissions
Web Gateway
Setup guide for the web gateway