Skip to main content

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.
OrcBot has powerful capabilities including shell execution and file system access. Always run in safeMode initially and enable features incrementally.

Security Modes

Safe Mode

Disabled Capabilities:
  • run_command - No shell execution
  • execute_typescript / execute_python_code - No code execution
  • write_file - No file writes
  • create_custom_skill - No plugin creation
  • manage_config (unsafe keys) - No API key modifications
Use Cases:
  • Testing new LLM providers
  • Public demos
  • Untrusted environments

Sudo Mode (Default)

All skills enabled with guardrails:
  • Command allow/deny lists
  • Plugin security controls
  • Admin-only skills
  • Configuration policy (SAFE/APPROVAL/LOCKED)
Use Cases:
  • Personal assistant
  • Development environments
  • Trusted multi-user deployments

Override Mode

Minimal guardrails for maximum autonomy.
Use with extreme caution. The agent can execute commands, modify files, and make network requests without additional checks.

Command Security

Allow/Deny Lists

How It Works:
1

Command Requested

Agent attempts run_command("rm -rf /tmp/file")
2

Parse Command

Extract base command: rm
3

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

Rules:
  • If pluginAllowList is set, only listed plugins load
  • Plugins in pluginDenyList are always blocked
  • Wildcards supported: experimental-*

Plugin Health Monitoring

OrcBot automatically:
  • Detects plugin crashes
  • Attempts self_repair_skill for broken plugins
  • Disables plugins after 3 consecutive failures

Manual Plugin Management

Admin Permissions

Configuring Admins

Finding your user ID:Telegram: Message the bot with /status - your ID is shown.Discord: Enable Developer Mode → Right-click your name → Copy ID.WhatsApp: Your ID is in the bot logs when you first message it.

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

Agent can modify autonomously.Examples:
  • modelName - Switch models for better performance
  • maxStepsPerAction - Increase for complex tasks
  • memoryContextLimit - Expand for large contexts
No approval required.

Approving Config Changes

API Key Management

Secure Storage

1

Use Environment Variables

OrcBot reads from environment first, then config file.
2

Restrict File Permissions

Only the owner can read the config file.
3

Use Secrets Manager (Production)

For cloud deployments, use AWS Secrets Manager, HashiCorp Vault, or similar.Load secrets at runtime:

Key Rotation

Never commit API keys to version control. Use .gitignore for orcbot.config.yaml.

Web Gateway Security

API Key Authentication

Clients must include the key in requests:

CORS Configuration

Default: ["*"] (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

Only Tailnet members can reach the gateway.

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
External Calls:
  • LLM API (OpenAI, Google, etc.) - Only when processing tasks
  • Web searches - Only when web_search skill is used
  • Channel APIs (Telegram, Discord) - Only for message delivery

Session Isolation

Options:
  • 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
Recommendation: Use 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)
This prevents cross-user information leakage.

Telemetry

Usage Ping (Optional)

If enabled, OrcBot sends:
  • Agent startup event
  • Anonymous usage statistics (task count, skill usage)
  • Error reports (for debugging)
Data Sent:
  • OrcBot version
  • Platform (Linux/macOS/Windows)
  • Task count (aggregated)
NOT Sent:
  • API keys
  • User messages
  • Memory content
  • Personal information

Opt-Out

Or set environment variable:

Production Security Checklist

1

Enable Safe Mode Initially

Test all features before enabling sudo mode.
2

Configure Admin Users

Only trusted users should have admin access.
3

Set Command Deny List

Block destructive commands.
4

Restrict Plugin Loading

Only load vetted plugins.
5

Secure API Keys

  • Use environment variables
  • Set file permissions: chmod 600 orcbot.config.yaml
  • Never commit keys to git
6

Enable Gateway Authentication

Require API key for all gateway requests.
7

Use HTTPS

Set up nginx or Caddy with Let’s Encrypt.Or use Tailscale for private network access.
8

Monitor Logs

Watch for suspicious activity.
9

Regular Updates

Keep dependencies up to date.
10

Backup Configuration

Regularly backup config and memory.

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

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