Pack Toolbelt

Professional tools for creating, testing, and publishing BBR Packs.
Requires BBR Pro
Early Access Documentation The Pack Toolbelt is currently in development. This documentation provides a preview of planned functionality. Features and APIs may change before final release.

What is a Pack?

A Pack is a collection of custom actions that extend Bober's capabilities. Packs can include native integrations, shell scripts, or composite scenarios.

Pack Structure

my-pack/
├── manifest.json          # Pack metadata
├── actions/
│   ├── action1.json       # Action definitions
│   └── action2.json
├── scenarios/
│   └── demo.json          # Example scenarios
├── assets/
│   └── icon.png           # 256x256 pack icon
└── signature.bbr          # BBR signature (ecosystem only)

Manifest Format

{
  "id": "com.yourname.mypack",
  "name": "My Custom Pack",
  "version": "1.0.0",
  "bbrVersion": ">=2.0.0",
  "author": {
    "name": "Your Name",
    "email": "[email protected]"
  },
  "description": "Pack description",
  "permissions": ["accessibility", "automation"],
  "trust_level": "local",
  "actions": [
    {
      "id": "my_action",
      "name": "My Action",
      "type": "script",
      "entrypoint": "actions/action1.json",
      "params": [
        {"name": "target", "type": "string", "required": true}
      ]
    }
  ]
}

Permissions

PermissionDescription
accessibilityUI element access
automationAppleScript execution
screen_recordingScreen capture
filesFile system access
networkOutbound requests

Trust Levels

LevelSourceRequirementsCapabilities
verifiedBBR EcosystemBBR signature + code reviewFull system access
signedThird-partyDeveloper signatureLimited to declared permissions
localUser's machineUser consent onlySandboxed execution

Local Development Workflow

1. Create Pack

mkdir my-pack && cd my-pack
touch manifest.json
mkdir actions scenarios assets

2. Define Action

actions/greet.json:
{
  "type": "scenario",
  "steps": [
    {"action": "msg", "text": "Hello, {target}!", "duration": 2.0}
  ]
}

3. Test Locally

# Install for testing
ln -s "$(pwd)" ~/Library/Application\ Support/Bober/Packs/my-pack

Reload packs in Bober

File → Reload Packs

4. Use in Scenario

{"action": "my-pack.greet", "target": "World"}

Publishing to BBR Ecosystem

Step 1: Prepare

  • Ensure manifest.json is complete
  • Add icon.png (256×256)
  • Write demo scenario

Step 2: Submit

bbr pack submit ./my-pack

Step 3: Review Process

  1. 1. Automated scan — Security checks, permission validation
  2. 2. Manual review — BBR team code review
  3. 3. Approval — Pack is signed and published

Step 4: Distribution

Published packs appear in Bober → Pack Gallery.

Guardrails for Local Packs

⚠️ Local packs are NOT verified. Users accept full responsibility.

User Consent Dialog

When loading an unverified pack, Bober displays:

⚠️ Unverified Pack Warning

This pack has not been reviewed by BBR. Running unverified code may pose security risks.

Pack: {pack_name} Author: {author} Permissions: {permissions}

[Cancel] [I Accept Full Responsibility]

Sandbox Restrictions

Local packs operate with:
  • No network access by default
  • File access limited to ~/Documents/Bober
  • Process spawning requires explicit whitelist
  • All executions logged to audit trail

Trust Record

User consent stored in:
~/.bober/local-trust.json

Re-prompted on pack version changes.


CLI Tools (Coming Soon)

bbr pack init        # Scaffold new pack
bbr pack validate    # Check manifest
bbr pack test        # Run test scenarios
bbr pack sign        # Sign with developer key
bbr pack submit      # Submit for review