Mjolnir

Nothing in your cluster. Nothing proxied. Nothing polled.

Everything you run,
live, in one window.

Kubernetes, cloud access, containers, object stores, machines over SSH, databases and Kafka. Read straight from this machine, as you, with the credentials you already have. Nothing on screen is on a timer.

0.1.0 · Apple silicon, Intel and Linux · Start the 30 day trial, no card

The whole thing, in twenty-three seconds

Kubernetes

Every kind in the cluster, your CRDs included, watched rather than polled.

Cloud access

AWS, Azure and Google identities, with sessions that mint and rotate the credentials you already use.

Containers

Docker, OrbStack, Colima, Rancher Desktop and rootless Podman, on their own sockets.

Object stores

S3, MinIO, RustFS, R2 and Ceph RGW, in a cluster or outside one.

Machines

A host over SSH, with nothing installed at the far end.

Databases

Postgres, MySQL, MongoDB, Redis, ClickHouse and Neo4j, read and write.

Kafka

Topics, consumer groups, and lag per partition drawn over time.

Not a screenshot

Every named thing has a right-click menu. Here is one.

A recording can show a menu opening. It cannot show you that the menu is on the row you care about, that it reaches the keyboard, or that its verbs are grouped by what you came to do. So this one is real, and it is yours to open.

Interactive mock This is a working mock of the resource list, holding six invented pods. It reads nothing, contacts nothing and changes nothing: the line under it says what the real app would do instead of pretending to have done it. Every other picture and recording on this page is the real interface.

Kubernetes · Pod 6 pods 4 ready 2 failing
api-7d9f4b8c6-x2mqz payments 2/2 Running
ledger-6c4d8f9b7-nn4tz payments 1/1 Running
web-5c8b9d774-lk4pn checkout 1/1 Running
worker-6bb4f9c2d-zt8rw ingest 0/1 CrashLoopBackOff OOMKilled (exit 137), 14 restarts in 40 minutes
worker-6bb4f9c2d-qm91x ingest 0/1 Unschedulable None of the 3 nodes had 4Gi of memory free
coredns-6f5c9b8d7-v4hxs kube-system 1/1 Running

Nothing has been asked for yet. Whatever you pick, this line will say what the real app does with it.

The real menu carries more: a node gets cordon, drain and taints, a deployment gets scale, pause and undo, and anything with an image gets a Trivy or Wiz scan. Every one of them ends up in the same place, on the row, under the right mouse button.

Kubernetes

Start where it broke

Every kind in the cluster, watched rather than polled, with the cause ranked above the forty lines it caused.

Containers

The engine beside it

Docker, OrbStack, Colima, Rancher and rootless Podman on their own sockets, in the same window and the same dock.

Object stores

Open the bucket without leaving

S3, MinIO, RustFS, R2 and Ceph RGW, in a cluster or outside one.

Databases

And the data underneath

Postgres, MySQL, MongoDB, Redis, ClickHouse and Neo4j, read and write, through the cluster or straight at a host.

The modules

Kubernetes is one module, not the app.

Not a Kubernetes client with a few things bolted to the side. Every module is a peer, every one of them is in the price, and each says what is on this machine right now rather than what it saw last time.

Kubernetes

The cause, above the symptom

Every kind in the cluster including your CRDs, watched rather than polled. Fifteen rules over events, pod statuses, node conditions and recent changes rank what started it above the forty lines it caused, and a rolling thirty days of history answers what changed just before.

Logs that pause when you scroll, with the previous container while this one crash loops

Shells, port forwards and YAML editing with the diff shown before anything is written

Helm, Argo CD, RBAC, cost per workload, rollouts, drift and time travel

Cloud access

Credentials that refresh themselves

AWS, Azure and Google identities, with sessions that mint and rotate the credentials the rest of your terminal is already using. Selecting a cluster activates the session that authenticates it, so the loop of noticing a call failed, switching tools and coming back never starts.

AWS: IAM users with MFA, roles chained from any session, SAML federation and Identity Center

Azure: the CLI sign-in, service principals, workload and managed identity, and AKS without kubelogin

Google: gcloud accounts, service accounts, impersonation and workload identity, and GKE with no auth plugin

No cloud CLI is ever run, and nothing is installed: every sign-in is the documented OAuth exchange, through your proxy

Containers

The engine on this machine, with nothing on your PATH

Docker Desktop, OrbStack, Colima, Rancher Desktop and rootless Podman, found on their own sockets and read over the same live wire as everything else. Logs and a shell go in the dock, beside the cluster you were already reading.

Containers, images, volumes, networks, compose projects and registries

Build, pull, push and run, with the output where you are

The same list whether the engine is Docker or Podman, because both speak the same API

Object stores

Open the bucket without leaving

S3, MinIO, RustFS, SeaweedFS, Garage, Ceph RGW and anything else that speaks S3. A store running in your cluster is reached through the API server with no port bound on your machine, which is the part every other tool makes you do by hand.

Stores found from the pods that run them, with the keys read out of the Secret on request

Preview text, JSON, images, Parquet and logs in place; presigned links with the expiry you choose

An upload that survives the app closing and carries on from the part it reached

Machines

SSH is the only agent it needs

A host over SSH and no agent at the other end. Processes, services, logs, files, a shell, and its usage drawn over time, from the same window as everything else.

Processes and services with the usual controls, and journal or file logs tailed live

A file browser with upload and download, and a terminal that is a real terminal

CPU, memory, disk and network kept for thirty days, on your machine rather than theirs

Databases

A real client, not a viewer

Postgres, MySQL, MongoDB, Redis, ClickHouse and Neo4j, from a pod, a host you type, or AWS RDS with an IAM token minted from a cloud session. Insert, update, delete, DDL and transactions held open across statements.

An editable result grid that writes against the primary key

A statement that would touch a whole table asks once, and says how many rows

Redis keys by pattern, Mongo collections, ClickHouse parts, and a Neo4j graph you can walk

Kafka

See the lag before the alert does

Topics, partitions, consumer groups and their lag, from brokers in a pod, at a host, or in AWS MSK with SASL/IAM. Lag is drawn over time rather than sampled once, so a consumer that is falling behind looks different from one that is simply behind.

Peek at recent messages, with Avro and protobuf decoded through the schema registry

Produce a message when you mean to, with the key and headers you choose

Jump from a lagging group to the pods that make it up

Everything you run.

One window.

Nothing installed in your cluster.

How it reads

Polling is a defect. All of this is pushed.

Kill a pod in a terminal and it is out of the list before you have switched windows. Write a kubeconfig while Mjolnir is open and the cluster turns up on its own. No screen in this product has a refresh button, because not one of them has anything to catch up on.

< 1sfrom change to screen
0refresh buttons
30days of history, on your disk

The assistant

An assistant on your key, not our bill.

It is built in, and it answers through whichever provider you name: Anthropic, OpenAI, Azure, Google, Groq, Mistral, OpenRouter, xAI, or a model on your own hardware through Ollama. We are not reselling you tokens, and your question does not travel through us on its way to a model somebody else chose.

It reads, it does not guess

It calls the same tools the window calls, so what it tells you came out of your own infrastructure a second ago: the reason, the exit code, the line in the log. Not what usually goes wrong with things like this.

Your key, straight to your provider

Paste a key, name an endpoint, and the request goes from this machine to that endpoint and nowhere else. Point it at a model on your own hardware and the whole conversation stays in the building.

It obeys the switch you chose

Whether it may change anything at all is yours to set. Turn read only on, for everything or for one cluster, and it is refused where your own click is refused: somebody who guarded production did not mean "unless a model asks nicely".

Right-click, ask

Every named thing in the app has a right-click menu, and every one of those menus ends with "Ask the assistant", already carrying what you clicked. Turn the MCP server on and the agent you already use reaches the same tools.

What leaves this machine

Your credentials never leave it

There is no cloud of ours between you and your infrastructure, because there is no cloud of ours. Mjolnir talks to *.mjolnir.sh for three named reasons and refuses every other address before the request is made. That is a rule in the code, not a promise on a page.

Nothing in your cluster

No agent, no operator, no CRD, no Helm chart, no sidecar. It calls the API server with the credentials already in your kubeconfig, exactly as kubectl does, so a read-only token stays a read-only token.

Nothing on this machine

No daemon, nothing in your login items, and nothing added to your PATH. Image scans use the Trivy you already have, with your own registry logins. Uninstalling is dragging it to the bin.

Nothing you did not see

Crash reports and anonymous counters are on, and off in one tap. Settings, Privacy shows the exact JSON waiting to be sent before any of it goes, and empties the queue when you turn a switch off.

Before you install it

Questions, answered straight

Does Mjolnir install anything in my cluster?

No. No agent, no operator, no pod, no CRD, no Helm chart, no sidecar, nothing to get approved and nothing to rip out later. It calls the API server with the credentials already in your kubeconfig, exactly as kubectl does, so a read-only token stays a read-only token.

Does it install anything on my machine?

No. There is no daemon and nothing in your login items, and Mjolnir puts nothing on your PATH. Helm, which renders charts, is inside the app. Image scanning uses the Trivy you already have, found on your PATH with your own registry logins, and Wiz can be added as a second scanner. Uninstalling is dragging it to the bin.

Where does my data go?

Nowhere. Your clusters, containers, object stores, databases and hosts are reached straight from your machine, as you. Mjolnir contacts mjolnir.sh for updates, licensing and telemetry you can switch off, and any address that is not under that apex is refused before the request is made.

Which platforms does it run on?

macOS on Apple silicon and Intel, and Linux as an AppImage or a deb. Windows is a build target rather than a rewrite, and it is not released yet.

What does it cost?

Thirty days of the whole product with no card, then $9 per person per month or $90 a year, on up to five machines. One price, every module, no tiers, and nothing behind a call with a salesperson.

Is the AI assistant any good, and whose model is it?

It is yours. You name the endpoint and paste your own key: Anthropic, OpenAI, Azure, Google, Groq, Mistral, OpenRouter, xAI, or a model on your own hardware through Ollama. The request goes from your machine straight to that provider, so no question of yours passes through us and we are not reselling you tokens. It is good because it is not guessing: it calls the same tools the app calls and reads your live state before it answers.

Can the assistant change things?

Only if you let it, and you decide. It is a setting, and read only mode is the guard above it: turn read only on, globally or for one cluster, and a write is refused at the same checkpoint that refuses your own click. Turn the MCP server on and an agent you already use reaches the same tools, under the same rule.

Is it open source?

No, and the difference is worth being exact about. Mjolnir is licensed under the Elastic License 2.0, which is source available rather than open source: the source is published at github.com/jn-aman/mjolnir, so you can read every line of what runs on your machine and build it yourself. A build from source asks for a licence key exactly as the download does, and your subscription covers it as one of your five machines. The licence does not allow removing or working around the licence key, offering Mjolnir to others as a hosted or managed service, or removing its notices. Everything this site says the app does is a claim you can go and check.

Thirty days of the whole thing. No card.

Not a sampler. Every module, every cluster, every kind, the assistant included, and a card only if you decide to keep it. A cut-down trial answers a question nobody asked.