Overview
Vibing AI’s permission model differs from traditional permission systems by requiring not just what an offering wants to access, but why it needs access and for how long. This approach dramatically increases transparency and control for users while ensuring developers can still build powerful, contextually-aware offerings.Permission Format
All permissions follow a standardized format:- Resource: What is being accessed (memory, files, API, etc.)
- Action: The operation being performed (read, write, execute, etc.)
- Scope: The specific instance or range being accessed
- Purpose: Required explanation of why access is needed
- TTL: Time-to-live duration for the permission (e.g., session, 1h, 30d)
Examples
Permission Levels
Permissions are categorized into different sensitivity levels:Critical
- Requires explicit user approval each time
- Typically involves highly sensitive operations or data
- Examples: Sending messages on behalf of the user, accessing payment information
Sensitive
- Requires explicit approval once with specific scope
- Typically involves personal data or significant platform capabilities
- Examples: Accessing user files, using the camera/microphone, connecting to external services
Standard
- Can be granted during installation with clear disclosure
- Typically involves basic platform functionality
- Examples: Basic memory access with clear purpose, rendering on certain surfaces
Basic
- Implied by platform usage
- Minimal risk capabilities
- Examples: Accessing public platform resources, using Block Kit components
Resource Types
The permission model covers various resource types:Memory
Access to the Unified Memory System with different scopes:- Global: Cross-project persistent memory
- Workspace: Shared memory within a workspace
- Project: Project-specific memory
- Session: Current interaction session memory
- Private: Offering-specific isolated memory
memory:write:project:{id};purpose=save_project_state;ttl=90d
Files
Access to user files and storage:- Reading files
- Writing/modifying files
- Creating new files
- Deleting files
files:read:images/*;purpose=image_processing;ttl=1h
Network
Access to external APIs and services:- Specific domains
- API categories
- Data transport
network:external:*.example.com;purpose=data_retrieval;ttl=request
Sensors
Access to device capabilities:- Camera
- Microphone
- Location
- Other sensors
sensors:access:microphone;purpose=voice_recording;ttl=15m
Offerings
Ability to use or control other offerings:- Invoking other offerings
- Reading offering data
- Controlling offering behavior
offerings:invoke:plugin-id;purpose=workflow_automation;ttl=30d
User
Interaction with the user:- Sending notifications
- Requesting input
- Displaying UI
user:notify:push;purpose=task_reminders;ttl=90d
Permission Lifecycle
Requesting Permissions
Developers declare required permissions in their offering manifest:Checking Permissions
Revoking Permissions
Users can view and revoke permissions at any time through the platform interface. Developers can also programmatically revoke permissions they no longer need:Best Practices
For Developers
- Request minimal permissions - Only ask for what you need
- Be specific about scope - Narrow the scope to exactly what’s required
- Provide clear purpose statements - Explain in user-friendly terms why the permission is needed
- Use appropriate TTLs - Request access for appropriate durations
- Degrade gracefully - Handle denied permissions without breaking your offering
- Release permissions early - Revoke permissions when no longer needed
For Users
- Review permissions carefully - Understand what you’re granting access to
- Check purpose statements - Ensure the reason for access makes sense
- Consider time limits - Note how long the permission will last
- Regularly audit permissions - Review and revoke unnecessary permissions
- Report suspicious requests - Flag offerings that request excessive permissions
Security Considerations
The permission model is a core component of the platform’s zero-trust security architecture:- All permissions are verified on each access attempt
- Permission grants are cryptographically signed to prevent tampering
- Detailed audit logs track permission grants, uses, and revocations
- Permission enforcement occurs at multiple system layers
- Time limits are strictly enforced with automatic expiration
Related Concepts
- Vibing Super Agent - Uses the permission model for orchestration
- Unified Memory System - Protected by memory permissions
- Offering Types - Different offerings require different permissions