Closed testing NorseOS is under test and log in is for invited testers. Want to test with us? Send a message →
norseOS
the-ultimate-vibecoding-machinerun unlimited terminal windows simultaneously

The intelligence above your agents

AI agent control system.

The organisation

Leadership to the floor.

Rank is in the material, not in boxes: the further from the work, the more machine and the more gold.

The kernel

obsidian · gold · predominantly machine

  • Odin, most of his head machined black alloy with an amber lens array

    Odin

    Orchestration

    Holds the goal and the limits, hands out the work, and never reports a cost it does not know as zero.

  • Hugin, a mechanical raven with an amber optical lens

    Hugin

    Planning

    Reads the request, does the research, and hands the builder a plan.

  • Munin, a mechanical raven with a pale blue optical lens

    Munin

    Memory

    Recalls what this workspace already knows — once, before the first turn.

  • Thor, half his face machined, a power core burning in his chest

    Thor

    Build

    The filesystem, the shell, the interpreter — and so, held at the gate.

  • Freya, an android sovereign in black alloy and gold

    FreyaComing

    Create

    Making the words, the images and the assets a run needs.

Under the kernel

the work itself

  • WorkspacesOne control plane, many workspaces. Keys hashed at rest, shown once.
  • DispatchA goal becomes cards. Each card carries the budget ceiling down with it.
  • ScoutAgents read public web pages through a guarded door: text only, private addresses refused.
  • SettlerAn isolated container per assignment, stopped and retired once the work is answered.
  • RunnerRuns on a machine you control and connects out. No port is opened on your side.
  • SkaldMemory and skills, so the next run starts where the last one stopped.
  • WatchThe scheduler. Wakes the recurring missions on time, whether or not anyone is looking.

The room

This is what you actually get.

One request, one room. The agents hand the work to each other with an @-mention, each in its own isolated terminal, and anything only you can do comes back to you as a single card.

Valhalla's room view while agents work: a request reading 'Lag en mikrobedrift', Sjef's plan handing work to the Planlegger and Bygg agents, two owner cards marked Gjort, a progress strip at step two of four, a daily routine, and the memory panel
A room at work. Sjef has made the plan and handed it on; Planlegger is working and Bygg waits for a free terminal. The bar above shows the jobs running, agent time against its cap, and what is left of the mandate.
The same room when it is done: all three agent tasks finished, the progress strip at Lansert, and an 'Åpne appen' banner with the launched app's address
The same room, finished. Bygg has built the app and asked for a launch; the room shows the address and the private repository it came from.

Screens from Valhalla, in Norwegian, rendered with sample data from the product's own browser tests — the address shown is an example. Launching is in beta; see Status.

One mission, end to end

Watch the whole court work.

Odin opens the run and splits it, Hugin does the work, Munin reviews it on a different provider. Then Thor asks to write a file — and stops. Nothing past that point happens until you decide it does.

Illustration: a scripted replay of a governed run, not a recording. The real room is further up.

run_7f3c9a12 · ws_valhalla Idle
Budget ceiling0%

$0.0000 / $2.00

verify — not run yet

III

Nothing crosses the bridge unseen.

The agent asks. You answer.

In a governed run, anything write-shaped is held, shown to you in full, and waits. In a room you decide once, up front: the mandate sets how long the agents may work, how many terminals they may open and how many times they may launch.

run_7f3c9a12 · seq 14 Awaiting approval
// the model asked for this, verbatim { "tool": "fs_write", "path": "deploy/render.yaml", "bytes": 1184, "workspace": "ws_valhalla" }

Why it stopped: fs_write is write-shaped, and write-shaped calls are held by policy.

What runs if you approve: exactly this call, once, then the loop continues.

ApproveApprove and rememberDeny

IV

What is carved cannot be uncarved.

Every event carries the hash of the one before it. Change a row months later and every hash after it stops matching.

SEQ 11

tool_call

a41f9c…

SEQ 12

policy_hold

7d20b8…

SEQ 13

approval

0e6fa3…

SEQ 14

tool_result

c519d7…

SEQ 15

tool_result

mismatch

SEQ 16

run_end

unverifiable

GET /runs/{id}/verify — intact

{ "ok": true, "first_broken_seq": null }

GET /runs/{id}/verify — after a row was edited

{ "ok": false, "first_broken_seq": 15 }

V

He is wired into the hall.

The orchestrator holds the goal, opens the runs and keeps the ledger — and never touches your filesystem itself. The power to act is delegated. The power to approve stays with you: per call, or once, as a mandate with limits.

Status

What works today, and what does not yet.

NorseOS is in closed testing. Here is each part, marked plainly.

Liveused in production Betabuilt, tested and deployed; not yet proven end to end on real accounts Comingnot available yet
  • LiveRooms with five agentsSjef, Planlegger, Bygg, Kontroll and Minne, each in its own isolated terminal on your Claude Code subscription. In use in production on our own runner.
  • LiveAudit hash chainEvery event carries the hash of the one before it, and any run can be verified. Edit a row and the check names the first broken one.
  • LiveEmergency stopRagnarok blocks all new work in the workspace and lists what is still running. Only the owner lifts it.
  • BetaCodex on your ChatGPT subscriptionIn the image and wired to the credential broker. Real calls through the proxy are not yet proven. Rooms run on Claude Code today.
  • BetaAutopilot mandate with limitsYou decide up front: how many days (1–30), how many terminals, whether the agents may launch and how often. Revoke at any time.
  • BetaLaunch to a private GitHub repo and RenderThe builder asks; the mandate approves. A credential scan, a new private repository and a free Render service, each step recorded. Not yet proven end to end.
  • BetaKontroll checksA separate agent, Kontroll, reviews the build and the launched app. A test gate that holds a launch when tests fail, and a check that the launched address answers, are written and not yet released.
  • BetaRoutinesSay it in plain words — “every morning at 8, check the inbox” — and the room keeps it. Each time fires once.
  • BetaMemory“Remember that …” goes straight to what every agent is told. “Learn from the room” proposes facts you accept or reject.
  • BetaLinear syncIssues become cards and cards push their state back. Built and deployed; not yet connected to a live Linear workspace.
  • BetaLocal modelsOllama and LM Studio on your own machine, reached through your runner. Not yet proven against a real model server.
  • Beta10 terminals in parallelThe grid holds ten. Today's runner fits four at once; ten needs the second runner, which is planned.
  • BetaCompany sign-in (OIDC) and SCIMSingle sign-on per tenant and user provisioning. Built and tested; not yet used with a real identity provider.
  • ComingDesktop appBuilt and tested on Windows, macOS and Linux. The installers are not code-signed yet, so we do not hand them out.
  • ComingFreya — CreateWords, images and assets for a run. Named, not built.

Checked against the code on 18 October 2026.

Valhalla

One mission. An entire realm.

Open a workspace, point it at your models, and watch the first run write its own record. The key is shown once.

By joining you agree to the Terms and Privacy Policy. We use your address only to answer you about access.

We are testing. Log in is for invited testers while it runs. Leave your address and we will write to you when the next group goes in.