{
 "features_resolved": {
  "snapshot_any": false,
  "snapshot_mem": false,
  "fork": false,
  "pause_resume": true,
  "persistent_disk": false,
  "whole_disk": false,
  "persist_scope": null,
  "volumes": false,
  "auto_stop_idle": false,
  "long_sessions": true,
  "custom_image": true,
  "image_snapshot": false,
  "image_oci": true,
  "vm_isolation": false,
  "docker_inside": false,
  "nested_virt": false,
  "root": null,
  "systemd": null,
  "browser": false,
  "desktop": false,
  "computer_use": false,
  "code_interpreter": null,
  "browser_control": null,
  "desktop_control": null,
  "browser_and_desktop": false,
  "anti_bot": false,
  "captcha_solving": false,
  "residential_ip": false,
  "agent_harnesses": false,
  "ssh": true,
  "public_ipv4": true,
  "inbound_https": true,
  "custom_domain": null,
  "raw_tcp_inbound": null,
  "egress_allowlist": false,
  "open_internet": null,
  "static_egress_ip": false,
  "private_network": null,
  "self_host": true,
  "byoc": true,
  "open_source": true,
  "soc2": null,
  "hipaa": null,
  "sso": true,
  "gpu": true,
  "arm64": false,
  "windows": false,
  "macos": false,
  "lang_python": true,
  "lang_node": false,
  "lang_go": null,
  "lang_rust": null,
  "lang_java": null,
  "gpu_desktop": null,
  "credential_injection": true,
  "egress_http_rules": false,
  "wake_on_request": true,
  "live_resize": false,
  "fork_running": false,
  "memory_snapshot_fork": false,
  "webhooks": null,
  "scheduled_wakeups": null,
  "audit_logs": true,
  "eu_data_residency": true,
  "zero_data_retention": null,
  "scoped_api_keys": null,
  "spend_limits": null,
  "mcp_server": true,
  "usage_api": false,
  "snapshot_auto": false,
  "snapshot_on_demand": false,
  "harness_api": false,
  "own_agent_api": false,
  "fast_boot": null,
  "strong_isolation": false,
  "ingress_rules": true,
  "guest_firewall": false,
  "secret_proxy": false,
  "secret_proxy_any": false,
  "volume_attach": false,
  "volume_shared": false,
  "sidecar": null,
  "fuse": null,
  "kernel_features": null,
  "burst": null
 },
 "company": {
  "id": "trainy",
  "checked": "2026-09-30",
  "company": "Trainy",
  "ownership": {
   "value": "independent",
   "parent": null,
   "source": "https://www.ycombinator.com/companies/trainy",
   "quote": "Infrastructure for managing GPU clusters for training/serving. Founded in 2023 by Andrew Aikawa and Roanak Baviskar, Trainy has 3 employees based in San Francisco."
  },
  "stage": {
   "value": "seed",
   "source": "https://www.google.com/search?q=%22Trainy%22+seed+funding+GPU",
   "quote": "Trainy raised $500K in a seed funding round in September 2023 backed by Y Combinator to build infrastructure for managing and optimizing GPU clusters.",
   "confidence": "low",
   "note": "No primary-source (press release, TechCrunch, Crunchbase profile page itself) confirmation was found for a specific round beyond the YC batch investment; a Google AI-overview summary states a $500K seed in Sept 2023 from Y Combinator, consistent with the standard YC batch deal, but this is a secondary/aggregated claim, not a company or investor statement."
  },
  "accelerators": [
   {
    "name": "Y Combinator",
    "batch": "Summer 2023",
    "source": "https://www.ycombinator.com/companies/trainy",
    "quote": "batch\":\"S23\",\"batch_name\":\"Summer 2023\"",
    "confidence": "high",
    "via": "research"
   }
  ],
  "total_funding_usd": {
   "value": 500000,
   "status": "estimated",
   "basis": "Google AI-overview summary (aggregated from web sources) citing a $500K seed round in September 2023 backed by Y Combinator; no company press release or primary filing found confirming an exact total.",
   "source": "https://www.google.com/search?q=%22Trainy%22+seed+funding+GPU",
   "quote": "Trainy raised $500K in a seed funding round in September 2023 backed by Y Combinator to build infrastructure for managing and optimizing GPU clusters."
  },
  "last_round": {
   "type": "seed",
   "amount_usd": 500000,
   "date": "2023-09",
   "leads": [
    "Y Combinator"
   ],
   "status": "estimated",
   "source": "https://www.google.com/search?q=%22Trainy%22+seed+funding+GPU",
   "quote": "Trainy raised $500K in a seed funding round in September 2023 backed by Y Combinator to build infrastructure for managing and optimizing GPU clusters."
  },
  "investors": [
   "Y Combinator"
  ],
  "portfolio_listings": [],
  "revenue": {
   "value": null,
   "status": "unknown"
  },
  "employees": {
   "value": 3,
   "source": "https://www.ycombinator.com/companies/trainy"
  },
  "note": "YC directory hint confirmed: Trainy (batch Summer 2023 / S23, status Active) on the YC company page lists website https://trainy.ai/, matching this card's domain exactly (trainy.ai). Founders Andrew Aikawa and Roanak Baviskar; company builds Konduktor (GPU cluster scheduling/orchestration, BYOC on customer cloud) and Pluto (experiment tracking, hosted SaaS add-on). No funding round beyond the YC batch investment, and no revenue/ARR figure, could be confirmed from primary sources in the time available; figures here are from a Google AI-overview aggregation and should be treated as low-confidence until corroborated by a primary source (company blog, TechCrunch, Crunchbase)."
 },
 "id": "trainy",
 "name": "Trainy",
 "url": "https://trainy.ai/",
 "category": "paas",
 "isolation": "container",
 "modes": [
  {
   "key": "native",
   "label": "Native product; see regime notes",
   "flags": [
    "alt"
   ],
   "os": [
    "linux"
   ],
   "regions": null,
   "gpu_only": false,
   "features": {},
   "pricing": "resource",
   "vcpu_h": null,
   "ram_gib_h": null,
   "cpu_basis": "alloc",
   "ram_basis": "alloc",
   "active_floor": 0,
   "ram_per_vcpu": [
    null,
    null
   ],
   "ram_fixed_per_vcpu": null,
   "vcpu_options": null,
   "min_vcpu": null,
   "max_vcpu": null,
   "max_ram_gib": null,
   "sizes": null,
   "pool_tiers": null,
   "requires_always_on": false,
   "always_on_month_per_instance": null,
   "commit_note": null,
   "min_billed_seconds": null,
   "granularity_s": null,
   "start_fee": null,
   "boot_overhead_s": null,
   "multiplier": 1,
   "windows_vcpu_h": null,
   "gpu": null,
   "note": "Konduktor is BYOC: custom platform fee plus per-node pricing, with the customer's cloud hardware bill separate. A legacy/current docs statement says on-demand users are billed compute only while a workload is ACTIVE, but no rates are published and the former /on-demand page now returns 404."
  }
 ],
 "storage": {
  "included_disk_gib": null,
  "disk_gib_month": null,
  "disk_billed_when_stopped": null,
  "snapshot_gib_month": null,
  "paused_ram_billed": null
 },
 "network": {
  "egress_free_gib": null,
  "egress_gib": null,
  "ipv4_month": null,
  "ipv4_available": null
 },
 "plans": [
  {
   "name": "Konduktor Custom",
   "fee": null,
   "flags": [
    "sales"
   ],
   "fee_is_credit": false,
   "included_usd": null,
   "per_seat": null,
   "concurrency": null,
   "max_session_h": null,
   "max_vcpu": null,
   "max_ram_gib": null,
   "sizes_allowed": null,
   "note": ""
  },
  {
   "name": "Pluto Free Hosted",
   "fee": 0,
   "flags": [
    "addon"
   ],
   "fee_is_credit": false,
   "included_usd": 0,
   "per_seat": 0,
   "concurrency": null,
   "max_session_h": null,
   "note": "Experiment tracking only: up to 2 seats and 2 GB storage; not GPU compute."
  },
  {
   "name": "Pluto Pro Hosted",
   "fee": 250,
   "flags": [
    "addon"
   ],
   "fee_is_credit": false,
   "included_usd": 0,
   "per_seat": 250,
   "concurrency": null,
   "max_session_h": null,
   "note": "Experiment tracking only. $250 per seat/month, up to 10 seats; 10B data points/month, 10 TB storage, unlimited tracked hours and run forking."
  },
  {
   "name": "Pluto Enterprise",
   "fee": null,
   "flags": [
    "sales",
    "addon"
   ],
   "fee_is_credit": false,
   "included_usd": null,
   "per_seat": null,
   "concurrency": null,
   "max_session_h": null,
   "note": "Experiment tracking only: more than 10 seats, custom storage/data limits, SSO, audit logs, single-tenant or on-prem, support/SLA."
  }
 ],
 "free": {
  "monthly_credit": null,
  "one_time_credit": null
 },
 "features": {
  "linux": null,
  "windows": false,
  "macos": false,
  "arm64": false,
  "gpu": true,
  "snapshot": "none",
  "pause_resume": true,
  "fork": false,
  "persistent_disk": false,
  "volumes": null,
  "auto_stop_idle": false,
  "max_session_h": null,
  "custom_image": true,
  "docker_inside": false,
  "nested_virt": false,
  "root": null,
  "systemd": null,
  "browser": false,
  "desktop": false,
  "computer_use": false,
  "code_interpreter": null,
  "agent_harnesses": false,
  "ssh": true,
  "public_ipv4": true,
  "inbound_https": true,
  "custom_domain": null,
  "raw_tcp_inbound": null,
  "egress_allowlist": false,
  "static_egress_ip": false,
  "private_network": null,
  "self_host": true,
  "byoc": true,
  "open_source": true,
  "soc2": null,
  "hipaa": null,
  "sso": true,
  "gpu_types": [
   "H100"
  ],
  "regions": null,
  "lang_python": true,
  "lang_node": false,
  "lang_go": null,
  "lang_rust": null,
  "lang_java": null,
  "gpu_desktop": null,
  "credential_injection": true,
  "egress_http_rules": false,
  "wake_on_request": true,
  "live_resize": false,
  "fork_running": false,
  "memory_snapshot_fork": false,
  "webhooks": null,
  "scheduled_wakeups": null,
  "audit_logs": true,
  "eu_data_residency": true,
  "zero_data_retention": null,
  "scoped_api_keys": null,
  "spend_limits": null,
  "mcp_server": true,
  "snapshot_auto": false,
  "secret_proxy": false,
  "isolation": "container",
  "image_oci": true,
  "anti_bot": false,
  "captcha_solving": false,
  "egress_ip_type": "datacenter",
  "snapshot_on_demand": false,
  "volume_attach": false,
  "volume_shared": false,
  "harness_api": false,
  "own_agent_api": false,
  "guest_firewall": false,
  "max_session_unlimited": true,
  "ingress_rules": true,
  "usage_api": false
 },
 "perf": {
  "cpu_runs_s": null,
  "cold_start_ms": null,
  "burst_tti_ms": null,
  "dax_s": null
 },
 "caveats": [
  "Pricing FAQ explicitly says Trainy is not a cloud provider. Platform plus per-node quote on own cloud; Pluto $250/seat/month is experiment tracking, NOT GPU rental. YC startup discount 50% Konduktor 6mo (or free under 5 nodes); hardware remains own-cloud cost.",
  "Inventory exclusion: BYOC GPU management, explicitly not cloud provider. Card contains no numeric compute modes and no selectable price plan.",
  "Null values mean unknown, not free/unlimited. No model-token cost, tax or unverified ancillary charge included.",
  "Native browser/device/task/credit prices with unknown CPU/RAM are deliberately non-priceable. Check regime before interpreting any partial resource estimate.",
  "Discount: current-batch YC companies get 50% off Konduktor for 6 months (or free under 5 nodes), one year of free Pluto hosted Pro, and one free performance-tuning consultation; hardware/cloud spend is not included."
 ],
 "sources": [
  "https://www.ycombinator.com/companies/trainy",
  "https://www.trainy.ai",
  "https://www.trainy.ai/pricing",
  "https://www.trainy.ai/llms.txt"
 ],
 "fleet": {
  "default_max_instances": null,
  "default_max_vcpu": null,
  "default_max_gpus": null,
  "raise": "sales",
  "raise_time_days": null,
  "verification": null,
  "tiers": null,
  "notes": "Konduktor BYOC uses custom cluster-sized quote; on-demand GPU page routes to demo/team contact. Customer-cloud quotas or negotiated capacity determine fleet, not a public signup allowance.",
  "sources": [
   "https://www.trainy.ai/pricing",
   "https://docs.trainy.ai/lifecycle.md"
  ],
  "researched": "2026-09-28"
 },
 "audit_2026_09_29": {
  "applied": 19,
  "source": "checked against the provider's live pricing and docs pages",
  "reviewed": 3
 },
 "feature_evidence": {
  "snapshot_auto": {
   "value": false,
   "source": "https://docs.trainy.ai/runtime-file-sync",
   "quote": "When a Konduktor job runs, its containers execute in **ephemeral pods**. Local storage (`/tmp`, `/root`, or your `workdir`) is ephemeral and wiped when the pod restarts or completes.",
   "note": "Batch-job scheduler on Kubernetes; state survives only via your own writes to S3/GCS (docs show app-level training-checkpoint resume using RESTART_ATTEMPT).",
   "checked": "2026-09-29"
  },
  "secret_proxy": {
   "value": false,
   "source": "https://docs.trainy.ai/runtime-file-sync",
   "quote": "Konduktor mounts your cloud credentials into the job containers and places them in `~/.aws` (S3) or `~/.config/gcloud` (GS) at startup.",
   "note": "Secrets are Kubernetes secrets exposed as env vars (konduktor secret create --kind env), mounted files (/konduktor/default-secrets) or git-ssh keys (GIT_SSH_COMMAND with key path); no injecting proxy.",
   "checked": "2026-09-29"
  },
  "isolation": {
   "value": "container",
   "source": "https://docs.trainy.ai/runtime-file-sync.md",
   "quote": "When a Konduktor job runs, its containers execute in **ephemeral pods**.",
   "note": "Konduktor schedules ordinary Kubernetes pods/containers on the customer's own cluster; shared-kernel container isolation, not a VM/microVM.",
   "checked": "2026-09-30"
  },
  "image_oci": {
   "value": true,
   "source": "https://docs.trainy.ai/quickstart.md",
   "quote": "Containers must be Debian/Ubuntu based and use `apt` as a package manager ... permit login/run as `root`",
   "note": "Jobs specify a container image_id; user-supplied Docker/OCI images are run.",
   "checked": "2026-09-30"
  },
  "docker_inside": {
   "value": false,
   "source": "https://docs.trainy.ai/quickstart.md",
   "quote": "resources: cpus: 1 ... image_id: ubuntu",
   "note": "not offered: no documentation of running Docker/nested containers inside a Konduktor job pod; jobs are plain unprivileged Kubernetes pods.",
   "checked": "2026-09-30"
  },
  "nested_virt": {
   "value": false,
   "source": "https://docs.trainy.ai/quickstart.md",
   "quote": "Containers must be Debian/Ubuntu based and use `apt` as a package manager",
   "note": "not offered: no mention of /dev/kvm or nested virtualization; standard Kubernetes GPU pods.",
   "checked": "2026-09-30"
  },
  "desktop": {
   "value": false,
   "source": "https://www.trainy.ai/llms.txt",
   "quote": "Trainy builds GPU infrastructure for foundation-model and research teams. It ships two products: Konduktor (GPU cluster scheduling and orchestration on Kubernetes) and Pluto (experiment tracking).",
   "note": "not offered: outside the product's scope",
   "checked": "2026-09-30"
  },
  "browser": {
   "value": false,
   "source": "https://www.trainy.ai/llms.txt",
   "quote": "Trainy builds GPU infrastructure for foundation-model and research teams.",
   "note": "not offered: outside the product's scope",
   "checked": "2026-09-30"
  },
  "computer_use": {
   "value": false,
   "source": "https://www.trainy.ai/llms.txt",
   "quote": "Trainy builds GPU infrastructure for foundation-model and research teams.",
   "note": "not offered: outside the product's scope",
   "checked": "2026-09-30"
  },
  "anti_bot": {
   "value": false,
   "source": "https://www.trainy.ai/llms.txt",
   "quote": "Trainy builds GPU infrastructure for foundation-model and research teams.",
   "note": "not offered: outside the product's scope (GPU batch training/orchestration platform, no browser product)",
   "checked": "2026-09-30"
  },
  "captcha_solving": {
   "value": false,
   "source": "https://www.trainy.ai/llms.txt",
   "quote": "Trainy builds GPU infrastructure for foundation-model and research teams.",
   "note": "not offered: outside the product's scope",
   "checked": "2026-09-30"
  },
  "egress_ip_type": {
   "value": "datacenter",
   "source": "https://www.trainy.ai/pricing",
   "quote": "Deploys in your VPC: AWS, GCP, Azure, bare-metal, and more...",
   "note": "derived: BYOC deploys into the customer's own cloud VPC/datacenter network, so egress is whatever datacenter IP type that cloud account provides.",
   "checked": "2026-09-30"
  },
  "snapshot": {
   "value": "none",
   "source": "https://docs.trainy.ai/runtime-file-sync.md",
   "quote": "Local storage (`/tmp`, `/root`, or your `workdir`) is ephemeral and wiped when the pod restarts or completes. Therefore, we recommend uploading to cloud storage any data that must survive restarts.",
   "note": "No provider-managed disk/memory snapshot; only app-level checkpoint files the user writes to S3/GCS.",
   "checked": "2026-09-30"
  },
  "snapshot_on_demand": {
   "value": false,
   "source": "https://docs.trainy.ai/runtime-file-sync.md",
   "quote": "Local storage (`/tmp`, `/root`, or your `workdir`) is ephemeral and wiped when the pod restarts or completes.",
   "note": "not offered: no snapshot/checkpoint API; only manual object-storage uploads.",
   "checked": "2026-09-30"
  },
  "fork": {
   "value": false,
   "source": "https://www.trainy.ai/llms.txt",
   "quote": "Konduktor (GPU cluster scheduling and orchestration on Kubernetes). Batch jobs, Kueue priority queueing with preemption, automatic restarts onto healthy nodes...",
   "note": "not offered: outside the product's scope (batch job scheduler, not machine cloning); Pluto's 'run forking' is experiment-tracking lineage, not a compute-machine clone.",
   "checked": "2026-09-30"
  },
  "fork_running": {
   "value": false,
   "source": "https://www.trainy.ai/llms.txt",
   "quote": "Konduktor (GPU cluster scheduling and orchestration on Kubernetes).",
   "note": "not offered: outside the product's scope",
   "checked": "2026-09-30"
  },
  "memory_snapshot_fork": {
   "value": false,
   "source": "https://www.trainy.ai/llms.txt",
   "quote": "Konduktor (GPU cluster scheduling and orchestration on Kubernetes).",
   "note": "not offered: outside the product's scope",
   "checked": "2026-09-30"
  },
  "pause_resume": {
   "value": true,
   "source": "https://docs.trainy.ai/lifecycle.md",
   "quote": "SUSPENDED (by user): The workload was manually stopped by a user using `konduktor stop <JOB_ID>`. It can be unsuspended with `konduktor start <JOB_ID>`.",
   "note": "Jobs can be manually stopped and restarted via CLI.",
   "checked": "2026-09-30"
  },
  "persistent_disk": {
   "value": false,
   "source": "https://docs.trainy.ai/runtime-file-sync",
   "quote": "When a Konduktor job runs, its containers execute in ephemeral pods. Local storage (/tmp, /root, or your workdir) is ephemeral and wiped when the pod restarts or completes. Therefore, we recommend uploading to cloud storage any data that must survive restarts or be analyzed later.",
   "note": "Not a contradiction: Konduktor's 'suspend/start' (konduktor stop / konduktor start) is a scheduler-queue pause (job goes to SUSPENDED and is later rescheduled onto a fresh pod), not a filesystem-preserving pause/resume. Docs explicitly recommend app-level checkpointing to S3/GCS (RESTART_ATTEMPT env var) because local disk does not survive a restart. No PersistentVolume/PVC or disk snapshot feature is documented anywhere in the docs (checked llms-full.txt for 'persistent volume', 'PVC', 'snapshot' with no relevant hits). Card's persistent_disk=false is correct as-is.",
   "checked": "2026-09-30"
  },
  "volume_attach": {
   "value": false,
   "source": "https://docs.trainy.ai/runtime-file-sync.md",
   "quote": "Runtime sync works through direct writes to your configured object store (S3, GCS, etc.) rather than automatic file syncing.",
   "note": "No documented persistent-volume attach feature; only object-storage bucket sync is offered.",
   "checked": "2026-09-30"
  },
  "volume_shared": {
   "value": false,
   "source": "https://docs.trainy.ai/setup.md",
   "quote": "by default each machine auto-creates its own `konduktor-filemounts-<username>-<user_hash>` bucket. Admins can instead point every engineer at a single shared bucket",
   "note": "Sharing is via an object-storage bucket configured by users/admins, not a shared block volume mounted live by multiple running machines.",
   "checked": "2026-09-30"
  },
  "auto_stop_idle": {
   "value": false,
   "source": "https://www.trainy.ai/llms.txt",
   "quote": "Konduktor (GPU cluster scheduling and orchestration on Kubernetes). Batch jobs, Kueue priority queueing with preemption, automatic restarts onto healthy nodes...",
   "note": "not offered: outside the product's scope; it is a batch job scheduler, not a persistent idle sandbox with auto-stop.",
   "checked": "2026-09-30"
  },
  "live_resize": {
   "value": false,
   "source": "https://docs.trainy.ai/quickstart.md",
   "quote": "resources: cpus: 1 # number of cpu cores memory: 10 # memory request in GiB (int)",
   "note": "not offered: no documented API to change a running job's CPU/RAM without recreating it.",
   "checked": "2026-09-30"
  },
  "agent_harnesses": {
   "value": false,
   "source": "https://docs.trainy.ai/quickstart.md",
   "quote": "AI-Assisted Workflows: Install the [Konduktor Skills](https://github.com/Trainy-ai/konduktor-skills) plugin to get AI help drafting task YAMLs, writing Python SDK code, and constructing CLI commands directly in your editor.",
   "note": "Konduktor Skills is an editor/CLI-authoring aid for the user's own coding assistant, not a preinstalled coding-agent template running inside the sandbox.",
   "checked": "2026-09-30"
  },
  "harness_api": {
   "value": false,
   "source": "https://www.trainy.ai/llms.txt",
   "quote": "Konduktor and Pluto both expose MCP servers. Through Konduktor, an AI agent can launch workloads, read job and cluster logs, read GPU and system metrics, and restart jobs.",
   "note": "MCP server controls the orchestration platform (launch/restart jobs, read logs/metrics); it is not an API that drives a coding harness running inside the sandbox.",
   "checked": "2026-09-30"
  },
  "own_agent_api": {
   "value": false,
   "source": "https://www.trainy.ai/llms.txt",
   "quote": "Trainy builds GPU infrastructure for foundation-model and research teams.",
   "note": "not offered: outside the product's scope (no browser/computer-use/research task agent product)",
   "checked": "2026-09-30"
  },
  "lang_python": {
   "value": true,
   "source": "https://docs.trainy.ai/python-api.md",
   "quote": "Work with Konduktor programmatically from Python.",
   "note": "First-party Python SDK/CLI (konduktor-nightly on PyPI) is the primary interface.",
   "checked": "2026-09-30"
  },
  "lang_node": {
   "value": false,
   "source": "https://docs.trainy.ai/python-api.md",
   "quote": "Work with Konduktor programmatically from Python.",
   "note": "not offered: only a Python SDK/CLI is documented; no Node.js SDK or out-of-the-box Node runtime is mentioned.",
   "checked": "2026-09-30"
  },
  "egress_allowlist": {
   "value": false,
   "source": "https://www.trainy.ai/pricing",
   "quote": "Deploys in your VPC: AWS, GCP, Azure, bare-metal, and more...",
   "note": "derived: BYOC deploys into the customer's own VPC, so outbound network restrictions would be configured via the customer's own cloud security groups, not a Trainy-specific feature.",
   "checked": "2026-09-30"
  },
  "egress_http_rules": {
   "value": false,
   "source": "https://www.trainy.ai/pricing",
   "quote": "Deploys in your VPC: AWS, GCP, Azure, bare-metal, and more...",
   "note": "not offered: no HTTP method/path-level egress rules documented; BYOC leaves network policy to the customer's own cloud.",
   "checked": "2026-09-30"
  },
  "guest_firewall": {
   "value": false,
   "source": "https://docs.trainy.ai/runtime-file-sync.md",
   "quote": "When a Konduktor job runs, its containers execute in **ephemeral pods**.",
   "note": "derived: isolation is shared-kernel Kubernetes containers, not a full VM/microVM with root=true, so in-guest nftables/iptables control is not assumed to be available.",
   "checked": "2026-09-30"
  },
  "static_egress_ip": {
   "value": false,
   "source": "https://www.trainy.ai/pricing",
   "quote": "Deploys in your VPC: AWS, GCP, Azure, bare-metal, and more...",
   "note": "not offered: no fixed outbound IP feature documented; BYOC networking follows the customer's own cloud setup.",
   "checked": "2026-09-30"
  },
  "windows": {
   "value": false,
   "source": "https://docs.trainy.ai/quickstart.md",
   "quote": "Containers must be Debian/Ubuntu based and use `apt` as a package manager",
   "note": "not offered: outside the product's scope (Linux container images only)",
   "checked": "2026-09-30"
  },
  "macos": {
   "value": false,
   "source": "https://docs.trainy.ai/quickstart.md",
   "quote": "Containers must be Debian/Ubuntu based and use `apt` as a package manager",
   "note": "not offered: outside the product's scope (Linux GPU container platform)",
   "checked": "2026-09-30"
  },
  "byoc": {
   "value": true,
   "source": "https://www.trainy.ai/pricing",
   "quote": "Konduktor deploys into your own cloud (BYOC) with a platform fee plus per-node pricing that scales sub-linearly as your cluster grows.",
   "note": null,
   "checked": "2026-09-30"
  },
  "eu_data_residency": {
   "value": true,
   "source": "https://www.trainy.ai/pricing",
   "quote": "Deploys in your VPC: AWS, GCP, Azure, bare-metal, and more...",
   "note": "derived: BYOC deploys into whatever cloud account/region the customer chooses, so EU residency is achievable if the customer's own AWS/GCP/Azure account/region is in the EU.",
   "checked": "2026-09-30"
  },
  "max_session_h": {
   "value": "none",
   "source": "https://docs.trainy.ai/quickstart.md",
   "quote": "labels: kueue.x-k8s.io/queue-name: user-queue maxRunDurationSeconds: \"3200\"",
   "note": "Max run duration is a user-set Kueue label per job, not a fixed platform-imposed session cap; jobs otherwise run until completion/failure.",
   "checked": "2026-09-30"
  },
  "public_ipv4": {
   "value": true,
   "source": "https://docs.trainy.ai/deployments.md",
   "quote": "`trainy.us` endpoints use `https` while direct IP endpoints use `http`. ... Optionally, use `--direct` to display direct IP endpoints instead of `trainy.us` endpoints.",
   "note": "Konduktor Serve exposes deployments via a direct IP endpoint (in addition to a trainy.us hostname); Konduktor deploys into the customer's own VPC (AWS/GCP/Azure/bare-metal), so the underlying IP is provisioned from that cloud, but Trainy's own tooling surfaces a direct/public IP for reaching services.",
   "checked": "2026-09-30"
  },
  "ingress_rules": {
   "value": true,
   "source": "https://docs.trainy.ai/deployments.md",
   "quote": "Konduktor Serve is a powerful feature that simplifies deploying and managing ML models and general applications on Kubernetes. ... Accessible at `<COMPANY>.trainy.us`",
   "note": "Konduktor routes serving traffic through per-company trainy.us hostnames (vs. raw direct IP), and interactive SSH access is gated behind Tailscale ACLs/authkeys (docs.trainy.ai/tailscale.md) rather than open ports, i.e. the platform provides auth/hostname-scoped and allowlist-based access control to exposed services rather than raw open ports; underlying security-group rules are otherwise inherited from the customer's own cloud (BYOC).",
   "checked": "2026-09-30"
  },
  "arm64": {
   "value": false,
   "source": "https://www.trainy.ai/pricing",
   "quote": "Konduktor GPU cluster scheduling & management ... Deploys in your VPC: AWS, GCP, Azure, bare-metal, and more...",
   "note": "not offered: outside the product's scope. Konduktor is an NVIDIA GPU (H100, etc.) training/inference cluster scheduler for x86 Kubernetes nodes; no ARM64 CPU or GPU nodes are mentioned anywhere in docs, pricing, or blog content.",
   "checked": "2026-09-30"
  },
  "usage_api": {
   "value": false,
   "source": "https://www.trainy.ai/pricing",
   "quote": "Konduktor is BYOC: custom platform fee plus per-node pricing, with the customer's cloud hardware bill separate. ... on-demand users are billed compute only while a workload is ACTIVE, but no rates are published and the former /on-demand page now returns 404.",
   "note": "granularity: none; cost: no; Trainy is not a cloud provider; it schedules jobs on customer's own AWS/GCP/Azure/bare-metal infrastructure. Billable compute usage (GPU-seconds, vCPU-seconds) is reported by the underlying cloud provider, not by Trainy. MCP server and CLI can read job logs and system metrics, but no billing/usage breakdown API is documented. Platform fee is via sales-custom quote.",
   "confidence": "medium",
   "checked": "2026-10-01"
  }
 },
 "locations": [],
 "locations_source": "https://www.trainy.ai/pricing",
 "locations_quote": "Deploys in your VPC: AWS, GCP, Azure, bare-metal, and more...",
 "locations_checked": "2026-10-01"
}