Why this is the world's first AI Cloud OS
A precise definition of "AI Cloud OS", the six kernel-properties test, and a falsifiable claim of priority — written for engineers, not marketers
This page makes a precise claim and gives the receipts. If you came here from marketing copy and want to know whether the words mean anything, read in order — every property is testable, every comparison is verifiable against the linked alternative's public docs.
What "AI Cloud OS" actually means
An operating system is the software layer that mediates between user intent and shared compute — it owns the contract for how programs are invoked, how permissions are checked, how state is isolated, how failure is contained, and how everything is audited. The OS is the trusted boundary; user programs are extensions of it.
A traditional OS — Linux, Windows, macOS — does this for CPU, RAM, filesystem, network. User intent comes in as syscalls; the kernel mediates.
An AI Cloud OS does the same thing for a different input/output pair:
Input: natural-language intent from a human user Output: trusted, isolated, audited, recoverable distributed compute against shared data
It is not the same problem as scheduling threads on a CPU. It is the same role — owning the contract.
A platform deserves the label "AI Cloud OS" if and only if it implements the six classical kernel properties for this new I/O pair.
The six-property test
A kernel — by the definition every CS textbook agrees on — owns:
| # | Classical kernel job | The web-kernel's equivalent |
|---|---|---|
| 1 | System-call dispatch — translate user intent into a privileged operation | Intent classification — translate natural-language messages into typed handler dispatches with confidence, plan steps, and chain dependencies |
| 2 | Process / memory isolation — keep one program's state from leaking into another's | Per-(user, tenant, extension) isolation at the platform boundary, federally enforced — not a library convention |
| 3 | Permission check before side-effects — UID / capability / ACL gating | Federal authorization — RBAC scopes + tenant scope + confirmation policy + action-type rules checked before extension code runs |
| 4 | Standardised programming interface — POSIX, Win32 — one contract every program respects | Federal Extension Contract — manifest schema v3 + 11 ERROR-severity validators + typed ctx injection. Every extension respects it or doesn't ship |
| 5 | Asynchronous lifecycle management — scheduler, interrupts, deadline handling | Web-kernel-owned async lifecycle — short calls inline, long calls auto-promoted to detached tasks, heartbeats tracked, cancellations propagated, results auto-delivered to the chat surface |
| 6 | Kernel log / audit — kmsg, journald, dtrace at the trusted layer | Federal audit chokepoint — every action lands in the action ledger with retention class and tenant scope. Enforced at the boundary, not by author policy |
The claim is simple: a platform deserves the label "AI Cloud OS" iff it implements all six. Pick any one a platform misses and the analogy breaks down — it's a library, a SaaS product, or a UI wrapper. Not an OS.
What other platforms do NOT do
Each comparison below cites the alternative's own public documentation. You can verify in five minutes.
OpenAI function calling / "GPTs" / "Apps"
A tool-use protocol with a hosted-UI marketplace. What it has: schema for declaring function signatures the model can call; a Chat UI; a publishing flow.
Of the six properties: ½ — it gives you (1) intent-to-function-call dispatch via the model. It does not give you (2) cross-author tenant isolation enforced at the platform layer; (3) a permission model that gates side-effects before the function runs; (4) a publish-time validator gate; (5) an async lifecycle for ops longer than the chat-completion timeout; (6) an audit chokepoint accessible to the tool author. The tool author owns all of those themselves.
Anthropic Model Context Protocol (MCP)
A protocol, by Anthropic's own description. Defines how a model talks to a tool server over JSON-RPC. What it has: a wire format and a few reference servers.
Of the six properties: 1 — it standardises (4) the interface shape. It is silent on every other property by design — MCP is the wire, not the host. The host (Claude Desktop, Cursor, whatever) decides isolation, permissions, audit, lifecycle. MCP doesn't compete with an AI Cloud OS; it's a wire protocol an AI Cloud OS could use if the host wanted to.
LangChain / agent frameworks (LangGraph, AutoGen, CrewAI, …)
Python libraries that help you write an agent.
Of the six properties: 0 at the platform level — they're libraries. The author writes the orchestration. Nothing is enforced. There is no "platform" between two LangChain agents — they could be written by the same dev, against the same OS, with no isolation. Multi-tenant, multi-author safety is the author's problem.
Workflow engines (Temporal, Airflow, Step Functions)
Excellent at what they do — durable async, retries, schedules. But they don't speak natural language; the user has to author the workflow in code. They don't classify user intent. They don't claim to be an OS.
Of the six properties: 1 — they own (5) async lifecycle within a single tenant's workflow definitions. Everything else is out of scope.
"AI platforms" built on K8s (BentoML, Modal, etc.)
Container schedulers wrapped in an SDK. What they have: great runtime for inference workloads.
Of the six properties: 1 — they own (5) for the compute job. They don't translate user intent (1), don't own tenant isolation (2) beyond container boundaries, don't have a permission model over the user data they touch (3), don't enforce a federal contract on what every workload must satisfy (4), don't standardise audit (6). They are infrastructure; an AI Cloud OS uses infrastructure.
How Imperal Cloud's web-kernel scores
Six-for-six, every property documented, every claim verifiable from this docs site.
1. Intent classification → typed dispatch — verifiable
A natural-language message becomes a typed handler call with confidence + chain plan. The classifier emits action_plans[] with depends_on for dependency-ordered execution.
- Concept: Chain dispatch
- API:
@chat.function— typed Pydantic params, auto-detected schema - Federal:
I-CHAIN-READ-BEFORE-WRITE-DEPENDENCIES(chain executor applies Kahn's topological sort overdepends_onso reads precede dependent writes)
2. Per-user, per-tenant runtime isolation — verifiable
Every handler call is constructed with ctx.user.imperal_id + ctx.tenant_id + ctx.agency_id injected by the platform. Authors cannot fabricate or impersonate. Cross-tenant access returns 403 at the gateway boundary.
- Concept: Kernel context (ctx) — every injected field documented
- Federal:
I-USER-ROLE-AUTHORITATIVE,I-CACHE-USER-SCOPED,I-SECRETS-USER-SCOPED,I-LONGRUN-BG-USER-SCOPED,I-LONGRUN-CHAT-INJECT-USER-SCOPED— five examples of user-scoped enforcement at the boundary - Federal:
I-AS-USER-1—ctx.as_user()requires system context (ctx.user.imperal_id == "__system__"); arbitrary impersonation is structurally impossible
3. Permission check before side-effects — verifiable
Three independent gates fire before your extension's code runs:
- RBAC scopes — required scopes declared per
@chat.function; the kernel rejects without scope. - Tenant scope — the target resource's tenant must match the acting user's tenant.
- Action-type gate —
action_type="destructive"triggers an unconditional confirmation card;"write"triggers it when user has confirmations enabled. FederalI-CONFIRMATION-EXECUTES-WHAT-USER-SAWenforces byte-identical args on accept.
If any check fails, your handler is not invoked. The user-facing error carries an i18n template — not a stack trace — per I-MAGIC-UX-1.
4. Standardised programming interface — verifiable, gated at publish time
The Federal Extension Contract v4.x — manifest schema v3, 11 ERROR-severity validators (V14-V22 + V24 + V31), typed ctx with documented protocols (StoreProtocol, HTTPProtocol, AIProtocol, etc.). Every extension passes the gate or doesn't publish.
- Reference: Validators reference — every validator + what it catches + how to fix
- Reference: Manifest reference — every field in
imperal.json - Reference: Complete API surface — single-page exhaustive
- Federal: Federal contract — the runtime invariants table — over 100 named I-* invariants, each citing the enforcement site
5. Asynchronous lifecycle managed by the platform — verifiable
The author writes a coroutine. The web-kernel decides whether to run it inline (≤ 5 seconds), auto-promote to a detached task (longer), or run as a declarative background task with auto-delivery of the result back to chat. Heartbeats, cancellations, federal caps (180 s default, 1800 s opt-in) — all platform-managed.
- Concept: Long-running operations
- Recipe: Long-running AI calls — three patterns, copy-paste
- Federal:
I-LONGRUN-HTTP-CAP-180S·I-LONGRUN-BG-CORO-RETURNS-ACTIONRESULT·I-LONGRUN-BG-USER-SCOPED·I-LONGRUN-CHAT-INJECT-USER-SCOPED·I-LONGRUN-CHAT-INJECT-AUDIT-EVERY— five federal invariants for the async surface alone
6. Audit chokepoint not bypassable — verifiable
Every action lands in the federal action-ledger row with retention class and tenant scope. The chokepoint is in the gateway, not in the extension — author cannot opt out. Plaintext credentials, PII, and similar sensitive data are explicitly excluded from audit fields by separate federal invariants (I-SECRETS-NEVER-LOGGED, I-SECRETS-AUDIT-FOREVER).
- Concept: Federal invariants — the I-AUDIT-* family
- Federal:
I-AUDIT-CHOKEPOINT-1·I-LONGRUN-CHAT-INJECT-AUDIT-EVERY·I-SECRETS-AUDIT-FOREVER— every action class has its named audit invariant
Engineering receipts — what "federally enforced" actually means
Three concrete examples of the kind of guarantee the web-kernel makes — at the contract level, not at the documentation level.
Receipt 1 — typed dispatch from a Pydantic params model
You write this:
from imperal_sdk import ActionResult
from pydantic import BaseModel, Field
class CreateNoteParams(BaseModel):
title: str = Field(min_length=1, max_length=200)
body: str = Field(default="")
folder_id: str | None = None
@chat.function(
"create_note",
description="Create a new note in the user's notebook.",
action_type="write",
event="note.created",
effects=["create:note"],
)
async def create_note(ctx, params: CreateNoteParams) -> ActionResult:
note_id = await ctx.store.put("notes", {
"title": params.title, "body": params.body,
"folder_id": params.folder_id,
"owner": ctx.user.imperal_id,
})
return ActionResult.success(
summary=f"Note '{params.title}' created.",
data={"note_id": note_id},
)When a user types "Create a note titled 'Q3 plans' in my Work folder", the web-kernel:
- Classifies intent → picks
create_notewith confidence + extracts{title: "Q3 plans", folder_id: "<resolved>"}from the message. - Pydantic-validates against
CreateNoteParams. If anything is wrong, it retries with a structured prose hint to the LLM (federalI-PYDANTIC-RETRY-BUDGET— max 2 retries). - Checks RBAC scopes + tenant + confirmation policy.
- Constructs
ctxwith the user, tenant, store, audit, secrets, http clients. - Calls your handler.
- Renders the returned
ActionResultto chat. - Writes a
note.createdevent + an action-ledger row withretention_classandtenant_id.
You did not write any of 1, 2, 3, 4, 6, 7. You wrote the verb for step 5. Every other step is the kernel.
Receipt 2 — multi-step dispatch with typed pipe between extensions
User says "find my pending tasks and email them to my manager". The classifier doesn't emit two unrelated tool calls — it emits a plan with dependency edges:
{
"intent": "chain",
"action_plans": [
{
"step_id": "s1",
"app_id": "tasks",
"tool": "list_pending_tasks",
"args": "{}",
"depends_on": []
},
{
"step_id": "s2",
"app_id": "mail",
"tool": "send_email",
"args": "{\"to\": \"<manager_resolved>\", \"subject\": \"Pending tasks\", \"body\": \"<from_s1>\"}",
"depends_on": ["s1"]
}
]
}The web-kernel applies Kahn's topological sort over depends_on (federal I-CHAIN-READ-BEFORE-WRITE-DEPENDENCIES) so reads precede dependent writes. The result of s1 flows as typed prior_step_results into s2 (federal I-CHAIN-PRIOR-RESULTS-STRUCTURED). The mail extension never reads "from_s1" as a placeholder — it receives the verbatim ActionResult.data from the tasks step.
You did not write the chain orchestrator. You wrote list_pending_tasks and send_email as independent extensions, each in their own author repo. The kernel composed them at runtime.
Receipt 3 — federal validators block publish, not lint at deploy
imperal validate runs 11 ERROR-severity validators before publish. Each one catches a specific class of bug; failing any blocks the package from reaching the marketplace:
| ID | What it catches |
|---|---|
| V14 | Manifest schema v3 conformance |
| V15 | display_name empty, short, or equal to app_id |
| V16 | Icon path doesn't resolve |
| V17 | Pydantic params model is function-local instead of module-scope |
| V18 | Pydantic params model has unresolvable forward references |
| V19 | @chat.function description shorter than 10 chars or boilerplate |
| V20 | action_type outside {read, write, destructive} |
| V21 | icon.svg invalid (not XML, no viewBox, >100KB, embeds raster) |
| V22 | print() in handler (use ctx.log or structured returns) |
| V24 | AST-scan — handlers use ctx.http not ctx.skeleton.* outside @ext.skeleton |
| V31 | Extension(system=True) only for first-party Imperal authors |
Every one is verifiable: run imperal validate ./your_extension on a deliberately-broken extension and watch the gate fire. The gate is in the CLI, in the Developer Portal upload server, and in the runtime loader — three layers of the same contract. Defense in depth.
The architecture in one diagram
USER (natural language input)
│
▼
╔═══════════════════════════════════════════════════════════╗
║ AUTH GATEWAY ── syscall entry: identity, RBAC, audit ║
╚═══════════════════════════════════════════════════════════╝
│
▼
╔═══════════════════════════════════════════════════════════╗
║ WEB-KERNEL ║
║ ┌─────────────────────────────────────────────────────┐ ║
║ │ Intent classifier (= syscall dispatcher) │ ║
║ │ Federal authorization (= permission check) │ ║
║ │ Context construction (= process spawn + handle) │ ║
║ │ Async lifecycle (= scheduler + deadline) │ ║
║ │ Audit chokepoint (= kernel log, kmsg) │ ║
║ └─────────────────────────────────────────────────────┘ ║
╚═══════════════════════════════════════════════════════════╝
│
▼
YOUR EXTENSIONS (= userspace programs)
├─ @chat.function — system-call handlers
├─ @ext.skeleton — ambient-state probes
├─ @ext.panel — display-server surfaces
├─ @ext.schedule — cron daemons
├─ @ext.webhook — IPC inbound endpoints
└─ @ext.secret — credential store APIReplace the OS analogy column on the right with the actual classical Linux job and the mapping is precise. The web-kernel is the same role, played for a different I/O pair.
The priority claim — two iron-clad statements
There are two ways we are "first." One is by protocol (uncontestable). One is by definition (falsifiable but currently true).
First by protocol — ICNLI
Imperal Cloud is the first complete implementation of the ICNLI protocol — Infrastructure Contextual Natural Language Interface — the open standard we authored and published at icnli.org under CC BY-SA 4.0. ICNLI defines the canonical contract for mapping natural-language intent to context-aware infrastructure actions.
This is uncontestable. ICNLI is an open standard anyone can implement; we are the first who shipped a deployed multi-tenant cloud OS that implements it end-to-end. Future ICNLI implementations are welcome — competing on quality, not on the label.
First by definition — the six-property test
Imperal Cloud is the first deployed, multi-tenant, federally-contracted, natural-language-native compute platform that implements all six classical kernel properties.
To dispute it, someone has to point to prior art that simultaneously satisfies:
- (a) Translates natural-language user intent into typed handler dispatches and
- (b) Owns per-
(user, tenant, author)isolation as a platform-enforced contract — not an author convention and - (c) Gates every side-effect on RBAC + tenant + action-type rules before the handler runs and
- (d) Has a federal contract with ERROR-severity validators that block publish and
- (e) Owns the async lifecycle so authors write a coroutine and the platform handles long-running, heartbeats, and result delivery and
- (f) Enforces an audit chokepoint authors cannot bypass
We are not aware of one. Each of the alternatives in section 3 above implements one or two; none implements all six. AWS Bedrock AgentCore is the closest, missing (d). If you find a platform that satisfies all six, file an issue — we'll update.
Other "first AI OS" claims — acknowledged
Several vendors have used the phrase "world's first AI Operating System" or similar — BlackSwan ELEMENT (2020), WarmWind OS (2025), Orbitype (2025), Amdocs aOS (2025), PubMatic AgenticOS (2025). We have read each, scored them against the six-property test, and found that none satisfies the full set. This is not a criticism of those products — they solve different problems for different audiences. We are not first to use the phrase; we are first to ship the platform that the phrase honestly describes.
The label "first" isn't poetry. It's a falsifiable engineering claim, and the receipts are this docs site.
What this means for you, the developer
You write the verb — one @chat.function handler. The OS runs everything else:
| You don't write | Because the web-kernel owns it |
|---|---|
| Auth / JWT / sessions | Gateway |
| Per-user isolation logic | ctx.user.imperal_id injected, federally bound |
| Permission checks | Federal authorization runs before your code |
| Audit logging | Chokepoint at the gateway, every action recorded |
| Retry / timeout / cancellation | Async lifecycle managed by the web-kernel |
| Long-running task plumbing | @chat.function(background=True) flag |
| Chain orchestration across extensions | Classifier emits typed action_plans[] |
| Schema enforcement on tool args | Pydantic feedback loop + retry |
| Multi-tenant safety | ctx.tenant_id injected; cross-tenant access 403 at boundary |
| LLM provider failover | Resolved at ctx.ai level; cascade in llm/provider.py |
| Federal contract drift detection | 11 validators gate publish |
Your app.py is shorter than what you would write just for auth on any other platform. And it works at scale, in multi-tenant production, on day one.
That's the substance. The marketing copy at the top of the landing page — "Welcome to Web 3.0.3" — is the joke. The page above is what's underneath.
See for yourself
Quick Start (5 minutes)
Ship a working extension end-to-end. The fastest path to seeing the OS-grade properties in action.
Why [Webbee](/en/reference/glossary/) is different
The two Webbee-specific firsts: cloud-modular + proactive by design.
What we built that nobody else has
20 platform-and-agent surfaces with zero precedent — the comprehensive list.
Federal contract
Every runtime invariant, every validator, every kernel-side guarantee — the table of contents for property (4).
Architecture
The full path from chat message to your handler, layer by layer.
Federal invariants
100+ named I-* runtime contracts — the substance behind 'federally enforced'.