One control plane for all your coding agents.
Mjolnir (mj) runs Claude Code, Codex, Kimi Code, Grok Build, Muse Code,
OpenCode, and DSH sessions side by side, on your laptop, in containers, over
SSH, or on EC2, and
keeps them running after you close the terminal. You can move a session to
another account, another harness, or a compatible target without starting over.
Bare SSH sessions stay on their original host.
By default Mjolnir sends classifier evidence to GLiDE (Fastino) through its hosted proxy. [jev] enabled = false in config.toml stops all classifier requests (details).
GitHub relevance sends every classification to the public proxy by default.
Local inference is opt-in: set local_inference = true under [github.watch]
in config.toml. When enabled, it downloads a pinned local model and native inference runtime
when the first GitHub item needs classification, verifies their checksums, and caches them in the
Mjolnir data directory. GLiDE handles classification while preparation runs or
local scoring is unavailable. Native license texts are kept beside the cached
runtime; no Python installation is required. GPU scoring uses DirectML on Windows,
CoreML on Apple-silicon macOS, or CUDA on Linux x64. Linux CUDA requires the NVIDIA
driver and CUDA 12/cuDNN 9 libraries installed on the host; otherwise scoring uses
CPU. Windows requires the Microsoft Visual C++ Redistributable (x64); missing
runtime DLLs produce a notice while GLiDE handles scoring. A GPU is retained only when its measured warm latency beats CPU.
Documentation · Quickstart · Releases
|
|
|
|
If you use one agent, in one terminal, on one machine, you don't need Mjolnir. It's for the point where that stops scaling: several subscriptions, several repositories, several machines, and work that should keep going when you walk away.
- Sessions that outlive your terminal. Each session runs beside a worker that owns its prompt queue and event journal. Detach, close the terminal, or restart the daemon; the agent keeps working and you reattach where you left off.
- Run anywhere. Use a local checkout or isolated clone, a Docker, Podman, or Apple container, any Linux host over SSH, or an EC2 instance provisioned from a launch template. Remote hosts need no resident daemon; Mjolnir uploads a worker on demand.
- Move work freely. Switch a session from your personal Codex account to your work account, from Codex to Claude Code, or from your workstation to EC2. Checkpoints are verified before anything is torn down.
- See every account's quota. Keep multiple named profiles per harness and watch remaining subscription quota and target capacity in one view.
- Shared project memory. Supported harnesses share synchronized project memory across sessions and targets. Muse currently cannot receive the injected memory tools; see the harness limitations.
- Adversarial review. Review committed work before push. Independent reviewers, on a different provider when one is available, check the work and report actionable findings.
- Multi-repo projects. Bundle several repositories so they provision, checkpoint, move, and restore together.
- Agent and editor integration. Drive sessions through
mj new,mj prompt,mj messageandmj wait, the HTTP API, ormj acpfor stdio ACP clients. - Terminal and web. A full terminal dashboard, plus a privacy-first web viewer you can reach from your phone over Tailscale. Both share the same live sessions.
On Linux or macOS (use WSL2 on Windows):
curl -fsSL https://raw.githubusercontent.com/BrokkAi/mjolnir/master/install.sh | bashOr with npm:
npm install -g @brokkai/mjolnirLinux releases need glibc 2.28 or newer on x86-64 or ARM64. See the installation guide for Cargo, source builds, and desktop dependencies.
Mjolnir can install a pinned coding harness when you sign in. On first launch, choose Set up a managed agent if no agent is found, or install and sign in to an agent you already have and choose Detect profiles. Managed setup creates the profile and opens sign-in without asking you to choose a home directory. Then, from a project directory:
mjOn first launch, Mjolnir automatically adds profiles for your installed agents,
and a bundle for the current GitHub repository; every later plain mj launch
adds profiles for agents installed since (mj go, mj workspaces, and the
relaunch after an upgrade do not). To stop using an agent, disable its profile
in Settings rather than removing it. A brief welcome shows what it found and any
prerequisite errors. Press Continue, then ctrl+b c to create a session: pick
an agent profile and where the session runs. Container images download in the
background while you use the dashboard. Configure SSH and AWS targets in
Settings (ctrl+b s).
mj setupreruns agent and repository discovery from the shell, preserving your existing configuration.mj gois a shortcut for later. Each folder remembers its setup, and runningmj goagain returns you to that folder's last conversation.mj simpleis the minimal tmux-friendly mode. It uses the default enabled agent, always starts locally with an isolated checkout, disables automatic review for that session, and uses direct Ctrl-key commands with no prefix, so Ctrl+B stays available to tmux.mj doctorchecks prerequisites and tells you how to fix anything missing.
The quickstart walks through a first session end to end.
- What is Mjolnir?: architecture, goals, and supported harnesses and runtimes.
- Profiles and harnesses: accounts, login, credentials, and skills.
- Targets and bundles: local, container, SSH, and EC2 environments, multi-repository projects, and shared memory.
- Sessions and durability: adoption, move, resume, checkpoints, and recovery.
- Terminal and web and desktop: controls and remote access.
- Code review, configuration, CLI reference, and security.
- HTTP API and ACP agent: automate managed sessions.
The documentation site source lives in docs/. Looking for the previous generation? See Mjolnir 1.x.
Mjolnir is free and open source, built by the engineers at
Brokk because we wanted to use it. It is licensed under
GPL-3.0-only.