{
 "features_resolved": {
  "snapshot_any": true,
  "snapshot_mem": false,
  "fork": true,
  "pause_resume": true,
  "persistent_disk": true,
  "whole_disk": true,
  "persist_scope": null,
  "volumes": false,
  "auto_stop_idle": false,
  "long_sessions": true,
  "custom_image": true,
  "image_snapshot": true,
  "image_oci": false,
  "vm_isolation": true,
  "docker_inside": true,
  "nested_virt": true,
  "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": true,
  "captcha_solving": false,
  "residential_ip": false,
  "agent_harnesses": true,
  "ssh": true,
  "public_ipv4": false,
  "inbound_https": true,
  "custom_domain": null,
  "raw_tcp_inbound": true,
  "egress_allowlist": false,
  "open_internet": true,
  "static_egress_ip": false,
  "private_network": false,
  "self_host": false,
  "byoc": false,
  "open_source": false,
  "soc2": false,
  "hipaa": false,
  "sso": false,
  "gpu": false,
  "arm64": false,
  "windows": false,
  "macos": false,
  "lang_python": true,
  "lang_node": true,
  "lang_go": true,
  "lang_rust": true,
  "lang_java": true,
  "gpu_desktop": false,
  "credential_injection": true,
  "egress_http_rules": false,
  "wake_on_request": false,
  "live_resize": false,
  "fork_running": true,
  "memory_snapshot_fork": false,
  "webhooks": true,
  "scheduled_wakeups": null,
  "audit_logs": false,
  "eu_data_residency": true,
  "zero_data_retention": true,
  "scoped_api_keys": true,
  "spend_limits": true,
  "mcp_server": false,
  "usage_api": true,
  "snapshot_auto": true,
  "snapshot_on_demand": true,
  "harness_api": true,
  "own_agent_api": false,
  "fast_boot": null,
  "strong_isolation": true,
  "ingress_rules": true,
  "guest_firewall": true,
  "secret_proxy": true,
  "secret_proxy_any": true,
  "volume_attach": false,
  "volume_shared": false,
  "sidecar": null,
  "fuse": true,
  "kernel_features": true,
  "burst": null
 },
 "company": {
  "id": "boat",
  "checked": "2026-09-30",
  "company": "boat.dev",
  "ownership": {
   "value": "independent",
   "parent": null,
   "source": "https://www.ycombinator.com/companies/boat",
   "quote": "Boat Founded: 2024 Batch: Fall 2026 Team Size: 3 Status: Active Location: Paris, France"
  },
  "stage": {
   "value": "pre-seed",
   "source": "https://www.ycombinator.com/companies/boat",
   "quote": "Boat Founded: 2024 Batch: Fall 2026 Team Size: 3 Status: Active",
   "confidence": "low",
   "note": "No priced round found; a current YC company, which usually means YC's standard pre-seed investment. Inferred, not confirmed."
  },
  "accelerators": [
   {
    "name": "Y Combinator",
    "batch": "Fall 2026",
    "source": "https://www.ycombinator.com/companies/boat",
    "quote": "Boat Founded: 2024 Batch: Fall 2026 Team Size: 3 Status: Active Location: Paris, France",
    "confidence": "high",
    "via": "research"
   }
  ],
  "total_funding_usd": {
   "value": null,
   "status": "unknown"
  },
  "last_round": {
   "type": "unknown",
   "amount_usd": null,
   "date": null,
   "leads": [],
   "status": "unknown",
   "source": "",
   "quote": ""
  },
  "investors": [
   "Y Combinator"
  ],
  "portfolio_listings": [],
  "revenue": {
   "value": null,
   "status": "unknown"
  },
  "employees": {
   "value": 3,
   "source": "https://www.ycombinator.com/companies/boat"
  },
  "note": "Y Combinator Fall 2026 company based in Paris, 3 people. No funding round, valuation or investor beyond Y Combinator found in press or aggregators."
 },
 "id": "boat",
 "name": "boat.dev",
 "url": "https://docs.boat.dev/pricing",
 "category": "agent-sandbox",
 "isolation": "vm",
 "modes": [
  {
   "key": "on-demand",
   "label": "On-demand (flat per size, per second while running)",
   "pricing": "sizes",
   "vcpu_h": null,
   "ram_gib_h": null,
   "cpu_basis": "alloc",
   "ram_basis": "alloc",
   "active_floor": 0,
   "ram_per_vcpu": [
    2,
    2
   ],
   "ram_fixed_per_vcpu": 2,
   "vcpu_options": [
    2,
    4,
    8,
    16
   ],
   "min_vcpu": 2,
   "max_vcpu": 16,
   "max_ram_gib": 32,
   "sizes": [
    {
     "name": "small",
     "vcpu": 2,
     "ram_gib": 4,
     "disk_gib": 12,
     "hour": 0.018,
     "month_cap": null
    },
    {
     "name": "default",
     "vcpu": 4,
     "ram_gib": 8,
     "disk_gib": 50,
     "hour": 0.036,
     "month_cap": null
    },
    {
     "name": "large",
     "vcpu": 8,
     "ram_gib": 16,
     "disk_gib": 125,
     "hour": 0.072,
     "month_cap": null
    },
    {
     "name": "xlarge",
     "vcpu": 16,
     "ram_gib": 32,
     "disk_gib": 251,
     "hour": 0.2,
     "month_cap": null
    }
   ],
   "pool_tiers": null,
   "requires_always_on": false,
   "always_on_month_per_instance": null,
   "commit_note": "No commit/reserved/always-on discount exists; a 24/7 default sandbox is simply 730 h x $0.036 = $26.28/month.",
   "min_billed_seconds": 0,
   "granularity_s": 1,
   "start_fee": 0,
   "boot_overhead_s": 0,
   "multiplier": 1,
   "windows_vcpu_h": null,
   "gpu": null,
   "note": "Flat price per size, independent of CPU/RAM utilisation (idle-but-running bills full rate). Stopped = $0 (disk + snapshot free). xlarge needs the $100+ plan and operator allocation on request, and costs 5.56x default for 4x resources (+39% per vCPU). Disk is fixed per size; more disk requires a bigger size. Sandboxes run on standard machines (AMD Ryzen 9 9950X, ~27.7 runs/s); only when standard capacity is temporarily exhausted do they fall back to an older Hetzner cloud VM (~8.9 runs/s, no /dev/kvm) at the same price. No published per-start minimum (docs: 'billing is per second'); boot time billing not documented. vCPUs are shared (FAQ: \"Sandboxes have shared vCPUs\"), no published baseline.",
   "flags": [],
   "features": {
    "isolation": "bare-metal-vm",
    "image_oci": false
   },
   "cpu_class": "shared"
  }
 ],
 "storage": {
  "included_disk_gib": 50,
  "disk_gib_month": null,
  "disk_billed_when_stopped": false,
  "snapshot_gib_month": 0,
  "paused_ram_billed": false
 },
 "network": {
  "egress_free_gib": 2000,
  "egress_gib": null,
  "ipv4_month": 0,
  "ipv4_available": null,
  "internet": {
   "default": "full"
  }
 },
 "plans": [
  {
   "name": "Trial",
   "fee": 0,
   "fee_is_credit": false,
   "included_usd": 0,
   "per_seat": 0,
   "concurrency": 2,
   "max_session_h": 2,
   "max_vcpu": 4,
   "max_ram_gib": 8,
   "sizes_allowed": [
    "small",
    "default"
   ],
   "trial_only": true,
   "note": "7-day free trial started through Stripe Checkout with a card; one per person/org/payment method/identity. Capped at 25 machine-hours lifetime, 2 concurrent, small/default only, TTL <= 2 h, 5 starts/min, 25/h, 75/day. Unless cancelled before day 7, it converts into the paid plan chosen at checkout (the $20/month floor starts).",
   "flags": [],
   "max_starts_per_min": 5,
   "max_starts_per_day": 75,
   "max_starts_per_hour": 25,
   "trial_days": 7
  },
  {
   "name": "$20/mo",
   "fee": 20,
   "fee_is_credit": true,
   "included_usd": 0,
   "per_seat": null,
   "concurrency": 100,
   "max_session_h": null,
   "max_vcpu": 8,
   "max_ram_gib": 16,
   "sizes_allowed": [
    "small",
    "default",
    "large"
   ],
   "note": "Fee = $20 of machine time, expires at month end (effectively a $20/mo minimum). Overage via $20 credit packs at the same rates (never expire) or auto-refill. Starts 12/min, 60/h, 200/day (create, fork, resume each count). Session unlimited with --no-auto-stop (numeric TTL max 30 d); default TTL 1 h from creation.",
   "flags": [],
   "max_starts_per_min": 12,
   "max_starts_per_day": 200,
   "max_starts_per_hour": 60,
   "seat_multiplied": true,
   "seat_note": "Organisation plans are billed per seat; concurrency and start limits (and the machine-time credit) scale with seats (docs.boat.dev billing + pricing, main @ 2026-09-28)."
  },
  {
   "name": "$100/mo",
   "fee": 100,
   "fee_is_credit": true,
   "included_usd": 0,
   "per_seat": null,
   "concurrency": 300,
   "max_session_h": null,
   "max_vcpu": 16,
   "max_ram_gib": 32,
   "sizes_allowed": [
    "small",
    "default",
    "large",
    "xlarge"
   ],
   "note": "Fee = $100 of machine time, monthly-expiring. Starts 30/min, 210/h, 840/day. Unlocks xlarge (operator allocation on request).",
   "flags": [],
   "max_starts_per_min": 30,
   "max_starts_per_day": 840,
   "max_starts_per_hour": 210,
   "seat_multiplied": true,
   "seat_note": "Organisation plans are billed per seat; concurrency and start limits (and the machine-time credit) scale with seats (docs.boat.dev billing + pricing, main @ 2026-09-28)."
  },
  {
   "name": "$500/mo",
   "fee": 500,
   "fee_is_credit": true,
   "included_usd": 0,
   "per_seat": null,
   "concurrency": 1000,
   "max_session_h": null,
   "max_vcpu": 16,
   "max_ram_gib": 32,
   "sizes_allowed": [
    "small",
    "default",
    "large",
    "xlarge"
   ],
   "note": "Fee = $500 of machine time, monthly-expiring. Starts 65/min, 420/h, 1,680/day.",
   "flags": [],
   "max_starts_per_min": 65,
   "max_starts_per_day": 1680,
   "max_starts_per_hour": 420,
   "seat_multiplied": true,
   "seat_note": "Organisation plans are billed per seat; concurrency and start limits (and the machine-time credit) scale with seats (docs.boat.dev billing + pricing, main @ 2026-09-28)."
  },
  {
   "name": "$2000/mo",
   "fee": 2000,
   "fee_is_credit": true,
   "included_usd": 0,
   "per_seat": null,
   "concurrency": 2000,
   "max_session_h": null,
   "max_vcpu": 16,
   "max_ram_gib": 32,
   "sizes_allowed": [
    "small",
    "default",
    "large",
    "xlarge"
   ],
   "note": "Fee = $2,000 of machine time, monthly-expiring. Starts 90/min, 600/h, 2,400/day. More than 2,000 concurrent by agreement (unpublished terms).",
   "flags": [],
   "max_starts_per_min": 90,
   "max_starts_per_day": 2400,
   "max_starts_per_hour": 600,
   "seat_multiplied": true,
   "seat_note": "Organisation plans are billed per seat; concurrency and start limits (and the machine-time credit) scale with seats (docs.boat.dev billing + pricing, main @ 2026-09-28)."
  }
 ],
 "free": {
  "monthly_credit": 0,
  "one_time_credit": 0.9,
  "conditions": "card required (Stripe Checkout); one trial per person, organization, payment method and identity; auto-converts to the chosen paid plan after 7 days unless cancelled"
 },
 "features": {
  "linux": true,
  "windows": false,
  "macos": false,
  "arm64": false,
  "gpu": false,
  "gpu_types": [],
  "snapshot": "fs",
  "pause_resume": true,
  "fork": true,
  "persistent_disk": true,
  "volumes": false,
  "auto_stop_idle": false,
  "max_session_h": null,
  "custom_image": false,
  "image_oci": false,
  "docker_inside": true,
  "nested_virt": true,
  "isolation": "bare-metal-vm",
  "root": true,
  "systemd": true,
  "browser": true,
  "desktop": true,
  "computer_use": true,
  "code_interpreter": false,
  "agent_harnesses": true,
  "ssh": true,
  "public_ipv4": false,
  "inbound_https": true,
  "custom_domain": null,
  "raw_tcp_inbound": true,
  "egress_allowlist": false,
  "static_egress_ip": false,
  "private_network": false,
  "self_host": false,
  "byoc": false,
  "open_source": false,
  "regions": [
   "eu"
  ],
  "soc2": false,
  "hipaa": false,
  "sso": false,
  "lang_python": true,
  "lang_node": true,
  "lang_go": true,
  "lang_rust": true,
  "lang_java": true,
  "gpu_desktop": false,
  "credential_injection": true,
  "egress_http_rules": false,
  "wake_on_request": false,
  "live_resize": false,
  "fork_running": true,
  "memory_snapshot_fork": false,
  "webhooks": true,
  "scheduled_wakeups": null,
  "audit_logs": false,
  "eu_data_residency": true,
  "zero_data_retention": true,
  "scoped_api_keys": true,
  "spend_limits": true,
  "mcp_server": false,
  "browser_control": true,
  "desktop_control": true,
  "anti_bot": true,
  "captcha_solving": false,
  "egress_ip_type": "datacenter",
  "ip_note": "Default datacenter IPs; a custom Chromium fork keeps X, LinkedIn and most sites working (owner-reported)",
  "snapshot_auto": true,
  "snapshot_on_demand": true,
  "harness_api": true,
  "ingress_rules": true,
  "guest_firewall": true,
  "secret_proxy": "any-http",
  "volume_attach": false,
  "volume_shared": false,
  "own_agent_api": false,
  "max_session_unlimited": true,
  "open_internet": true,
  "usage_api": true
 },
 "perf": {
  "cpu_runs_s": 26.69,
  "cold_start_ms": null,
  "burst_tti_ms": null,
  "dax_s": null
 },
 "perf_source": "StarSling hpc-sandbox-benchmarks, run 36498291449 (2026-09-29), Node.js V8 Web Tooling p50 at a 4 vCPU / 8 GB target",
 "knobs": [
  {
   "id": "ttl_tail",
   "label": "Idle time billed until TTL auto-stop (× session hours)",
   "kind": "slider",
   "min": 1,
   "max": 3,
   "step": 0.05,
   "default": 1,
   "unit": "×",
   "options": null,
   "effect": "hours_factor",
   "modes": [
    "on-demand"
   ],
   "why": "boat.dev has no idle auto-stop: a running sandbox bills the full size rate, busy or idle, until `boat stop` or its TTL expires. TTL counts from creation/resume (default 1 h; forks reset to 1 h), so a 20-min task left to the default TTL bills 3x. Default 1 = stopped when work ends; with --no-auto-stop the tail is unbounded (use always-on instead).",
   "source": "https://docs.boat.dev/billing.md"
  }
 ],
 "caveats": [
  "Battleships is made by boat.dev; boat.dev's numbers come from its public docs and are held to the same standard as every other provider.",
  "boat is not in the ComputeSDK benchmarks: cold_start_ms, burst_tti_ms, dax_s unknown.",
  "Plan fee is 100% usage credit but expires monthly (effective $20/month minimum); overage bought as $20 packs that never expire. Engine fee_is_credit=true models this; pack residue (<$20) carried to next month is not modelled.",
  "Trial plan (trial_only) is one-time 25 h (~$0.90 of default time; if metered in default-seconds, small would get 50 h), 2 concurrent, small/default, TTL <= 2 h; it cannot be extended with paid usage.",
  "No idle auto-stop: TTL counts from creation/resume (default 1 h; forks reset to 1 h). Idle-but-running bills full size rate; --no-auto-stop (paid only) runs until stopped. FAQ: \"Boat has no idle timer. The auto-stop TTL counts from creation or resume, never from last activity\" (https://docs.boat.dev/faq.md, 2026-09-28), so auto_stop_idle=false is correct.",
  "Organization seats multiply concurrency and start limits (one pooled budget); seat price unpublished (per_seat null).",
  "Egress included up to 2 TB per sandbox per month (egress_free_gib=2000 is per sandbox, engine treats as account-wide = conservative); price beyond 2 TB unpublished.",
  "Public IP is 'dedicated IPv6 or IPv4' - IPv4 not guaranteed (ipv4_available null) and it changes on resume; no charge either way.",
  "Snapshots: latest per sandbox free for life of sandbox (FAQ: \"Stopped sandboxes are free, and their snapshot is kept for the life of the sandbox.\" https://docs.boat.dev/faq.md), bounded by the size's data disk. Named snapshots: \"Each account and each organization has 10 free named snapshots. You can keep more. Each named snapshot after the first 10 costs $1.70 a month.\" (https://docs.boat.dev/snapshots/templates.md, 2026-10-13), no expiry. The charge is per snapshot, not per GiB, so snapshot_gib_month=0 holds and the per-snapshot fee beyond 10 is not modelled. Filesystem only (no memory), so resume = reboot.",
  "No extra-disk purchase: disk is fixed per size (12/50/125/251 GB), so disk needs can force upsizing. included_disk_gib=50 refers to default size.",
  "Homepage says 'dedicated 4 vCPU / 8 GB VM-time' while FAQ says 'Sandboxes have shared vCPUs'; treat vCPUs as shared.",
  "EU only (Germany, Finland, France); no US/Asia option; no region multiplier.",
  "Custom environments via named-snapshot templates and setup scripts, not Dockerfile/OCI images (custom_image=false).",
  "Out of balance without auto-pay: 24 h grace, then snapshot+stop. Upgrades prorated immediately; downgrade terms unpublished.",
  "Per-start minimum and whether boot/hydration time is billed are not documented (assumed 0).",
  "Performance: standard machines (AMD Ryzen 9 9950X, \"baremetal\" class) are the default. A temporary Hetzner fallback (older AMD, 8.88 vs 27.67 runs/s, no /dev/kvm) is used only when standard capacity runs out. Same price either way.",
  "Billing scope: running time only; stopped time is never counted and time past a refused stop is excluded (meter paused), per https://docs.boat.dev/billing.md (verified 2026-09-28).",
  "Start limits per plan (creates, forks and resumes all count): 12/min · 60/h · 200/day on $20, 30 · 210 · 840 on $100, 65 · 420 · 1,680 on $500, 90 · 600 · 2,400 on $2,000 (https://docs.boat.dev/pricing, 2026-09-28); multiplied by seats on an organization. Per-minute and per-day caps are enforced by the estimator; the hourly cap (max_starts_per_hour) is recorded but not yet enforced.",
  "Organization plan fee is per member (plan price x members). Whether the included machine time also scales x members is not stated (concurrency and start ceilings do). If an org subscription is cancelled, leftover packs still run but limits drop to one seat.",
  "Start limits can be lifted for committed accounts (sales); per-member caps (usage, concurrency) available to org owners.",
  "Prepaid balance ('funds') and auto-refill exist besides $20 packs: auto-pay charges the card 'in small automatic increments'. Grace-period overuse is carried as a shortfall and settled on the next payment.",
  "The AI credentials proxy (secret_proxy) is a paid option, off by default: $1 for each UTC day it is on plus $1 per 1,000 proxied requests, paid in Boat time (https://docs.boat.dev/ai-credentials.md#pricing). The estimator does not add this charge.",
  "Snapshot retention conflict: docs say the latest snapshot is kept for the life of the sandbox and named snapshots have no expiry, but the Terms of Service (https://boat.dev/terms) say snapshots are 'generally retained for a limited period, currently up to approximately 30 days'. Treat free indefinite retention of stopped sandboxes as documented but not contractual."
 ],
 "sources": [
  "https://docs.boat.dev/pricing",
  "https://docs.boat.dev/billing.md",
  "https://docs.boat.dev/faq.md",
  "https://docs.boat.dev/machines.md",
  "https://docs.boat.dev/snapshots.md",
  "https://docs.boat.dev/long-running-tasks.md",
  "https://docs.boat.dev/data-retention.md",
  "https://docs.boat.dev/llms-full.txt",
  "https://boat.dev",
  "https://github.com/AnicetNgrt/hpc-sandbox-benchmarks/blob/provider/ascii-box/docs/results/2026-08-24-cpu/leaderboard.md",
  "https://docs.boat.dev/ai-credentials.md",
  "https://docs.boat.dev/snapshots/templates.md"
 ],
 "fleet": {
  "default_max_instances": 2,
  "default_max_vcpu": null,
  "default_max_gpus": null,
  "raise": "self-serve",
  "raise_time_days": 0,
  "verification": "Trial eligibility restrictions; paid plan and payment method required for paid limits and disabling auto-stop. No universal ID/KYC requirement stated; terms reserve additional verification.",
  "tiers": "Trial 2; $20/month 100; $100/month 300; $500/month 1,000; $2,000/month 2,000. Plan payments become usage credit. Organization limits multiply by paid seats; above these limits contact provider.",
  "notes": "boat.dev: published plan upgrades take effect immediately (0 days refers only to ordinary paid upgrades, not custom approval). Creation/fork/resume caps also apply: $20 plan 12/min,60/hour,200/day; $100 30/min,210/hour,840/day; $500 65/min,420/hour,1,680/day; $2,000 90/min,600/hour,2,400/day. A 1,000-machine entitlement is not an instantaneous 1,000-start burst. Trial 25 free hours, max 2-hour TTL; xlarge allocated on request.",
  "sources": [
   "https://docs.boat.dev/pricing",
   "https://docs.boat.dev/billing.md",
   "https://docs.boat.dev/faq.md",
   "https://boat.dev/terms"
  ],
  "researched": "2026-09-28"
 },
 "audit_2026_09_29": {
  "applied": 7,
  "source": "checked against the provider's live pricing and docs pages",
  "reviewed": 1
 },
 "feature_evidence": {
  "snapshot_auto": {
   "value": true,
   "source": "https://docs.boat.dev/snapshots.md",
   "quote": "They are taken **every minute** while the sandbox is ready or idle, and a final one when it **stops**.",
   "note": "Automatic incremental filesystem snapshots every minute while running plus a final one on stop (manual stop, TTL auto-stop, balance cutoff); resume restores the latest. Disk only: 'Running processes, memory, open ports' are not captured, so resume = reboot (enabled systemd services restart). A stop is refused if the final snapshot fails. Can be turned off per account/sandbox ('snapshots off').",
   "checked": "2026-09-29"
  },
  "snapshot_on_demand": {
   "value": true,
   "source": "https://docs.boat.dev/api/reference/snapshots/save-named-snapshot.md",
   "quote": "Freeze a sandbox's current state under a name (`boat snapshot <id> <name>` in the CLI). Answers `202` immediately with the snapshot in `saving`; a running sandbox takes a fresh capture first, which can run minutes.",
   "note": "Named snapshots (templates) of running or stopped sandboxes, 10 free then $1.70 a month each with no cap, no expiry, shareable with another account by a share code; `boat new --from <name>` boots any number of new sandboxes from them; `boat fork` copies a sandbox's current filesystem into a new one. Filesystem only, no memory. The snapshots page also says 'You never take one by hand' about the rolling per-minute snapshots.",
   "checked": "2026-09-29"
  },
  "harness_api": {
   "value": true,
   "source": "https://docs.boat.dev/api/reference/agent/prompt-sandbox-agent.md",
   "quote": "Queue a natural-language work item for an agent harness (Codex, Claude Code, pi, OpenCode, or Prime Agent) inside the sandbox. Observe progress with `GET /sandboxes/{sandboxId}/events`.",
   "note": "POST /prompt + events stream, GET /conversations (list/resume), POST /steer (mid-turn follow-up), interrupt (all or one conversation), per-prompt harness/model switch with context carry-over; CLI `boat prompt`/`boat steer`/`boat conversations`; Python/TS SDKs. integrated-agents.md also lists Kimi Code: 'Claude Code, Codex, pi, OpenCode, Prime Agent, and Kimi Code'.",
   "checked": "2026-09-29"
  },
  "egress_allowlist": {
   "value": false,
   "source": "https://docs.boat.dev/integrations/eve.md",
   "quote": "Boat does not yet enforce Eve's fine-grained network policies. The backend accepts `\"allow-all\"` and throws `EveSandboxUnsupportedError` for stricter policies (`\"deny-all\"`, allow-lists, subnet rules), so you never get a false sense of isolation.",
   "note": "No provider-side egress policy anywhere in the docs; FAQ points to in-VM controls instead. Stated on the Eve integration page, not a platform-level 'not supported' statement, hence medium.",
   "checked": "2026-09-29"
  },
  "egress_http_rules": {
   "value": false,
   "source": "https://docs.boat.dev/integrations/eve.md",
   "quote": "Boat does not yet enforce Eve's fine-grained network policies.",
   "note": "No provider-side egress control of any kind, so no HTTP-level rules.",
   "checked": "2026-09-29"
  },
  "ingress_rules": {
   "value": true,
   "source": "https://docs.boat.dev/hosting.md",
   "quote": "A fresh `host <port>` URL is protected by default and includes `_token`.",
   "note": "HTTPS URLs only for ports you expose with `host <port>` (up to 50), token-gated by default or public. No IP allowlists/security groups. Raw access to the sandbox IP is opened by the user 'with `ufw`' inside the VM, i.e. a guest firewall, not a provider-side control.",
   "checked": "2026-09-29"
  },
  "guest_firewall": {
   "value": true,
   "source": "https://docs.boat.dev/faq.md",
   "quote": "Sandboxes are full VMs with sudo, so you can add any controls you need inside them (firewall rules, proxies, encryption).",
   "note": "Full VM with its own kernel and sudo; hosting.md also tells users to open raw ports 'yourself with `ufw`'.",
   "checked": "2026-09-29"
  },
  "secret_proxy": {
   "value": "any-http",
   "source": "https://docs.boat.dev/ai-credentials.md",
   "quote": "Without the proxy, a sandbox holds your real keys and sign-ins. Anyone with a shell in it can copy them. With the proxy on, the real keys never enter the sandbox.",
   "note": "AI credentials proxy, off by default and paid ($1 per UTC day it is on, plus $1 per 1,000 proxied requests). Covers Anthropic/OpenAI/OpenRouter/LLM Gateway/DeepSeek/Moonshot/Mistral keys, Claude/ChatGPT/Mistral Vibe sign-ins, and custom APIs: 'A custom API is a secret for any HTTPS API, such as Stripe or your own service', reached through `$<NAME>_BASE_URL`. Not proxied: AWS Bedrock and the Kimi Code sign-in (withheld while the proxy is on). Environment variables, the GitHub token and other secrets still enter the sandbox.",
   "checked": "2026-10-13"
  },
  "credential_injection": {
   "value": true,
   "source": "https://docs.boat.dev/ai-credentials.md",
   "quote": "Your sandboxes get the AI credentials of a **credential profile**: Claude and ChatGPT sign-ins, API keys, and custom APIs.",
   "note": "Credential profiles (per account or organization, chosen per environment) inject model keys, sign-ins and custom-API secrets as environment variables; a credential can hold several accounts and be switched to another account for every sandbox at once, running ones included. Environment variables and the GitHub token are injected too (environments.md).",
   "checked": "2026-10-13"
  },
  "volume_attach": {
   "value": false,
   "source": "https://docs.boat.dev/machines.md",
   "quote": "\"Disk\" is what your own files can grow to; the operating system and pre-installed tools sit outside it.",
   "note": "Disk is fixed per size (12/50/125/251 GB); no volume product, attach API or extra-disk purchase anywhere in docs/API reference. More disk = bigger size.",
   "checked": "2026-09-29"
  },
  "volume_shared": {
   "value": false,
   "source": "https://docs.boat.dev/machines.md",
   "quote": "\"Disk\" is what your own files can grow to; the operating system and pre-installed tools sit outside it.",
   "note": "No volumes or shared filesystem at all; sharing only by copy (fork, named snapshot, snapshot download).",
   "checked": "2026-09-29"
  },
  "captcha_solving": {
   "value": false,
   "source": "https://docs.boat.dev/machines.md",
   "quote": "Every sandbox is a Linux VM with a curated set of tools available from the moment you SSH in.",
   "note": "not offered: outside the product's scope. Boat.dev is a general-purpose Linux sandbox/VM with SSH, desktop and browser access; nothing in its docs, API reference, or integrations pages mentions CAPTCHA solving as a feature.",
   "checked": "2026-09-30"
  },
  "fork_running": {
   "value": true,
   "source": "https://docs.boat.dev/snapshots.md",
   "quote": "They are taken every minute while the sandbox is ready or idle, and a final one when it stops.",
   "note": "Fork requires only a completed snapshot, not a stopped sandbox: 'boat fork <id> ... Requires the source sandbox to have a completed snapshot. Forking copies the snapshotted filesystem into a new Sandbox ... The source sandbox is never modified' (https://docs.boat.dev/llms-full.txt, fork-sandbox / CLI reference). Since running sandboxes are auto-snapshotted every minute, a running sandbox always has a recent completed snapshot to fork from, and the source keeps running unaffected.",
   "checked": "2026-09-30"
  },
  "wake_on_request": {
   "value": false,
   "source": "https://docs.boat.dev/long-running-tasks.md",
   "quote": "Sandboxes have an auto-stop timer. ... Resuming a stopped sandbox restarts the timer.",
   "note": "No mechanism documented for a stopped/archived sandbox to wake automatically when an inbound request (e.g. a hosted HTTPS URL) arrives; every doc path to bring a stopped sandbox back is an explicit `boat resume` / POST /sandboxes/{id}/resume call. Hosting docs describe the proxy routing to a running sandbox but never mention auto-resuming an archived one on request.",
   "checked": "2026-09-30"
  },
  "own_agent_api": {
   "value": false,
   "source": "https://docs.boat.dev/api/reference/agent/prompt-sandbox-agent.md",
   "quote": "Queue a natural-language work item for an agent harness (Codex, Claude Code, pi, OpenCode, or Prime Agent) inside the sandbox.",
   "note": "not offered: outside the product's scope. Boat's `/prompt` (harness_api) drives third-party CODING harnesses (Claude Code, Codex, pi, OpenCode, Prime Intellect's Prime Agent, Kimi Code) inside the VM. There is no first-party Boat-branded browser/computer-use/research task agent product distinct from these installed coding harnesses.",
   "checked": "2026-09-30"
  },
  "static_egress_ip": {
   "value": false,
   "source": "https://docs.boat.dev/faq.md",
   "quote": "every sandbox has a dedicated IPv6 or IPv4, and egress is included up to 2 TB per sandbox per month",
   "note": "The dedicated IP is tied to the sandbox's current machine, not fixed for the sandbox's lifetime: per the card's own research the IP changes on resume (a resume/fork lands on a different underlying machine), so there is no fixed/static outbound IP across stop-start cycles.",
   "checked": "2026-09-30"
  },
  "max_session_h": {
   "value": "none",
   "source": "https://docs.boat.dev/long-running-tasks.md",
   "quote": "For work that should keep running until you stop it yourself, disable auto-stop when you create the sandbox or update an existing sandbox's TTL to `null`: boat new --no-auto-stop",
   "note": "Default auto-stop TTL is 1 hour from creation/resume, and a numeric TTL caps at 30 days (2592000s), but `--no-auto-stop` (paid accounts only; unavailable on the free trial, capped at 2h) removes the timer entirely so the sandbox runs until explicitly stopped, matching the field's 'none' definition.",
   "checked": "2026-09-30"
  },
  "memory_snapshot_fork": {
   "value": false,
   "source": "https://docs.boat.dev/sandbox-cli.md",
   "quote": "Resume behaves like a server reboot: systemd services you enabled start again automatically. Processes you ran by hand (dev servers, background jobs, tunnels, desktop sessions) do not survive; restart them, or make them a systemd service.",
   "note": "Same reboot semantics apply to fork (fork copies the filesystem snapshot, not running memory); snapshots/forks are filesystem-only, so no running process/memory state carries over.",
   "checked": "2026-09-30"
  },
  "custom_image": {
   "value": false,
   "source": "https://docs.boat.dev/integrations/harbor.md",
   "quote": "Boat runs a ready image; it doesn't build Docker images. ... The Dockerfile is read only for its final-stage WORKDIR; build steps (RUN / COPY / …) are not executed",
   "note": "Sandboxes start from Boat's own Ubuntu 24.04 base or from named snapshots (`boat snapshot save` / `boat new --from <name>`), never from a user-supplied image; install steps must run as commands after boot.",
   "checked": "2026-09-30"
  },
  "image_oci": {
   "value": false,
   "source": "https://docs.boat.dev/integrations/harbor.md",
   "quote": "Boat runs a ready image; it doesn't build Docker images. Some Harbor features don't map to Boat today and raise a clear error: network policies (no-network / allow-lists), Docker image builds / Compose, and GPUs / TPUs / Windows.",
   "note": "No way to start a machine from your own Docker/OCI image; Docker runs *inside* the sandbox (docker_inside=true) but the sandbox itself is always Boat's fixed Ubuntu 24.04 base.",
   "checked": "2026-09-30"
  },
  "auto_stop_idle": {
   "value": false,
   "source": "https://docs.boat.dev/llms-full.txt",
   "quote": "Boat has no idle timer. The auto-stop TTL counts from creation or resume, never from last activity, so run your own countdown and call `boat stop` a few seconds to a couple of minutes after the agent finishes.",
   "note": "Auto-stop is a fixed TTL from creation/resume/fork (default 1h, max 30d, or disabled with --no-auto-stop), not idle-detection; a busy sandbox is stopped exactly the same as an idle one at TTL expiry.",
   "checked": "2026-09-30"
  },
  "volumes": {
   "value": false,
   "source": "https://docs.boat.dev/machines.md",
   "quote": "\"Disk\" is what your own files can grow to; the operating system and pre-installed tools sit outside it.",
   "note": "Disk is a fixed per-size preset (12/50/125/251 GB baked into small/default/large/xlarge); no separate volume product, attach API, or extra-disk purchase exists anywhere in the docs or API reference.",
   "checked": "2026-09-30"
  },
  "mcp_server": {
   "value": false,
   "source": "https://docs.boat.dev/llms-full.txt",
   "quote": "The tools come from the Cua Driver, preinstalled on every sandbox and registered as an MCP server named `computer` for all six harnesses",
   "note": "The only MCP server involved is `computer` (Cua Driver desktop-control tools) *inside* the sandbox for coding harnesses to use; Boat does not ship an MCP server that lets an external client control Boat's own sandbox-management API (create/list/stop/etc.) – that surface is CLI/REST/SDK only.",
   "checked": "2026-09-30"
  },
  "gpu": {
   "value": false,
   "source": "https://docs.boat.dev/machines.md",
   "quote": "GPU | None. Graphics run on the CPU (the desktop and headless Chrome work)",
   "note": "Confirmed again in the Harbor integration page: \"Some Harbor features don't map to Boat today ... GPUs / TPUs / Windows.\"",
   "checked": "2026-09-30"
  },
  "windows": {
   "value": false,
   "source": "https://docs.boat.dev/integrations/harbor.md",
   "quote": "Some Harbor features don't map to Boat today and raise a clear error: network policies (no-network / allow-lists), Docker image builds / Compose, and GPUs / TPUs / Windows.",
   "note": "Also machines.md: every sandbox is Ubuntu 24.04 LTS, Linux 6.8, x86_64 – Linux-only, no Windows machine option.",
   "checked": "2026-09-30"
  },
  "macos": {
   "value": false,
   "source": "https://docs.boat.dev/machines.md",
   "quote": "OS | Ubuntu 24.04 LTS, Linux 6.8, x86_64",
   "note": "Product is a Linux VM sandbox platform; no macOS machine type is offered or mentioned anywhere in the docs. macOS is plainly outside what this product is.",
   "checked": "2026-09-30"
  },
  "arm64": {
   "value": false,
   "source": "https://docs.boat.dev/machines.md",
   "quote": "OS | Ubuntu 24.04 LTS, Linux 6.8, x86_64",
   "note": "Only x86_64 machines are documented (Ryzen 9 9950X standard hosts, older AMD Hetzner fallback); no ARM/aarch64 option anywhere in docs or API.",
   "checked": "2026-09-30"
  },
  "self_host": {
   "value": false,
   "source": "https://docs.boat.dev/llms-full.txt",
   "quote": "Your plan, environment, sandboxes and settings live on your account, not on the machine.",
   "note": "Boat is a hosted multi-tenant SaaS (account/plan/dashboard/billing model); no self-hosted/on-prem deployment option, binary, or Helm chart is documented anywhere.",
   "checked": "2026-09-30"
  },
  "byoc": {
   "value": false,
   "source": "https://docs.boat.dev/llms-full.txt",
   "quote": "In the EU: Germany, Finland, and France. Your data and snapshots stay there.",
   "note": "Only Boat-operated EU regions are offered as a fixed choice; there is no bring-your-own-cloud-account deployment mentioned in pricing, FAQ, or API docs.",
   "checked": "2026-09-30"
  },
  "open_source": {
   "value": false,
   "source": "https://docs.boat.dev/llms-full.txt",
   "quote": "boat is the user's own product.",
   "note": "No OSI-licensed core-product repository is published; the only open-source component mentioned is the third-party Cua Driver dependency (github.com/trycua/cua) used for computer-use tooling, not the Boat sandbox platform itself.",
   "checked": "2026-09-30"
  },
  "soc2": {
   "value": false,
   "source": "https://docs.boat.dev/llms-full.txt",
   "quote": "Do you have compliance certifications? Not yet. SOC 2 is in progress. Sandboxes are full VMs with sudo, so you can add any controls you need inside them (firewall rules, proxies, encryption).",
   "note": "SOC 2 explicitly not yet attested (in progress).",
   "checked": "2026-09-30"
  },
  "hipaa": {
   "value": false,
   "source": "https://docs.boat.dev/llms-full.txt",
   "quote": "Do you have compliance certifications? Not yet. SOC 2 is in progress.",
   "note": "No HIPAA eligibility or BAA is mentioned anywhere in the docs; the compliance FAQ names only SOC 2 (in progress) and nothing else.",
   "checked": "2026-09-30"
  },
  "sso": {
   "value": false,
   "source": "https://docs.boat.dev/account.md",
   "quote": "GitHub, Google and an emailed 6-digit code are three ways in, on both the CLI and the dashboard.",
   "note": "Only GitHub/Google OAuth and email-code login are documented; no SAML/OIDC enterprise SSO option is mentioned anywhere in the docs.",
   "checked": "2026-09-30"
  },
  "private_network": {
   "value": false,
   "source": "https://docs.boat.dev/llms-full.txt",
   "quote": "Boat does not yet enforce Eve's fine-grained network policies. The backend accepts \"allow-all\" and throws EveSandboxUnsupportedError for stricter policies (\"deny-all\", allow-lists, subnet rules)",
   "note": "No VPC/private-networking product exists; also confirmed by the Harbor integration note that \"network policies (no-network / allow-lists)\" are unsupported. Sandboxes only get a public IPv4/IPv6.",
   "checked": "2026-09-30"
  },
  "live_resize": {
   "value": false,
   "source": "https://docs.boat.dev/llms-full.txt",
   "quote": "Can I resize a sandbox? Yes. Pass `--type` to `resume` or `fork` to move a sandbox between `small`, `default`, and `large`.",
   "note": "Resizing only happens via `resume` (a stop/restart cycle) or `fork` (a new machine); a running sandbox's CPU/RAM cannot be changed in place without recreating/restarting it, so live_resize is correctly false.",
   "checked": "2026-09-30"
  },
  "public_ipv4": {
   "value": false,
   "source": "https://docs.boat.dev/api/reference/sandboxes/get-sandbox.md",
   "quote": "ip: ... Machine IPv6 or IPv4 address when assigned. sshEndpoint: ... Public IPv4 `host:port` that forwards to the sandbox SSH server. Set only when the machine has no public IPv4 of its own; null otherwise.",
   "note": "Not guaranteed per machine: docs (faq.md, machines.md) say every sandbox gets a dedicated IPv6 OR IPv4, and the API schema confirms a machine can have no public IPv4 of its own, in which case Boat instead exposes a shared IPv4:port SSH forwarder (sshEndpoint). So some machines are IPv6-only with no direct public IPv4.",
   "checked": "2026-09-30"
  },
  "usage_api": {
   "value": true,
   "source": "https://docs.boat.dev/api/reference/sandboxes/get-sandbox-usage.md",
   "quote": "Machine time one sandbox consumed, and what it costs, so you can bill your own users per sandbox. Same meter as `GET /limits`: billable seconds with the sandbox type's multiplier applied, paused past a refused stop, never counting time stopped.",
   "note": "granularity: per-sandbox; cost: yes",
   "confidence": "high",
   "checked": "2026-10-01"
  }
 },
 "locations": [
  {
   "country": "DE",
   "state": null,
   "city": null,
   "provider_region": "eu",
   "self_serve": true,
   "choosable": false
  },
  {
   "country": "FI",
   "state": null,
   "city": null,
   "provider_region": "eu",
   "self_serve": true,
   "choosable": false
  },
  {
   "country": "FR",
   "state": null,
   "city": null,
   "provider_region": "eu",
   "self_serve": true,
   "choosable": false
  }
 ],
 "locations_source": "https://docs.boat.dev/faq.md",
 "locations_quote": "In the EU: Germany, Finland, and France. Your data and snapshots stay there.",
 "locations_checked": "2026-10-01"
}