This tutorial gets you from a fresh checkout to one validated workflow and one submitted job using a checked-in OtterDesk blueprint.
By the end, you will have:
- validated a local blueprint bundle
- started the MirrorNeuron runtime
- submitted one workflow
- inspected job and run state
You need:
- macOS, Linux, or WSL2
- Python 3.11+
- Docker
- the
mnCLI on yourPATH
Elixir/Erlang are needed only when developing the BEAM runtime directly. If the CLI or local services are not ready yet, follow Installation.
From the workspace root:
mn blueprint validate otterdesk-blueprints/tax_form_ocr_capture_assistantExpected output includes:
valid
This checks the manifest, service declarations, model requirements, and input contract without submitting a runtime job.
mn runtime startExpected output includes:
MirrorNeuron services started
If your local command prints a different success line, verify with:
mn runtime health
mn node listExpected output includes a healthy runtime and either an empty local node list or one or more reachable runtime nodes.
mn blueprint run --folder otterdesk-blueprints/tax_form_ocr_capture_assistantExpected output includes:
Job submitted
The CLI may print live events, a job id, and a blueprint run id. Keep both ids for inspection commands.
mn job listExpected output includes either:
Job ID
or:
No jobs found
Check a single job:
mn job status <job_id>Expected output includes a status field such as running, completed,
failed, or cancelled.
Show recent blueprint runs:
mn blueprint monitorInspect logs and events for one run:
mn blueprint tail <run_id>
mn blueprint logs <run_id>
mn blueprint export <run_id> --format markdownMost run artifacts are written under:
$MN_HOME/runs/<run_id>/
List catalog blueprints:
mn blueprint listRun a catalog blueprint by id:
mn blueprint run portfolio_risk_review_assistantUse --update when you want to refresh the cached blueprint repository first:
mn blueprint run portfolio_risk_review_assistant --updateBefore running bigger or third-party workflows:
- Review
manifest.jsonandpayloads/. - Check whether a node uses HostLocal, DockerWorker, or OpenShell.
- Check
pass_envbefore secrets are exposed to workers. - Use mock, sample, or dry-run settings before external email, Slack, browser, or delivery adapters.
- Treat live messages, browser data, and model outputs as untrusted input.
Read Security Model before exposing a runtime to other users or machines.
Install the CLI or activate the project virtual environment. Then verify:
which mn
mn --helpThe runtime is not reachable.
mn runtime start
mn runtime health
mn node listInstall or inspect the required Docker Model Runner model:
mn model list
mn model doctor gemma4:e2b