Opp repl cli tools
Use the opp_repl shell wrappers (opp_build_project, opp_run_simulations, opp_run_*_tests, opp_update_*_test_results) from scripts and CI pipelines instead of the IPython REPL. Load for non-interactive workflows — covers shared flags, project auto-detection from CWD, filtering, build modes, and exit codes.From its SKILL.md
npx -y skills add tabgab/opp_repl-skill --skill opp-repl-cli-toolsAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
7.2 KB, ~1.5k tokens by cl100k_base, as published. Nobody here has run it
Command-line tools (shell wrappers)
Every long-running opp_repl operation has a matching shell wrapper. Use them in scripts, Makefiles, CI jobs, and any context where starting IPython is overkill.
Upstream reference (bundled in the overview): https://github.com/omnetpp/opp_repl/blob/main/doc/overview.md
Tool inventory
| Binary | Purpose |
|---|---|
opp_repl | IPython REPL (see opp-repl-repl-usage) |
opp_build_project | Build a project (and its dependencies) |
opp_build_omnetpp | Build the OMNeT++ installation itself |
opp_clean_project | Clean a project's build output |
opp_clean_omnetpp | Clean the OMNeT++ build output |
opp_run_simulations | Run simulations (with filters, time limits) |
opp_run_all_tests | Run every test type sequentially |
opp_run_smoke_tests | Start-and-terminate checks |
opp_run_fingerprint_tests | Behavioral regression (event fingerprints) |
opp_run_statistical_tests | Scalar-result regression |
opp_run_speed_tests | CPU instruction-count regression |
opp_run_chart_tests | Analysis-chart image regression |
opp_run_module_image_tests | Module/network rendering regression |
opp_run_sanitizer_tests | AddressSanitizer / UBSan runs |
opp_run_feature_tests | Per-feature build + setup checks |
opp_run_release_tests | Comprehensive release-validation suite |
opp_update_fingerprint_test_results | Refresh fingerprint baseline |
opp_update_speed_test_results | Refresh speed baseline |
opp_update_statistical_test_results | Refresh scalar baseline |
opp_update_chart_test_results | Refresh chart-image baseline |
opp_capture_module_images | Render module images to a directory |
opp_update_module_image_test_results | Refresh module-image baseline |
opp_diff_charts | GUI to browse chart / module-image diffs (PyQt6) |
opp_mount / opp_unmount | Mount / unmount overlay filesystems |
opp_sandbox | Run a command under bubblewrap isolation (Linux) |
opp_repl_mcp_bridge | stdio↔Unix-socket bridge for MCP clients |
opp_repl_self_test | Verify the opp_repl install's dependencies |
The opp_run_*/opp_update_*/build/clean tools accept -h / --help
and share a common flag set; the utility tools above
(opp_diff_charts, opp_mount, opp_sandbox, opp_repl_mcp_bridge,
opp_repl_self_test) have their own options — run them with --help.
Project loading
-
No
--loadflag? -> every*.oppin the current working directory is auto-loaded. The typical pattern iscdinto the project and run:cd ~/workspace/inet && opp_run_simulations -p inet -t 1s -
One or more
--loadflags:opp_run_simulations --load ~/ws/omnetpp/omnetpp.opp \ --load ~/ws/inet/inet.opp \ -p inet -t 1s
Globs are accepted:
opp_run_simulations --load "~/workspace/**/*.opp" -p fifo
OMNeT++ project descriptors are always loaded before simulation projects so dependencies resolve automatically.
Common flags
| Flag | Meaning |
|---|---|
-p NAME | Default simulation project |
--load FILE_OR_GLOB | Load .opp descriptor (repeatable) |
-t DURATION | sim_time_limit (1s, 10min, ...) |
--filter REGEX | Full-string filter |
--working-directory-filter REGEX | Filter by working directory |
--ini-file-filter REGEX | Filter by INI filename |
--config-filter REGEX | Filter by [Config X] name |
--run-number-filter REGEX | Filter by run number |
--exclude-* variants | Same semantics, inverted |
-m MODE | release / debug only on the CLI (sanitize / coverage / profile are REPL-API-only) |
--no-build | Skip build step (use existing binary) |
--no-concurrent | Sequential execution |
--hosts H1,H2,... | SSH cluster hosts (requires cluster extra) |
See opp-repl-filtering for the complete filter vocabulary — the
include/exclude rules are identical to the REPL functions.
Exit codes
The wrappers exit 0 when the overall result is expected (all DONE for simulations, all PASS for tests) and non-zero otherwise. In CI pipelines, rely on the exit code rather than parsing stdout.
Examples
Run PureAloha1 once, short duration, no rebuild:
cd $__omnetpp_root_dir/samples/aloha
opp_run_simulations -c PureAloha1 -t 0.3s --no-build --no-concurrent
Smoke-test the whole fifo sample:
cd $__omnetpp_root_dir/samples/fifo
opp_run_smoke_tests
Fingerprint-test INET under examples/ethernet:
opp_run_fingerprint_tests --load ~/ws/inet/inet.opp -p inet \
--working-directory-filter examples/ethernet \
-t 10s
Run distributed on a 2-node cluster in debug mode:
opp_run_simulations -m debug -t 1s \
--filter PureAlohaExperiment \
--hosts node1.local,node2.local
Pitfalls
--no-buildwith a stale binary silently runs the old code. Prefer omitting the flag unless you are certain the binary is current.- The wrappers do NOT start an MCP server. If an AI agent needs
access, start the REPL with
opp_repl --mcp-socket(clients connect viaopp_repl_mcp_bridge) — seeopp-repl-mcp-server. -toverrides anysim-time-limitin the INI file — including longer limits that the config deliberately needed.
See also
opp-repl-repl-usage— equivalent interactive interface.opp-repl-running-simulations— full semantics of the run step.opp-repl-filtering— complete filter reference.- Each
opp-repl-*-testsskill — test-specific flags.
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.