Install MirrorNeuron Locally
Documentation for Install MirrorNeuron Locally.
Install MirrorNeuron Locally
This guide installs the dependencies needed to validate bundles, run local workflows, and execute the test suite.
Requirements
- macOS, Linux, or WSL2
git- Python 3.10+
- Docker (and the docker-model runtime plugin)
Docker Desktop includes the plugin on macOS and Windows. On Linux, install the runtime plugin:
sudo apt-get update
sudo apt-get install docker-model-pluginOptional:
- model provider keys for LLM blueprints
- two machines with SSH access for cluster and Redis HA smoke tests
Option 1: Install With The Deployment Script
Use the deployment script when you want a system-wide mn command.
curl -fsSL https://mirrorneuron.io/install.sh | bashExpected result:
mn installedVerify:
mn --helpExpected output includes:
MirrorNeuron CLIOption 2: Set Up From The Monorepo
From the workspace root:
python3 -m venv .venv
. .venv/bin/activate
python3 -m pip install -r mn-system-tests/requirements.txtExpected result:
Successfully installedThe system-test requirements install the local Python SDK and CLI in editable mode.
Step 1: Install Elixir And Erlang
On macOS with Homebrew:
brew install elixir
elixir --version
mix --versionExpected output includes:
Elixir
MixOn Linux, use your package manager or asdf and verify with the same commands.
Step 2: Fetch Core Dependencies
cd MirrorNeuron
mix deps.get
mix compileExpected output:
Generated mirror_neuron appIf dependencies are already compiled, Mix may print less output. A zero exit code is the success signal.
Step 3: Start Redis
The simplest local Redis path is Docker:
docker rm -f mirror-neuron-redis 2>/dev/null || true
docker run -d --name mirror-neuron-redis -p 6379:6379 redis:7
docker exec mirror-neuron-redis redis-cli pingExpected output:
PONGStep 4: Install OpenShell
curl -LsSf https://raw.githubusercontent.com/NVIDIA/OpenShell/main/install.sh | sh
~/.local/bin/openshell --versionExpected output includes:
openshellIf openshell is not on your PATH:
export PATH="$HOME/.local/bin:$PATH"Or point MirrorNeuron directly to the binary:
export MN_OPENSHELL_BIN="$HOME/.local/bin/openshell"Step 5: Start The OpenShell Gateway
openshell gateway start
openshell statusExpected output includes:
Status: ConnectedIf OpenShell is not needed for your first pure-router workflow, you can skip this until you run executor blueprints.
Step 6: Configure Local Environment
Recommended local defaults:
export MN_REDIS_URL="redis://127.0.0.1:6379/0"
export MN_EXECUTOR_MAX_CONCURRENCY="4"
export MN_COOKIE="mirrorneuron"Optional for LLM-enabled blueprints:
export LITELLM_MODEL="gemini/gemini-2.5-flash-lite"
export LITELLM_API_KEY="..."Optional for local Docker Model Runner LLM blueprints:
docker model status
mn model install gemma4:e2b
mn model doctor gemma4:e2bgemma4:e2b resolves to Docker's ai/gemma4:E2B model and is the default MirrorNeuron local model for hosts with 8GB VRAM or 16GB unified memory.
Use a unique Redis namespace when running tests beside a developer runtime:
export MN_REDIS_NAMESPACE="mirror_neuron_dev_$(date +%s)"Step 7: Smoke Test
From the workspace root:
mn blueprint run message_routing_traceExpected output:
Blueprint 'message_routing_trace' validated. Running...Start services:
mn runtime start
mn blueprint run message_routing_traceExpected output:
Job submitted successfullyUninstall Local Services
Stop MirrorNeuron:
mn runtime stopStop local Redis:
docker rm -f mirror-neuron-redisIf installed through the deployment script, remove the install directory and executable:
rm -rf ~/.local/share/MirrorNeuron
rm -f ~/.local/bin/mnWarning: only remove these paths if they belong to the MirrorNeuron install you want to delete.
Security Notes
- Keep local Redis bound to trusted interfaces.
- Change
MN_COOKIEbefore using a real cluster. - Do not expose API or gRPC ports publicly without an authentication boundary.
- Review third-party bundles before running them.
Cluster Prerequisites
For two-box or larger clusters, continue with:
Common Install Issues
If setup does not work as expected: