{
 "features_resolved": {
  "snapshot_any": true,
  "snapshot_mem": true,
  "fork": true,
  "pause_resume": true,
  "persistent_disk": true,
  "whole_disk": true,
  "persist_scope": null,
  "volumes": true,
  "auto_stop_idle": true,
  "long_sessions": true,
  "custom_image": true,
  "image_snapshot": true,
  "image_oci": true,
  "vm_isolation": true,
  "docker_inside": true,
  "nested_virt": false,
  "root": true,
  "systemd": true,
  "browser": true,
  "desktop": true,
  "computer_use": true,
  "code_interpreter": false,
  "browser_control": true,
  "desktop_control": true,
  "browser_and_desktop": true,
  "anti_bot": false,
  "captcha_solving": false,
  "residential_ip": false,
  "agent_harnesses": false,
  "ssh": true,
  "public_ipv4": false,
  "inbound_https": true,
  "custom_domain": null,
  "raw_tcp_inbound": false,
  "egress_allowlist": true,
  "open_internet": true,
  "static_egress_ip": false,
  "private_network": true,
  "self_host": false,
  "byoc": true,
  "open_source": false,
  "soc2": true,
  "hipaa": true,
  "sso": true,
  "gpu": true,
  "arm64": false,
  "windows": false,
  "macos": false,
  "lang_python": true,
  "lang_node": true,
  "lang_go": null,
  "lang_rust": null,
  "lang_java": null,
  "gpu_desktop": false,
  "credential_injection": null,
  "egress_http_rules": false,
  "wake_on_request": true,
  "live_resize": false,
  "fork_running": true,
  "memory_snapshot_fork": true,
  "webhooks": true,
  "scheduled_wakeups": null,
  "audit_logs": null,
  "eu_data_residency": true,
  "zero_data_retention": true,
  "scoped_api_keys": null,
  "spend_limits": null,
  "mcp_server": false,
  "usage_api": false,
  "snapshot_auto": true,
  "snapshot_on_demand": true,
  "harness_api": false,
  "own_agent_api": false,
  "fast_boot": true,
  "strong_isolation": true,
  "ingress_rules": true,
  "guest_firewall": true,
  "secret_proxy": false,
  "secret_proxy_any": false,
  "volume_attach": true,
  "volume_shared": true,
  "sidecar": null,
  "fuse": true,
  "kernel_features": true,
  "burst": null
 },
 "company": {
  "id": "tensorlake",
  "checked": "2026-09-30",
  "company": "Tensorlake Inc.",
  "ownership": {
   "value": "independent",
   "parent": null,
   "source": "https://www.caplight.com/company/tensorlake",
   "quote": "Tensorlake is a private company."
  },
  "stage": {
   "value": "seed",
   "source": "https://www.caplight.com/company/tensorlake",
   "quote": "Tensorlake investors: Plug and Play Tech Center — Seed; Hawk Hill Ventures — Seed; Artisanal Ventures — Seed; Materialized View Capital — Seed.",
   "confidence": "medium",
   "note": "No priced round beyond seed has been publicly reported; Caplight (an aggregator) lists all known investors against a Seed round tag and shows no lead or date. Company itself (via SiliconANGLE) only discloses a cumulative funding figure, not round structure."
  },
  "accelerators": [],
  "total_funding_usd": {
   "value": 8600000,
   "status": "confirmed",
   "basis": "Company-confirmed figure quoted directly to SiliconANGLE, matched by Caplight's aggregator total",
   "source": "https://siliconangle.com/2026/03/12/serverless-infrastructure-tensorlake-makes-simpler-deploy-scale-agentic-workflows/",
   "quote": "The startup, which has raised $8.6 million in funding so far, said its platform is already being used by customers such as the multinational car rental firm Sixt SE..."
  },
  "last_round": {
   "type": "seed",
   "amount_usd": 8600000,
   "date": null,
   "leads": [],
   "status": "estimated",
   "source": "https://www.caplight.com/company/tensorlake",
   "quote": "TOTAL FUNDING RAISED $8.6M ... Tensorlake investors: Plug and Play Tech Center — Seed, Hawk Hill Ventures — Seed, Artisanal Ventures — Seed, Materialized View Capital — Seed."
  },
  "investors": [
   "Plug and Play Tech Center",
   "Hawk Hill Ventures",
   "Artisanal Ventures",
   "Materialized View Capital"
  ],
  "portfolio_listings": [],
  "revenue": {
   "value": null,
   "status": "unknown"
  },
  "employees": {
   "value": 15,
   "source": "https://www.caplight.com/company/tensorlake"
  },
  "note": "Founded 2023 (per Caplight) by Diptanu Gon Choudhury, ex-Meta engineer; the company began as an open-source real-time/unstructured-data framework called Indexify (launched on HN May 2024), rebranded product focus to document parsing (Tensorlake Document AI) and then, by 2026, to a serverless agentic-workflow platform including Firecracker microVM sandboxes (the subject of this card). $8.6M total funding is the only figure the company/press disclose; no individual round amount, date, or lead investor is publicly confirmed. HQ San Francisco, ~15 employees per Caplight. No accelerator/incubator program found (Plug and Play appears only as a seed investor, not confirmed as an accelerator batch)."
 },
 "id": "tensorlake",
 "name": "Tensorlake Sandboxes",
 "url": "https://www.tensorlake.ai/pricing",
 "category": "agent-sandbox",
 "isolation": "firecracker",
 "modes": [
  {
   "key": "pro",
   "label": "Pro rate set (active CPU, allocated RAM/disk)",
   "flags": [],
   "os": [
    "linux"
   ],
   "gpu_only": false,
   "features": {
    "isolation": "firecracker"
   },
   "pricing": "resource",
   "vcpu_h": 0.042,
   "ram_gib_h": 0.009,
   "cpu_basis": "active",
   "ram_basis": "alloc",
   "active_floor": 0,
   "ram_per_vcpu": [
    1,
    8
   ],
   "ram_fixed_per_vcpu": null,
   "vcpu_options": null,
   "min_vcpu": 1,
   "max_vcpu": 16,
   "max_ram_gib": 64,
   "sizes": null,
   "pool_tiers": null,
   "requires_always_on": false,
   "always_on_month_per_instance": null,
   "commit_note": "Pro plan rates ($250/cycle, fully converted to 25,000 CU of usage at these rates; overage $0.01/CU). Root disk $0.0001/GB-h is in storage.disk_gib_month (x730 = $0.073).",
   "min_billed_seconds": 0,
   "granularity_s": 1,
   "start_fee": 0,
   "boot_overhead_s": null,
   "multiplier": 1,
   "windows_vcpu_h": null,
   "gpu": null,
   "note": "Rate set pro_gb_v1. CPU metered on active execution (idle/I-O wait free); falls back to allocated vCPU when active metering is unavailable. RAM and root disk ($0.0001/GB-h) are allocation-based while running. Usage pooled per org, billed in whole CUs. Idle timeout default 600 s; unlimited max on Pro. Quotes 2026-09-28: 'CPU tracks active runtime execution, not allocated vCPU time'; 'RAM and root disk are allocation-based while the sandbox is running.' (https://docs.tensorlake.ai/platform/billing). Idle: suspend (named) / terminate (ephemeral) after timeout_secs, default 600 s with no proxied traffic (SSH, PTY, exposed-port request, SDK/CLI call) (https://docs.tensorlake.ai/sandboxes/lifecycle).",
   "cpu_class": "shared"
  },
  {
   "key": "byoc",
   "label": "BYOC / Self-hosted Compute (your AWS bill, reference rate, + 30% fee)",
   "flags": [
    "sales",
    "alt"
   ],
   "os": [
    "linux"
   ],
   "gpu_only": false,
   "features": {
    "byoc": true,
    "private_network": true,
    "custom_domain": true,
    "isolation": "firecracker"
   },
   "pricing": "resource",
   "vcpu_h": 0.094375,
   "ram_gib_h": 0,
   "cpu_basis": "alloc",
   "ram_basis": "alloc",
   "active_floor": 0,
   "ram_per_vcpu": [
    1,
    8
   ],
   "ram_fixed_per_vcpu": null,
   "vcpu_options": null,
   "min_vcpu": 1,
   "max_vcpu": 16,
   "max_ram_gib": 64,
   "sizes": null,
   "pool_tiers": null,
   "requires_always_on": false,
   "always_on_month_per_instance": null,
   "commit_note": "Fee = 30% of compute cost at entry, as low as 10% at scale (GPU sandboxes 5% to 2%). Enabled per project; terms not self-serve.",
   "min_billed_seconds": 0,
   "granularity_s": 1,
   "start_fee": 0,
   "boot_overhead_s": null,
   "multiplier": 1.3,
   "windows_vcpu_h": null,
   "gpu": null,
   "note": "Price = your own cloud bill + Tensorlake fee, NOT the fee alone. vcpu_h is an AWS reference rate standing in for the bill you pay AWS directly: the blog example i7i.metal-24xl at $9.06/h in US East / 96 vCPU (768 GiB RAM bundled, 8 GiB/vCPU), no overcommit. The 1.3 multiplier adds the 30% entry fee (as low as 10% at scale; blog example at 20% = $10.87/h total). Real cost depends on host billing (hosts bill whether full or not), packing/overcommit and AWS prices. Excludes EBS and AWS egress. Re-verified 2026-09-28 at https://www.tensorlake.ai/blog/introducing-tensorlake-byoc.",
   "note (append)": "The blog says BYOC runs on AWS, GCP, Azure, CoreWeave, Nebius and bare metal (e.g. Latitude). The AWS setup docs require i7i.metal-24xl or i7i.metal-48xl executors. Sandboxes use Firecracker 'wherever KVM is available and in gVisor containers where it is not'.",
   "cpu_class": "shared"
  },
  {
   "key": "usage-credits",
   "label": "Usage Credits prepaid rate set",
   "flags": [],
   "plans": [
    "Usage Credits (prepaid)"
   ],
   "pricing": "resource",
   "vcpu_h": 0.07,
   "ram_gib_h": 0.015,
   "cpu_basis": "active",
   "ram_basis": "alloc",
   "min_vcpu": 1,
   "max_vcpu": 4,
   "max_ram_gib": 16,
   "min_billed_seconds": 0,
   "granularity_s": 1,
   "start_fee": 0,
   "note": "Disk $0.0002/GB-hour; snapshots $0.07/GB-month; $5 minimum initial pack; no postpaid overage.",
   "ram_per_vcpu": [
    1,
    8
   ],
   "cpu_class": "shared"
  },
  {
   "key": "free-tier",
   "label": "Free unmetered sandbox",
   "flags": [],
   "plans": [
    "Free"
   ],
   "pricing": "sizes",
   "sizes": [
    {
     "name": "Free",
     "vcpu": 1,
     "ram_gib": 1,
     "disk_gib": 10,
     "hour": 0
    }
   ],
   "note": "One concurrent sandbox, two-hour session maximum, seven-day storage retention; plan-coupling is mandatory."
  }
 ],
 "storage": {
  "included_disk_gib": 0,
  "disk_gib_month": 0.073,
  "disk_billed_when_stopped": false,
  "snapshot_gib_month": 0.07,
  "paused_ram_billed": false
 },
 "network": {
  "egress_free_gib": null,
  "egress_gib": 0,
  "ipv4_month": null,
  "ipv4_available": false,
  "internet": {
   "default": "configurable",
   "evidence": [
    {
     "quote": "By default, sandboxes have outbound internet access enabled. Disable it for untrusted code.",
     "url": "https://docs.tensorlake.ai/sandboxes/networking.md"
    },
    {
     "quote": "Network egress is free.",
     "url": "https://www.tensorlake.ai/pricing"
    }
   ]
  }
 },
 "plans": [
  {
   "name": "Free",
   "fee": 0,
   "flags": [],
   "fee_is_credit": false,
   "included_usd": 0,
   "per_seat": 0,
   "concurrency": 1,
   "max_session_h": 2,
   "max_vcpu": 1,
   "max_ram_gib": 1,
   "sizes_allowed": null,
   "note": "Unmetered $0 tier (was mode free): 1 sandbox at a time, 1 vCPU / 1 GB / 10 GB, sessions up to 2 h, 7-day storage retention. trial_only because the engine cannot tie a $0 rate to this plan only.",
   "trial_only": true
  },
  {
   "name": "Usage Credits (prepaid)",
   "fee": 0,
   "flags": [],
   "fee_is_credit": false,
   "included_usd": 0,
   "per_seat": 0,
   "concurrency": 100,
   "max_session_h": 24,
   "max_vcpu": 4,
   "max_ram_gib": 16,
   "sizes_allowed": null,
   "note": "Prepaid $5/$10/$20 packs (500/1,000/2,000 CU), up to 10 at once, optional auto-refill, running sandboxes stopped at zero balance (no postpaid overage). Rate set usage_credits_gb_v1: active CPU $0.07/core-h, RAM $0.015/GB-h, disk $0.0002/GB-h ($0.146/GB-month), snapshots $0.07/GB-month = 1/0.6 x Pro. Limits 100 concurrent, 4 vCPU / 16 GB / 100 GB, 24 h sessions. Marked trial_only (not auto-picked): the engine picks the cheapest mode independently of the plan, so a Credits plan would otherwise be paired with Pro rates and understate cost by 40%. Cheaper than Pro only below ~$417/month of Credits-rate usage.",
   "trial_only": true
  },
  {
   "name": "Pro",
   "fee": 250,
   "flags": [],
   "fee_is_credit": true,
   "included_usd": 0,
   "per_seat": 0,
   "concurrency": 1000,
   "max_session_h": null,
   "max_vcpu": 16,
   "max_ram_gib": 64,
   "sizes_allowed": null,
   "note": "Pairs with mode 'pro'. $250 per monthly cycle = 25,000 CU of usage at Pro rates; overage $0.01/CU on the same invoice. Unlimited duration, HIPAA BAA, 24x7 Slack+email, P1 SLA 24 h. Rollover of unused CU not stated (assumed none)."
  },
  {
   "name": "Enterprise",
   "fee": null,
   "flags": [
    "sales"
   ],
   "fee_is_credit": null,
   "included_usd": null,
   "per_seat": null,
   "concurrency": null,
   "max_session_h": null,
   "max_vcpu": null,
   "max_ram_gib": null,
   "sizes_allowed": null,
   "note": "Custom rates, unlimited concurrency, custom vCPU/RAM/disk ceilings, SSO/SAML, RBAC, in-VPC/on-prem, P1 SLA 1 h, resident SA."
  }
 ],
 "free": {
  "monthly_credit": 0,
  "one_time_credit": 0
 },
 "features": {
  "linux": true,
  "windows": false,
  "macos": false,
  "arm64": false,
  "gpu": true,
  "gpu_types": [],
  "snapshot": "mem",
  "pause_resume": true,
  "fork": true,
  "persistent_disk": true,
  "volumes": true,
  "auto_stop_idle": true,
  "max_session_h": null,
  "custom_image": true,
  "docker_inside": true,
  "nested_virt": false,
  "root": true,
  "systemd": true,
  "browser": true,
  "desktop": true,
  "computer_use": true,
  "code_interpreter": false,
  "agent_harnesses": false,
  "ssh": true,
  "public_ipv4": false,
  "inbound_https": true,
  "custom_domain": null,
  "raw_tcp_inbound": false,
  "egress_allowlist": true,
  "static_egress_ip": false,
  "private_network": true,
  "self_host": false,
  "byoc": true,
  "open_source": false,
  "regions": [
   "us",
   "eu"
  ],
  "soc2": true,
  "hipaa": true,
  "sso": true,
  "lang_python": true,
  "lang_node": true,
  "lang_go": null,
  "lang_rust": null,
  "lang_java": null,
  "gpu_desktop": false,
  "credential_injection": null,
  "egress_http_rules": false,
  "wake_on_request": true,
  "live_resize": false,
  "fork_running": true,
  "memory_snapshot_fork": true,
  "webhooks": true,
  "scheduled_wakeups": null,
  "audit_logs": null,
  "eu_data_residency": true,
  "zero_data_retention": true,
  "scoped_api_keys": null,
  "spend_limits": null,
  "mcp_server": false,
  "browser_control": true,
  "desktop_control": true,
  "anti_bot": false,
  "captcha_solving": false,
  "egress_ip_type": "datacenter",
  "ip_note": "No proxy/residential IP options documented; egress can be disabled or allow/deny-listed per sandbox.",
  "isolation": "firecracker",
  "image_oci": true,
  "snapshot_auto": true,
  "snapshot_on_demand": true,
  "egress_allowlist_level": "both",
  "ingress_rules": true,
  "guest_firewall": true,
  "secret_proxy": false,
  "volume_attach": true,
  "volume_shared": true,
  "harness_api": false,
  "own_agent_api": false,
  "max_session_unlimited": true,
  "fast_boot": true,
  "open_internet": true,
  "usage_api": false
 },
 "perf": {
  "cpu_runs_s": null,
  "cold_start_ms": 706,
  "burst_tti_ms": 1127.25,
  "dax_s": 97.18
 },
 "perf_source": "ComputeSDK (github.com/computesdk/benchmarks results/): cold 706 ms (2026-08-07), burst 1,127.25 ms (2026-09-25), dax 97.18 s (2026-09-25, 8 CPUs / 16 GiB). Rate sets differ, runtime is the same. No HPC result.",
 "knobs": [
  {
   "id": "idle_timeout_tail",
   "label": "Idle tail before timeout_secs suspends/terminates (× session hours)",
   "kind": "slider",
   "min": 1,
   "max": 2,
   "step": 0.05,
   "default": 1,
   "unit": "×",
   "options": null,
   "effect": "hours_factor",
   "modes": [
    "pro"
   ],
   "why": "RAM and root disk are billed on allocation while running, including the idle tail before timeout_secs (default 600 s, reset by proxied traffic); CPU is active-metered so the tail adds mostly RAM/disk. E.g. a 20-min session + the 10-min default = 1.5x (slightly overstates CPU). Default 1 = stopped when work ends; 2x ceiling is a judgment call.",
   "source": "https://docs.tensorlake.ai/sandboxes/lifecycle"
  }
 ],
 "caveats": [
  "Engine encoding: rates are tied to plans (Pro rate set only on Pro, Usage Credits rate set only on the prepaid plan, Free unmetered only on Free) but the engine chooses modes independently of plans. The card therefore prices only the Pro path (mode pro + Pro plan = max($250, usage at Pro rates)); Free and Usage Credits are kept as trial_only plans with their rates in the notes. Workloads under ~$417/month at Credits rates (~$250 at Pro rates) are really cheaper on Usage Credits (min $5 pack) or Free; the estimate overstates them (floor $250). Root disk: Pro $0.0001/GB-h = storage.disk_gib_month $0.073; Usage Credits disk is 2x ($0.146).",
  "Active CPU falls back to allocated vCPU time for any sandbox generation where active metering is unavailable or untrustworthy. Pricing page (https://www.tensorlake.ai/pricing, 2026-10-14): \"If an active CPU sample is unavailable or untrustworthy, we use allocated vCPU time for that sandbox generation.\" The docs billing page (https://docs.tensorlake.ai/platform/billing.md) does not repeat this clause. At 30% util that makes CPU 3.3x costlier. The engine assumes active metering works.",
  "RAM and root disk are billed on allocation while running, including the idle tail before timeout_secs (default 600 s, driven by proxied traffic).",
  "Snapshot storage $0.07/GB per fixed 30-day month, billed 'while suspended'. The price of snapshot artifacts and clones not tied to a suspended sandbox is not documented (assumed the same).",
  "Only named sandboxes can suspend. Ephemeral sandboxes terminate on idle (restartable for 48 h; billing in that window undocumented).",
  "Usage Credits has no postpaid overage: running sandboxes are stopped at zero balance. Pro bills overage at $0.01/CU.",
  "Plan session caps (2 h / 24 h / unlimited) are maximum idle timeouts, not wall-clock lifetimes.",
  "Warm-pool (warm_containers) billing is undocumented. Cloud Volumes, managed Git and GitHub Actions runner pricing are not on the sandbox rate card.",
  "BYOC mode = your cloud bill + Tensorlake fee: the estimate includes an AWS reference rate (i7i.metal-24xl $9.06/h, 96 vCPU, from the 2026-07-28 blog) as a stand-in for the AWS invoice you pay directly, plus the 30% entry fee. The fee falls to 10% (CPU) and to 2% (GPU) at scale. Excludes EBS and AWS egress. Your actual AWS pricing (reserved/savings plans, other instance types) changes the total.",
  "EU region (api.eu.tensorlake.ai): no price difference published.",
  "GPU sandboxes on managed cloud are by request only, with no published GPU rate (not modelled): \"GPU sandboxes are available by request.\" They run on gVisor rather than Firecracker/Cloud Hypervisor, cannot mount Tensorlake filesystems and only work with CAS images (https://docs.tensorlake.ai/sandboxes/gpu.md, 2026-10-14; example uses --gpu H100). BYOC GPU sandboxes carry a 5% to 2% fee.",
  "Billed in whole CUs pooled per org (rounding at most $0.01). Pro CU rollover not stated.",
  "perf from benchmarks.json computesdk (cold start 706 ms, burst 1,127 ms, dax 97.2 s). No hpc CPU benchmark.",
  "Verified 2026-09-28 against https://www.tensorlake.ai/pricing (\"UPDATED Q3 2026\"): all rates, limits, packs, Pro $250 = 25,000 CU included, $0.01/CU overage, egress free, active-CPU fallback clause confirmed.",
  "nested_virt=false rests on the Harbor page, which sets SANDBOX_KVM_AVAILABLE=0 (\"No nested virtualization\") in each single-container Harbor sandbox (https://docs.tensorlake.ai/sandboxes/harbor.md). Whether a plain (non-Harbor) sandbox exposes /dev/kvm is not documented; sandboxes are \"MicroVMs backed by Firecracker and CloudHypervisor\" (https://docs.tensorlake.ai/sandboxes/introduction.md).",
  "Docker: runs on tensorlake/ubuntu-systemd sandboxes (\"Required for workloads needing service management, such as Docker or Kubernetes\"), but Harbor single-container task sandboxes set SANDBOX_DOCKER_AVAILABLE=0 (\"No container runtime\"); Harbor Compose tasks boot a systemd Docker-in-Docker host instead (https://docs.tensorlake.ai/sandboxes/harbor.md, 2026-10-14).",
  "Free tier session cap depends on verification: the API reference gives 'Free unverified 3600 (1h), Free verified 7200 (2h)' as timeout_secs maximums. The pricing page shows only 'Up to 2 hours'.",
  "No create/start rate limit is published. Creates beyond host, pool or namespace capacity are queued in Pending (pending_reason no_resources_available / pool_at_capacity / max_capacity_reached) and wait indefinitely unless max_pending_secs is set. The docs don't say whether Pending time is billed. 'When the fleet has to add a host first, that can take minutes.'",
  "The minimum root disk is 10 GiB (disk_mb 10240-102400), so every running sandbox bills at least 10 GB of disk ($0.001/h on Pro, $0.002/h on Credits) even if the workload asks for less.",
  "Cloud Volumes permanent snapshots are 'billed storage', but no rate is published on the pricing page or in the docs.",
  "Docs describe Pro as '$250 / month + usage' (billing table) and 'Pro is $250 per month plus metered usage' (pricing FAQ). The pricing page says the $250 'INCLUDES 25,000 CU ($250 OF USAGE)'. The card follows the pricing page (fee_is_credit true), and the docs FAQ defers to it ('For current commercial terms, see tensorlake.ai/pricing').",
  "GitHub Actions runners (separate product, not modelled) come as presets tensorlake-small 2 vCPU/4 GiB/10 GiB, medium 4/8/50, large 8/16/100 and xlarge 16/32/100, or custom sizes. Each runner has a 2 h maximum lifetime and draws on the project's sandbox quotas. No separate runner price is published (presumably the sandbox rate set)."
 ],
 "sources": [
  "https://www.tensorlake.ai/pricing",
  "https://docs.tensorlake.ai/platform/billing",
  "https://docs.tensorlake.ai/sandboxes/lifecycle",
  "https://docs.tensorlake.ai/sandboxes/snapshots",
  "https://docs.tensorlake.ai/sandboxes/pools",
  "https://docs.tensorlake.ai/platform/eu-data-residency",
  "https://docs.tensorlake.ai/platform/self-hosted-compute/aws",
  "https://www.tensorlake.ai/blog/introducing-tensorlake-byoc"
 ],
 "fleet": {
  "default_max_instances": 1,
  "default_max_vcpu": null,
  "default_max_gpus": null,
  "raise": "self-serve",
  "raise_time_days": null,
  "verification": "Usage Credits bought in $5/$10/$20 packs; Pro is a monthly usage-credit subscription.",
  "tiers": "Free 1; prepaid Usage Credits 100; Pro ($250/month) 1,000; Enterprise custom.",
  "notes": "10/50 fit prepaid, 300/1,000 Pro. Up to 10 packs per purchase is not a concurrency quota. No documented upgrade delay or universal KYC requirement.",
  "sources": [
   "https://docs.tensorlake.ai/platform/billing",
   "https://www.tensorlake.ai/pricing"
  ],
  "researched": "2026-09-28"
 },
 "audit_2026_09_29": {
  "applied": 9,
  "source": "checked against the provider's live pricing and docs pages",
  "reviewed": 5
 },
 "feature_evidence": {
  "snapshot_auto": {
   "value": true,
   "source": "https://docs.tensorlake.ai/sandboxes/lifecycle",
   "quote": "suspend on timeout. Filesystem, memory, and running processes are preserved so you can resume later under the same name.",
   "note": "Trigger: idle timeout_secs (default 600 s, no proxied traffic) or manual suspend. Memory + processes included. Named sandboxes only; ephemeral ones terminate on timeout. Suspended named sandboxes can auto-resume on a request to an exposed port.",
   "checked": "2026-09-29"
  },
  "snapshot_on_demand": {
   "value": true,
   "source": "https://docs.tensorlake.ai/sandboxes/snapshots",
   "quote": "`memory`: captures filesystem, memory, and running process state and restores with a warm start.",
   "note": "tl sbx checkpoint / sandbox.checkpoint(); types filesystem (default) or memory. New sandboxes boot from a snapshot (Sandbox.create(snapshot_id=...)); snapshots outlive the source. Also 'tl sbx copy' clones a running or suspended sandbox N times with memory ('restoring filesystem, memory, and running processes so each copy warm-starts').",
   "checked": "2026-09-29"
  },
  "egress_allowlist": {
   "value": true,
   "source": "https://docs.tensorlake.ai/sandboxes/networking",
   "quote": "values can be domains, leading-wildcard domains like `*.example.com`, IPv4 addresses, or IPv4 CIDR ranges",
   "note": "allow_out (default-deny when non-empty) and deny_out (precedence), allow_internet_access=false for no-internet. Policy updatable on a running sandbox via atomic firewall swap ('applied to the running sandbox's firewall as a single atomic swap'); existing connections closed. IPv4 only for IP rules.",
   "checked": "2026-09-29",
   "level": "both"
  },
  "egress_http_rules": {
   "value": false,
   "source": "https://docs.tensorlake.ai/sandboxes/networking",
   "quote": "Allowed domains, leading-wildcard domains (`*.example.com`), IPv4 addresses, or IPv4 CIDRs.",
   "note": "The Network Configuration Summary lists only allow_internet_access, allow_out, deny_out (host/IP) plus ingress fields; no method/path/header rules.",
   "checked": "2026-09-29"
  },
  "ingress_rules": {
   "value": true,
   "source": "https://docs.tensorlake.ai/sandboxes/networking",
   "quote": "For any other port, the proxy only forwards requests if that port is listed in `exposed_ports`.",
   "note": "Per-port exposure via exposed_ports; authenticated by default (Tensorlake API key or browser session cookie) unless allow_unauthenticated_access=true. Management port 9501 never public. No IP allowlist documented; HTTPS/WebSocket/gRPC only (no raw TCP inbound; TCP via authenticated local tunnels).",
   "checked": "2026-09-29"
  },
  "guest_firewall": {
   "value": true,
   "source": null,
   "quote": null,
   "note": "Firecracker/Cloud Hypervisor microVM with its own kernel ('each sandbox has its own kernel'), root via passwordless sudo, Docker supported. iptables/nftables not mentioned in docs.",
   "checked": "2026-09-29",
   "derived": true
  },
  "secret_proxy": {
   "value": false,
   "source": "https://docs.tensorlake.ai/api-reference/v2/sandboxes/create",
   "quote": "Secret names to inject into the sandbox.",
   "note": "secret_names on sandbox create injects stored project secrets into the sandbox (Applications docs: 'Stored secrets are available as environment variables'). No credential-injecting egress proxy documented. Related: the OpenCode plugin gives each sandbox a Tensorlake git credential scoped to one hosted repo so 'Your own git credentials and remotes never enter the sandbox' (a scoped token, not a proxy).",
   "checked": "2026-09-29"
  },
  "volume_attach": {
   "value": true,
   "source": "https://docs.tensorlake.ai/sandboxes/mount-filesystems",
   "quote": "The sandbox's root disk is ephemeral; a mounted filesystem is durable, survives the sandbox, and can be shared by many sandboxes at once.",
   "note": "Tensorlake filesystems (Cloud Volumes): versioned, lazily streamed, autosaved to durable storage; mount at create, on pool claim or on a running sandbox. Not block devices.",
   "checked": "2026-09-29"
  },
  "volume_shared": {
   "value": true,
   "source": "https://docs.tensorlake.ai/sandboxes/mount-filesystems",
   "quote": "The same filesystem can be mounted by multiple sandboxes in one project concurrently.",
   "note": "Read-write or read-only (ro, optionally pinned to a permanent snapshot). Concurrent writes: disjoint paths merge, same-path last-writer-wins; changes visible to other mounts within seconds (async autosave, not POSIX-coherent NFS).",
   "checked": "2026-09-29"
  },
  "anti_bot": {
   "value": false,
   "source": "https://docs.tensorlake.ai/sandboxes/introduction",
   "quote": "Tensorlake provides isolated MicroVM sandboxes that boot in hundreds of milliseconds, with memory and filesystem preserved across suspend/resume.",
   "note": "not offered: outside the product's scope. Tensorlake is a general MicroVM sandbox/execution platform; docs cover browser automation via a real Chrome (ubuntu-vnc + CDP/chrome-devtools-mcp) but no stealth/fingerprint-evasion or anti-bot-detection feature is documented anywhere in the docs.",
   "checked": "2026-09-30"
  },
  "captcha_solving": {
   "value": false,
   "source": "https://docs.tensorlake.ai/sandboxes/introduction",
   "quote": "Tensorlake provides isolated MicroVM sandboxes that boot in hundreds of milliseconds, with memory and filesystem preserved across suspend/resume.",
   "note": "not offered: outside the product's scope. No CAPTCHA-solving API or integration is documented; the product is a generic sandbox/VM runtime, not a scraping/automation service.",
   "checked": "2026-09-30"
  },
  "egress_ip_type": {
   "value": "datacenter",
   "source": "https://docs.tensorlake.ai/sandboxes/networking",
   "quote": "Sandboxes support two networking features: 1. Routing internet traffic into services running inside a sandbox ... 2. Restricting the sandbox's own outbound internet access",
   "note": "Outbound access is allow/deny-listed by domain/IP/CIDR (allow_out/deny_out) or disabled (allow_internet_access=false); no residential, mobile, or proxy IP option is documented anywhere in the docs, so egress is ordinary cloud/datacenter IP space.",
   "checked": "2026-09-30"
  },
  "harness_api": {
   "value": false,
   "source": "https://docs.tensorlake.ai/sandboxes/introduction",
   "quote": "Sandboxes can be used to run agent harnesses, run tool calls or even as VMs for running coding agents, builds and IDEs.",
   "note": "Tensorlake gives generic sandbox primitives (run commands/processes, SSH/PTY, files) that third-party coding harnesses (Claude Code, Codex, Devin, Cursor Cloud Agents, Claude Managed Agents) run inside; there is no first-party API that itself prompts/streams/follows-up with a coding harness.",
   "checked": "2026-09-30"
  },
  "own_agent_api": {
   "value": false,
   "source": "https://docs.tensorlake.ai/sandboxes/computer-use",
   "quote": "Launch ubuntu-vnc sandboxes and drive their desktop from Python or JavaScript.",
   "note": "not offered: outside the product's scope. Tensorlake exposes computer-use/desktop-control and browser (CDP) APIs to let YOUR agent drive the sandbox's desktop/browser, but Tensorlake has no first-party autonomous task agent (browser/computer-use/research agent) of its own to call.",
   "checked": "2026-09-30"
  },
  "mcp_server": {
   "value": false,
   "source": "https://docs.tensorlake.ai/sandboxes/chrome-cdp",
   "quote": "Claude Code and OpenAI Codex can both drive the same sandboxed Chrome through the official `chrome-devtools-mcp` server.",
   "note": "Tensorlake documents wiring up a third-party MCP server (chrome-devtools-mcp) via a tunnel; no Tensorlake-authored MCP server for controlling sandboxes was found in docs or the tensorlakeai GitHub org.",
   "checked": "2026-09-30"
  },
  "lang_node": {
   "value": true,
   "source": "https://docs.tensorlake.ai/sandboxes/sdk-reference",
   "quote": "The TypeScript SDK mirrors them in camelCase (`start_process` → `startProcess`, `read_file` → `readFile`, `memory_mb` → `memoryMb`, etc.). The same JavaScript runtime API is used from Node.js.",
   "note": "First-party TypeScript/JavaScript SDK (`tensorlake` npm package) usable from Node.js, mirroring the Python SDK's sandbox-management surface.",
   "checked": "2026-09-30"
  },
  "static_egress_ip": {
   "value": false,
   "source": "https://docs.tensorlake.ai/sandboxes/networking",
   "quote": "Restricting the sandbox's own outbound internet access",
   "note": "Outbound control is by domain/IP/CIDR allow/deny lists or disabling internet access entirely; no fixed/dedicated outbound IP address per sandbox or per project is documented.",
   "checked": "2026-09-30"
  },
  "open_source": {
   "value": false,
   "source": "https://github.com/tensorlakeai",
   "quote": "tensorlakeai/tensorlake-skills, tensorlakeai/cloud-sdk, tensorlakeai/opencode-tensorlake-plugin",
   "note": "The tensorlakeai GitHub org publishes client SDKs, CLIs, plugins, and examples as open source, but the core sandbox control plane / MicroVM execution engine (the product itself) is not published under an OSI license; it is offered only as Tensorlake's managed Cloud or BYOC service.",
   "checked": "2026-09-30"
  },
  "max_session_h": {
   "value": "none",
   "source": "https://docs.tensorlake.ai/platform/billing",
   "quote": "Pro | $250 / month + usage | 1,000 | 16 vCPU, 64 GB RAM, 100 GB root disk | Unlimited",
   "note": "Card's primary modeled plan/mode is Pro (mode key 'pro'), whose maximum session duration is Unlimited (idle timeout still applies: default 600 s, configurable, and only named sandboxes can suspend rather than terminate). Free is capped at 2 h and Usage Credits at 24 h.",
   "checked": "2026-09-30"
  },
  "nested_virt": {
   "value": false,
   "source": "https://docs.tensorlake.ai/sandboxes/harbor.md",
   "quote": "SANDBOX_KVM_AVAILABLE | 0 | No nested virtualization. For example, do not use `-enable-kvm` with QEMU.",
   "note": "Harbor sets this env var in each single-container Harbor sandbox ('Harbor also sets these environment variables in each single-container sandbox'), not in every Tensorlake sandbox; plain sandboxes' /dev/kvm availability is undocumented. Matches Firecracker/Cloud Hypervisor microVM isolation with no exposed KVM to guests.",
   "checked": "2026-10-14"
  },
  "docker_inside": {
   "value": true,
   "source": "https://docs.tensorlake.ai/sandboxes/tensorlake-images.md",
   "quote": "`tensorlake/ubuntu-systemd`: Ubuntu with systemd included. Required for workloads needing service management, such as Docker or Kubernetes, within the sandbox.",
   "note": "Docker needs the ubuntu-systemd image. Harbor single-container task sandboxes set `SANDBOX_DOCKER_AVAILABLE` = `0` ('No container runtime. Do not use `docker run`.'); Harbor Compose tasks boot a systemd-managed Docker-in-Docker host sandbox instead (https://docs.tensorlake.ai/sandboxes/harbor.md).",
   "checked": "2026-10-14"
  },
  "wake_on_request": {
   "value": true,
   "source": "https://docs.tensorlake.ai/sandboxes/networking.md",
   "quote": "If a named sandbox is suspended, the proxy can auto-resume it when a request arrives for an exposed port.",
   "note": "Named sandboxes only (ephemeral ones terminate on idle and cannot be resumed). lifecycle.md and remote-dev.md only describe explicit `tl sbx resume`; the auto-resume statement is on the networking page.",
   "checked": "2026-10-14"
  },
  "spend_limits": {
   "value": null,
   "source": "https://docs.tensorlake.ai/platform/billing.md",
   "quote": "When the balance reaches zero, Tensorlake blocks new sandbox activity and stops running sandboxes instead of creating a postpaid overage.",
   "note": "Prepaid Usage Credits simply stop at zero balance; that is a prepaid balance, not a configurable spend limit. Pro bills overage at $0.01/CU with no documented cap. The pricing page's 'Live balance, activity, and spend control' (Usage Credits) does not describe a settable limit.",
   "checked": "2026-10-14"
  },
  "zero_data_retention": {
   "value": true,
   "source": "https://docs.tensorlake.ai/sandboxes/introduction.md",
   "quote": "Tensorlake is HIPAA and SOC 2 Type II compliant, supports EU data residency, and offers zero data retention.",
   "note": "Same sentence in the sandboxes FAQ (https://docs.tensorlake.ai/faqs/sandboxes-faq). Terms (which plan, how enabled) are not described.",
   "checked": "2026-10-14"
  },
  "public_ipv4": {
   "value": false,
   "source": "https://docs.tensorlake.ai/sandboxes/networking.md",
   "quote": "Every running sandbox is reachable through sandbox-specific ingress. `https://<sandbox-id-or-name>.sandbox.tensorlake.ai` routes to the sandbox management API on port `9501`",
   "note": "All inbound access is via the shared *.sandbox.tensorlake.ai HTTPS/WebSocket/gRPC proxy and per-port exposed_ports; no per-sandbox public IPv4 is documented anywhere in the API reference or networking docs (only outbound allow/deny rules reference IPv4).",
   "checked": "2026-09-30"
  },
  "agent_harnesses": {
   "value": false,
   "source": "https://docs.tensorlake.ai/sandboxes/tensorlake-images.md",
   "quote": "`tensorlake/ubuntu-minimal` (*default sandbox image*) ... `tensorlake/ubuntu-systemd` ... `tensorlake/debian-minimal` ... `tensorlake/ubuntu-vnc`",
   "note": "Managed images are plain OS bases (or a VNC desktop); none ship a coding-agent CLI preinstalled. The OpenCode/Devin/Claude/Cursor docs describe routing an externally-run harness's tool calls INTO a sandbox, not a preinstalled harness/template.",
   "checked": "2026-09-30"
  },
  "gpu": {
   "value": true,
   "corrected_from": false,
   "source": "https://www.tensorlake.ai/blog/introducing-tensorlake-byoc",
   "quote": "GPU sandboxes | 5% of compute costs | As low as 2%",
   "note": "BYOC pricing lists a GPU-sandbox fee tier, and managed cloud offers GPU sandboxes by request: 'GPU sandboxes are available by request.' (https://docs.tensorlake.ai/sandboxes/gpu.md, 2026-10-14). They run on gVisor, only with CAS images, no TLFS mounts; the example uses `--gpu H100`. No GPU rate is published.",
   "checked": "2026-10-14"
  },
  "windows": {
   "value": false,
   "source": "https://docs.tensorlake.ai/sandboxes/introduction.md",
   "quote": "Sandboxes are created on-demand via API calls, and they are MicroVMs backed by Firecracker and CloudHypervisor.",
   "note": "not offered: outside the product's scope. Every managed image (tensorlake/ubuntu-minimal, ubuntu-systemd, debian-minimal, ubuntu-vnc) is a Linux distro; no Windows guest is documented anywhere in the sandbox docs or API.",
   "checked": "2026-09-30"
  },
  "macos": {
   "value": false,
   "source": "https://docs.tensorlake.ai/sandboxes/introduction.md",
   "quote": "Sandboxes are created on-demand via API calls, and they are MicroVMs backed by Firecracker and CloudHypervisor.",
   "note": "not offered: outside the product's scope. Firecracker/Cloud Hypervisor microVMs only run Linux guests; the only macOS mention anywhere is the client SDK binary for Apple Silicon (opencode.md), not a macOS sandbox guest.",
   "checked": "2026-09-30"
  },
  "arm64": {
   "value": false,
   "source": "https://docs.tensorlake.ai/platform/self-hosted-compute/aws.md",
   "quote": "Capacity for at least one supported bare-metal EC2 instance: `i7i.metal-24xl` or `i7i.metal-48xl`.",
   "note": "The only documented executor hardware (managed cloud and BYOC) is Intel x86_64 bare-metal EC2 (i7i.metal-*). No ARM/aarch64 sandbox host is documented; the sole 'arm64' mention in the docs (opencode.md) refers to the client SDK's native binary platforms, not the sandbox guest architecture.",
   "checked": "2026-09-30"
  },
  "self_host": {
   "value": false,
   "source": "https://docs.tensorlake.ai/platform/self-hosted-compute/aws.md",
   "quote": "Sandboxes always run on executors in your account ... Tensorlake Cloud remains the control plane that schedules work and gives your team one API for managing sandboxes.",
   "note": "This is BYOC (byoc:true already), not self-host: compute runs in your AWS account but Tensorlake's own control plane still schedules and manages it. There is no way to run the product entirely on your own infrastructure without Tensorlake Cloud, so self_host: false is correct.",
   "checked": "2026-09-30"
  },
  "live_resize": {
   "value": false,
   "source": "https://docs.tensorlake.ai/sandboxes/lifecycle.md",
   "quote": "Configure CPU, memory, and disk size per sandbox. These are fixed when the sandbox is created and cannot be changed afterwards. Create a new sandbox if you need different resources.",
   "note": "Explicitly documented: resources are fixed at create time; even restoring from a memory snapshot keeps the original CPU/memory ('Image, resources (CPUs, memory), and entrypoint come from the snapshot and cannot be changed at restore time').",
   "checked": "2026-09-30"
  },
  "cpu_class": {
   "value": {
    "pro": "shared",
    "usage-credits": "shared",
    "byoc": "shared"
   },
   "source": "https://www.tensorlake.ai/blog/introducing-tensorlake-byoc",
   "quote": "Serverless platforms oversubscribe compute to pack workloads more densely and reduce costs. Most sandboxes do not use all their allocated CPUs at the same time, so oversubscription improves resource utilization. Tensorlake gives operators control over how much each machine is oversubscribed.",
   "note": "Tensorlake's own blog states its sandbox hosts (managed cloud and BYOC alike) are run oversubscribed by design, with the operator (Tensorlake for pro/usage-credits, the customer for BYOC) merely controlling the oversubscription ratio -- there is no dedicated/pinned-core tier documented. This matches the billing page's active-CPU metering for pro/usage-credits ('CPU tracks active runtime execution, not allocated vCPU time is used' -- https://docs.tensorlake.ai/platform/billing), which only makes economic sense if idle allocated vCPUs can be reused by other sandboxes on the same shared host. No published rate set or doc names a dedicated-core or published-baseline-burstable tier, so 'shared' (oversubscribed, no guaranteed per-vCPU share) is the best-supported value for all three metered modes; free-tier omitted for lack of direct evidence.",
   "checked": "2026-09-30"
  },
  "fast_boot": {
   "value": true,
   "source": "https://www.computesdk.com/benchmarks",
   "quote": "burst of 100: p95 1197 ms, 100% started",
   "note": "ComputeSDK sandbox benchmark 2026-09-25",
   "checked": "2026-09-25"
  },
  "usage_api": {
   "value": false,
   "source": "https://docs.tensorlake.ai/platform/billing.md",
   "quote": "Organization settings in the Tensorlake dashboard (https://cloud.tensorlake.ai) has two tabs for spend. The Usage tab shows metered charges for the selected billing cycle, the CPU-hours and GiB-hours behind those charges, and usage per day.",
   "note": "granularity: account-only; cost: yes; Usage is viewable only through the web dashboard (account-level aggregation), not through a REST API, SDK, or CLI. The OpenAPI spec (https://docs.tensorlake.ai/api-reference/openapi.yaml) documents sandbox management, processes, files, PTY, tunnels, and SSH endpoints but no usage or billing endpoints. No programmatic access to per-sandbox or per-tag usage exists.",
   "confidence": "high",
   "checked": "2026-10-01"
  }
 },
 "locations": [],
 "locations_source": "https://docs.tensorlake.ai/platform/eu-data-residency",
 "locations_quote": "Tensorlake APIs are available in the EU region to provide data residency and compute in Europe. EU HTTP Endpoint is https://api.eu.tensorlake.ai/",
 "locations_checked": "2026-10-01"
}