{% extends "base.html" %} {% block title %}LASSO — Sandbox {{ sandbox.id }}{% endblock %} {% block breadcrumb %}
  • {% endblock %} {% block content %} {% if sandbox.state == 'running' %}

    Connect to Your Sandbox

    {% if agent %}

    {{ agent }} is installed and ready. Open a terminal and paste the command below:

    {% else %}

    Open a terminal (Command Prompt on Windows, Terminal on Mac/Linux) and paste the command below:

    {% endif %}
    lasso attach {{ sandbox.id }}
    {% if agent_command %}

    Once inside, type {{ agent_command }} to start coding.

    {% endif %}
    {% endif %}

    {{ sandbox.state | upper }} {{ sandbox.name }} {% if sandbox.network_mode == 'none' %}🔒{% elif sandbox.network_mode == 'restricted' %}⚠{% else %}⚠{% endif %} {% if sandbox.network_mode == 'none' %}OFFLINE{% elif sandbox.network_mode == 'restricted' %}LIMITED{% else %}NET: {{ sandbox.network_mode | upper }}{% endif %}

    View Full Audit {% if sandbox.state == 'running' %}
    {{ csrf_token() }}
    {% endif %}
    {% include "partials/sandbox_status.html" %}
    {% if sandbox.state == 'running' %}
    sandbox@{{ sandbox.id[:8] }}
    Quick Command · {{ sandbox.command_mode }} mode · For full terminal access, use lasso attach above
    {{ csrf_token() }}
    {% else %}

    Sandbox Not Running

    Start the sandbox to execute commands.

    {% endif %}

    What the AI can do

    Command filter
    {% if policy.mode == 'whitelist' %}Allowed list only{% elif policy.mode == 'blacklist' %}Blocked list{% else %}{{ policy.mode }}{% endif %}
    Shell Operators
    {% if policy.shell_operators %} Allowed {% else %} Blocked {% endif %}
    Max Execution
    {{ policy.max_seconds }}s
    {% if policy.mode == 'whitelist' and policy.allowed_commands is not string %}
    Allowed commands ({{ policy.allowed_commands | length }}) — only these can run
    {% for cmd in policy.allowed_commands[:15] %} {{ cmd }} {% endfor %} {% if policy.allowed_commands | length > 15 %} +{{ policy.allowed_commands | length - 15 }} more {% endif %}
    {% endif %} {% if policy.blocked_args %}
    Blocked argument patterns — these flags are never allowed
    {% for cmd, patterns in policy.blocked_args.items() %}
    {{ cmd }}: {% for pattern in patterns %} {{ pattern }} {% endfor %}
    {% endfor %}
    {% endif %}

    Internet Access

    {% if sandbox.network.mode == 'none' %}🔒 Offline{% elif sandbox.network.mode == 'restricted' %}⚠ Limited{% else %}⚠ {{ sandbox.network.mode | upper }}{% endif %}
    {% if sandbox.network.mode == 'none' %}
    Offline (fully isolated) — this sandbox cannot reach any external hosts.
    {% elif sandbox.network.mode == 'restricted' %}
    Limited (package registries only) — only explicitly allowed domains and ports.
    {% else %}
    Internet access is unrestricted. Blocked ports and CIDRs still apply.
    {% endif %} {% if sandbox.network.blocked_ports %}
    Blocked Database Ports ({{ sandbox.network.blocked_ports | length }})
    {% for port in sandbox.network.blocked_ports %} 🚫 {{ port }} — {{ sandbox.network.blocked_ports_named[port] }} {% endfor %}

    Database ports are blocked in ALL network modes (including full). Direct database connections are never permitted.

    {% endif %} {% if sandbox.network.blocked_cidrs %}
    Blocked Network Ranges ({{ sandbox.network.blocked_cidrs | length }})
    {% for cidr in sandbox.network.blocked_cidrs %} {{ cidr }} {% endfor %}
    {% endif %} {% if sandbox.network.mode == 'restricted' and sandbox.network.allowed_domains %}
    Allowed Domains ({{ sandbox.network.allowed_domains | length }})
    {% for domain in sandbox.network.allowed_domains %} {{ domain }} {% endfor %}
    {% endif %} {% if sandbox.network.mode == 'restricted' and sandbox.network.allowed_ports %}
    Allowed Outbound Ports
    {% for port in sandbox.network.allowed_ports %} {{ port }}{% if port == 80 %} (HTTP){% elif port == 443 %} (HTTPS){% endif %} {% endfor %}
    {% endif %} {% if sandbox.network.dns_servers %}
    DNS Servers
    {% for dns in sandbox.network.dns_servers %} {{ dns }} {% endfor %}
    {% endif %}

    Filesystem Isolation

    Working Directory
    {{ sandbox.filesystem.working_dir }}
    Disk Limit
    {{ sandbox.filesystem.max_disk_mb }} MB
    Temp Dir Size
    {{ sandbox.filesystem.temp_dir_mb }} MB
    Hidden Paths
    {{ sandbox.filesystem.hidden_paths | length }} path(s) hidden
    {% if sandbox.filesystem.hidden_paths %}
    Hidden Paths ({{ sandbox.filesystem.hidden_paths | length }})
    {% for path in sandbox.filesystem.hidden_paths %} {% endfor %}
    {% endif %} {% if sandbox.filesystem.read_only_paths %}
    Read-Only Paths ({{ sandbox.filesystem.read_only_paths | length }})
    {% for path in sandbox.filesystem.read_only_paths %} {{ path }} {% endfor %}
    {% endif %} {% if sandbox.filesystem.writable_paths %}
    Additional Writable Paths ({{ sandbox.filesystem.writable_paths | length }})
    {% for path in sandbox.filesystem.writable_paths %} {{ path }} {% endfor %}
    {% endif %}
    Mounted Folders
    /workspace {{ sandbox.filesystem.working_dir }} read-write {% if extra_mounts %} {% for m in extra_mounts %} {{ m.target }} {{ m.source }} {% if m.mode == 'ro' %} read-only {% else %} read-write {% endif %} {% endfor %} {% endif %}

    Activity Recording

    {% if sandbox.audit_config.enabled %} ENABLED {% else %} DISABLED {% endif %}

    Every action is recorded so you can review what the AI did.

    Tamper-proof signatures
    {% if sandbox.audit_config.sign_entries %} Enabled {% else %} Disabled {% endif %}
    Log Directory
    {{ sandbox.audit_config.log_dir }}
    Capture Output
    {% if sandbox.audit_config.include_command_output %} Yes {% else %} No {% endif %}
    Capture Diffs
    {% if sandbox.audit_config.include_file_diffs %} Yes {% else %} No {% endif %}
    Max Log Size
    {{ sandbox.audit_config.max_log_size_mb }} MB
    {% if sandbox.audit_config.webhooks_count > 0 %}
    Webhooks
    {{ sandbox.audit_config.webhooks_count }} configured
    {% endif %}
    {% if sandbox.audit_log %}
    Active Log File
    {{ sandbox.audit_log }}
    {% endif %}

    Recent Activity

    Logs sandbox lifecycle events and commands run via lasso exec. When using an interactive terminal (lasso shell/attach), individual agent commands are handled by the agent's own history.

    View All
    {% include "partials/audit_feed.html" %}
    {% endblock %}