Run Your First Local Workflow
Prepare, validate, launch, and inspect a model-backed local MirrorNeuron blueprint.
Run Your First Local Workflow
This tutorial takes a first-time developer from a running local runtime to a validated and submitted blueprint. It uses the checked-in medical de-identification blueprint because its configuration declares a local model requirement and review-only outputs; do not use real health documents for this tutorial.
What you will learn
- how to verify the runtime and its local model dependency;
- how blueprint validation prevents submission when a declared requirement is missing; and
- how to inspect the resulting job and run artifacts.
Before you begin
- Complete Installation.
- Start Docker and ensure Docker Model Runner is available.
- Run commands from the MirrorNeuron workspace root.
- Use only the checked-in sample configuration. Do not add private or regulated documents.
Step 1: Start and verify the runtime
mn runtime start
mn runtime healthContinue only when mn runtime health does not report a failed required component.
Step 2: Install and verify the required local model
The blueprint preflight resolves its default model to gemma4:e2b. Install it, then run its diagnostic:
mn model install gemma4:e2b
mn model doctor gemma4:e2bmn model doctor verifies that Docker Model Runner can use the model on this machine. If it reports a hardware-compatibility problem, stop here and choose a blueprint and model profile that match your available hardware.
Step 3: Validate the blueprint
Validation checks the bundle and declared requirements without submitting a job:
mn blueprint validate otterdesk-blueprints/medical_deid_record_intake_assistantVerification: the command must exit successfully before you continue. If it reports a missing model or service, resolve that requirement and repeat this step; do not submit the blueprint with --force merely to bypass preflight.
Step 4: Submit the workflow
mn blueprint run --folder otterdesk-blueprints/medical_deid_record_intake_assistantThe command prints a job ID and may print a run ID. Record both values: the job ID controls the runtime execution, while the run ID identifies blueprint artifacts.
Step 5: Verify and inspect the result
Replace <job_id> and <run_id> with the values from the launch command:
mn job status <job_id>
mn job monitor <job_id>
mn blueprint logs <run_id>A terminal job state is completed, failed, or cancelled. The blueprint writes run records under ~/.mn/runs/<run_id>/ by default. Inspect its artifacts before treating any output as usable: this blueprint produces a review packet, not an approval to release or share records.
What happened
The CLI validated the blueprint before submission, then the runtime created a job and scheduled its agents. Job inspection reads runtime state; blueprint log commands read the run-store records associated with the launch. The blueprint's runner, model configuration, inputs, and pass_env entries determine what it can access.
Clean up
Cancel an unfinished job before stopping local services:
mn job cancel <job_id>
mn runtime stopDo not delete ~/.mn/runs/<run_id>/ until you no longer need the event history and artifacts.
Next steps
- Examples to choose a blueprint for your workload and hardware.
- Core Concepts to understand jobs, runs, agents, and runtime nodes.
- Security Model before providing real data or secrets.