Individual skill
multi-llm
Orchestrate plan reviews, task generation, implementation and code reviews across several LLM CLIs in parallel, or ask every model one free-text question about a plan. Use when the user says: review my plan, multi-llm, run a code review, generate tasks from a plan, implement this plan, ask the models about my plan.
plugins/beastlabai/multi-llm-plugin/skills/multi-llm/SKILL.md
Source commit d780783eba4ecc7c8b9429f95c9362df95f07c61
What was checked
- Matches the observed repository HEAD
- Yes
- Scanner rules are current
- Yes
- Repository scan complete
- No
- Skill scan complete
- No
- Observed behavior
- Network or broad shell
- Last checked
- Nov 4, 2026
These are observations at the recorded commit, not a guarantee of safety. Review the source before running it.
Install this skill
Choose an agent in your Stack or copy a command below. Commands fetch the pinned commit and copy only this skill directory. Existing destinations are refused. Copying a command does not install anything.
An install command is unavailable: current rules, complete repository and skill scans, an eligible behavior level and a permitted license are required.
Repository context
- Repository stars (not skill ratings)
- 1,532
- Repository last updated
- Nov 6, 2026
- License
- Apache-2.0
Observed agent integration: No specific integration evidence. Standard SKILL.md installation does not imply verified compatibility.
- ai-coding Repository topic
- awesome Repository topic
- awesome-list Repository topic
- codex Repository topic
- codex-plugins Repository topic
- openai Repository topic
- codex-skill Repository topic
- codex-skills Repository topic
- marketplace Repository topic
- codex-marketplace Repository topic
- engineering Derived category
Files and excerpt
File metadata and permitted, redacted excerpts come from the recorded scan. Source links are pinned to that commit.
Browse files
SKILL.mdcore · 4,105 bytesapply_code_fixes_orchestrator.pyruns · 59,929 bytesapply_commit_fixes_orchestrator.pyruns · 2,027 bytesapply_suggestions_orchestrator.pyruns · 15,042 bytesapply_task_suggestions_orchestrator.pyruns · 29,702 bytesask_orchestrator.pyruns · 119,166 bytesassets/icons/Anthropic.svgasset · 584 bytesassets/icons/Codex.svgasset · 1,360 bytesassets/icons/Copilot.svgasset · 1,546 bytesassets/icons/Cursor.svgasset · 793 bytesassets/icons/GoogleGemini.svgasset · 623 bytesassets/icons/Goose.svgasset · 3,318 bytesassets/icons/Kilocode.svgasset · 531 bytesassets/icons/MiniMax.pngasset · 1,525 bytesassets/icons/Mistral.svgasset · 717 bytesassets/icons/MoonshotAI.svgasset · 957 bytesassets/icons/Nvidia.svgasset · 2,468 bytesassets/icons/OhMyPi.svgasset · 434 bytesassets/icons/OpenAI.svgasset · 1,692 bytesassets/icons/Opencode.svgasset · 325 bytesassets/icons/Pi.svgasset · 440 bytesassets/icons/Qwen.svgasset · 1,790 bytesassets/icons/Zhipu.pngasset · 442 bytesassets/icons/xAI.svgasset · 343 bytesassets/omp/overlay.ymlasset · 2,429 bytescheck_workflow_prerequisites.pyruns · 77,149 bytescode_review_orchestrator.pyruns · 340,163 bytesdisplay_decisions.pyruns · 10,094 bytesfinalize_tracking.pyruns · 40,585 bytesfull_workflow_orchestrator.pyruns · 57,227 bytesgenerate_tasks_orchestrator.pyruns · 39,308 byteshosts/capabilities.yamlasset · 46,819 byteshosts/codex/plugin-skill.md.tmplasset · 2,831 byteshosts/codex/shim.md.tmplasset · 6,485 byteshosts/opencode/plugin-command.md.tmplasset · 2,278 byteshosts/opencode/shim.md.tmplasset · 6,379 byteshosts/render_capabilities.pyruns · 49,513 byteshosts/snippets/poll-loop.mddoc · 4,527 byteshosts/snippets/uv-preflight.mddoc · 2,300 byteshosts/uv-missing.txtdoc · 1,485 bytesimplement_orchestrator.pyruns · 152,286 bytesimprove_code_orchestrator.pyruns · 1,513 bytesimprove_commits_orchestrator.pyruns · 2,122 bytesimprove_plan_orchestrator.pyruns · 1,456 bytesinit_config.pyruns · 58,608 bytesinstructions/apply-code-fixes.mddoc · 57,425 bytesinstructions/apply-commit-fixes.mddoc · 10,020 bytesinstructions/apply-suggestions.mddoc · 54,062 bytesinstructions/apply-task-suggestions.mddoc · 52,767 bytesinstructions/ask.mddoc · 28,310 bytesinstructions/full-workflow.mddoc · 25,027 bytesinstructions/generate-tasks.mddoc · 18,514 bytesinstructions/implement.mddoc · 63,521 bytesinstructions/improve-code.mddoc · 18,937 bytesinstructions/improve-commits.mddoc · 25,276 bytesinstructions/improve-plan.mddoc · 19,908 bytesinstructions/init-config.mddoc · 6,705 bytesinstructions/review-code.mddoc · 45,989 bytesinstructions/review-commits.mddoc · 11,638 bytesinstructions/review-plan.mddoc · 43,572 bytesinstructions/review-tasks.mddoc · 37,754 bytesmodes.pyruns · 62,052 bytesmulti_llm.pyruns · 82,931 bytesprompts/ask.txtdoc · 948 bytesprompts/code_review.txtdoc · 4,585 bytesprompts/commit_review.txtdoc · 6,366 bytesprompts/consolidate_suggestions.txtdoc · 3,190 bytesprompts/implementation_task.txtdoc · 1,393 bytesprompts/plan_review.txtdoc · 8,176 bytesprompts/task_review.txtdoc · 8,499 bytesproviders.yamlasset · 79,072 bytespyproject.tomlasset · 5,214 bytesreferences/host-capabilities.mddoc · 14,212 bytesreferences/human-decision-batch.mddoc · 17,642 bytesreferences/own-check.mddoc · 4,420 bytesreferences/resume-detection.mddoc · 2,206 bytesreferences/salvage-handling.mddoc · 12,788 bytesreferences/summary-format.mddoc · 9,834 bytesreferences/uv-check.mddoc · 5,791 bytesreferences/wave-batching.mddoc · 5,328 bytesreview_commits_orchestrator.pyruns · 2,080 bytesreview_plan_orchestrator.pyruns · 31,925 bytesreview_tasks_orchestrator.pyruns · 10,978 bytesschemas/code_review_issues.schema.jsonasset · 2,037 bytesschemas/consolidated.schema.jsonasset · 6,688 bytesschemas/consolidation_batch.schema.jsonasset · 3,795 bytesschemas/generated_tasks.schema.jsonasset · 3,172 bytesschemas/host_capabilities.schema.jsonasset · 38,489 bytesschemas/human_decision_verdicts.schema.jsonasset · 2,623 bytesschemas/review_suggestions.schema.jsonasset · 2,477 bytesschemas/state_file.schema.jsonasset · 18,494 bytesschemas/subagent_tasks.schema.jsonasset · 19,555 bytesschemas/task_decomposition.schema.jsonasset · 1,254 bytesschemas/write_batch_result.schema.jsonasset · 9,002 bytestemplates/config/providers.override.yamlasset · 17,570 bytestemplates/consolidated_report_template.htmlasset · 69,019 bytestemplates/pr_report_template.htmlasset · 209,686 bytestemplates/report_template.htmlasset · 96,651 bytesupdate_plan_tasks.pyruns · 15,100 bytesutils/__init__.pyruns · 9,185 bytesutils/apply_orchestrator_base.pyruns · 267,471 bytesutils/apply_output_helpers.pyruns · 2,979 bytesutils/apply_path_helpers.pyruns · 728 bytesutils/apply_selection_helpers.pyruns · 6,919 bytesutils/backup.pyruns · 1,688 bytesutils/batch_done.pyruns · 86,479 bytesutils/check_reply.pyruns · 10,679 bytesutils/check_tree.pyruns · 1,244 bytesutils/cli_common.pyruns · 91,263 bytesutils/code_fix_batcher.pyruns · 32,039 bytesutils/codex_trust.pyruns · 13,531 bytesutils/commit_apply.pyruns · 75,325 bytesutils/commit_attribution.pyruns · 21,695 bytesutils/commit_brief.pyruns · 33,855 bytesutils/commit_range.pyruns · 63,502 bytesutils/commit_report.pyruns · 20,417 bytesutils/commit_review.pyruns · 96,136 bytesutils/commit_spelling.pyruns · 8,303 bytesutils/consolidation.pyruns · 93,806 bytesutils/detach.pyruns · 113,506 bytesutils/doctor.pyruns · 67,612 bytesutils/file_discovery.pyruns · 11,237 bytesutils/filtering.pyruns · 22,982 bytesutils/git_utils.pyruns · 153,560 bytesutils/host_capabilities.pyruns · 47,891 bytesutils/host_install.pyruns · 139,493 bytesutils/html_report_generator.pyruns · 138,351 bytesutils/human_decisions.pyruns · 31,380 bytesutils/importance.pyruns · 2,544 bytesutils/improve_steps.pyruns · 26,207 bytesutils/improve_workflow.pyruns · 94,376 bytesutils/interactive.pyruns · 29,347 bytesutils/json_extractor.pyruns · 50,278 bytesutils/judge_vocab.pyruns · 5,448 bytesutils/known_checks.pyruns · 39,348 bytesutils/landlock_dispatch.pyruns · 92,399 bytesutils/landlock_exec.pyruns · 21,877 bytesutils/llm_client.pyruns · 202,366 bytesutils/metrics.pyruns · 73,146 bytesutils/next_phase.pyruns · 126,331 bytesutils/output_handler.pyruns · 20,519 bytesutils/plan_updater.pyruns · 15,881 bytesutils/prior_changes.pyruns · 29,176 bytesutils/process_control.pyruns · 123,324 bytesutils/progress_tracker.pyruns · 92,762 bytesutils/prompt_files.pyruns · 21,177 bytesutils/prompt_loader.pyruns · 895 bytesutils/provider_registry.pyruns · 95,310 bytesutils/providers/__init__.pyruns · 2,627 bytesutils/providers/agy.pyruns · 15,747 bytesutils/providers/aider.pyruns · 58,814 bytesutils/providers/base.pyruns · 242,338 bytesutils/providers/claude_code.pyruns · 85,476 bytesutils/providers/cline.pyruns · 20,488 bytesutils/providers/codex.pyruns · 103,184 bytesutils/providers/codex_stream_audit.pyruns · 31,698 bytesutils/providers/copilot.pyruns · 50,167 bytesutils/providers/cursor_agent.pyruns · 77,526 bytesutils/providers/fx.pyruns · 20,534 bytesutils/providers/gemini.pyruns · 29,317 bytesutils/providers/goose.pyruns · 25,314 bytesutils/providers/grok.pyruns · 21,195 bytesutils/providers/kilocode.pyruns · 19,001 bytesutils/providers/kimi.pyruns · 28,566 bytesutils/providers/muse.pyruns · 33,883 bytesutils/providers/omp.pyruns · 86,199 bytesutils/providers/opencode.pyruns · 150,534 bytesutils/providers/pi.pyruns · 53,485 bytesutils/providers/pi_family_stream.pyruns · 22,206 bytesutils/providers/qwen_code.pyruns · 45,922 bytesutils/providers/result_envelope.pyruns · 16,953 bytesutils/providers/vibe.pyruns · 47,273 bytesutils/readonly_audit.pyruns · 5,432 bytesutils/report_check.pyruns · 55,339 bytesutils/report_parser.pyruns · 51,403 bytesutils/restore_batch.pyruns · 10,463 bytesutils/result_files.pyruns · 20,421 bytesutils/retry_ladder.pyruns · 33,836 bytesutils/review_orchestrator_base.pyruns · 423,482 bytesutils/run_registry.pyruns · 10,996 bytesutils/run_status.pyruns · 287,573 bytesutils/schema_validator.pyruns · 24,432 bytesutils/scope_apply.pyruns · 29,585 bytesutils/scope_policy.pyruns · 47,370 bytesutils/scope_policy_runs.pyruns · 13,876 bytesutils/scope_report.pyruns · 21,124 bytesutils/scope_round.pyruns · 26,271 bytesutils/selection_migration.pyruns · 7,758 bytesutils/state_manager.pyruns · 105,110 bytesutils/status_file.pyruns · 26,640 bytesutils/stream_bootstrap.pyruns · 4,529 bytesutils/structured_output.pyruns · 34,083 bytesutils/subagent_executor.pyruns · 519,948 bytesutils/subagent_prompts.pyruns · 78,221 bytesutils/subagent_tasks.pyruns · 49,078 bytesutils/suggestion_batcher.pyruns · 16,967 bytesutils/suggestion_processor.pyruns · 34,767 bytesutils/task_decomposer.pyruns · 37,341 bytesutils/tasks_file.pyruns · 8,206 bytesutils/tasks_graph_check.pyruns · 3,928 bytesutils/text_clip.pyruns · 13,636 bytesutils/unattended.pyruns · 48,956 bytesutils/validation.pyruns · 155,289 bytesutils/validation_batcher.pyruns · 7,162 bytesutils/validation_context.pyruns · 11,854 bytesutils/wakeup_check.pyruns · 18,305 bytesutils/write_batch_scheduler.pyruns · 746,368 bytesutils/write_phase_bridge.pyruns · 17,611 bytesutils/write_prompt.pyruns · 49,773 bytesutils/write_safety.pyruns · 117,901 bytesuv.lockasset · 157,376 bytes
Read excerpt
# Multi-LLM
Call the `multi_llm` tool with the argument text, converted to its four properties exactly
as that tool's own argument descriptions specify. The tool is the only supported entry point
on this host: it appends the flags this host requires, refuses the ones it owns, and
supervises the run to a terminal result. Do not reach the dispatcher any other way. The tool
runs outside the exec sandbox, and on the modes that apply changes it writes to the workspace. A call can run for up to its 15-minute budget. When you call this tool from an `exec` cell, start the cell with `// @exec: {"yield_time_ms": 900000}`, so the cell waits for the result. If a cell hands back "Script running" anyway, call `wait` until this call returns, and never end your turn while it is running.
Read the result's `exit` and `next` the way the dispatcher's own contract reads them; on `state: partial`, name the failed models and their reasons from `progress.models`; when the result carries `validation_counts` (a review phase's does), report them, and if `needs_human_decision` or `validation_failed` is non-zero point at `report.md` for those groups; they are decided later, when the suggestions are applied. A result without that key has no counts to report, so do not mention them. When the result carries a `notice` (`result.notice`, a finished run's: what it left out or could not check, such as items it did not apply or that nothing ran this repository's tests), report what it says, every part of it, as plain text. Put it above the closing section, and repeat nothing that section says.
On this host `next` arrives as arguments for this same tool, not as a command: "running" it means calling the tool again with exactly those arguments, never a shell.
Run `next` verbatim when it is not `null` on `0` and `2`. On `3` stop: report to the user which phase stopped, on which plan or commit range, the last error line it printed, whole (on a stop it says what stopped, what it reported, what did not run and whether anything ran the repository's tests), and the options its output names (`next` included); do not run a different mode. Do not perform the work this run was going to review, plan, or implement: doing it yourself is never a substitute for a failed run. Run an option only after the user has picked it. Never edit `driver.write_paths`, or any other multi-llm setting in `.multi-llm/providers.yaml`, yourself. At a stop, offer only the ways forward the stop itself names, as it words them: when it names a change to `driver.write_paths` that lets a refused file be written (adding it to `allow`, or removing or narrowing a deny rule that covers it), that is one of them and the user's call; add no advice about the write policy of your own. `user_next_step` is the phase after this one, for the user to type: never run it yourself; end your report with its `markdown`, copied as it is (its words and order, each command alone in its fenced block, each why and note plain text, the manual tasks it lists included, no caption of your own). Only that `markdown` says "Workflow complete.": never write those words yourself. Copy it word for word, never wrapped in a fenced block of your own (its commands are fenced already), and say none of it twice: its whys, notes, manual tasks and "Workflow complete." appear only in it, never above it. It is never a tool call, unlike `next`, which is one. At a stop, `resume_markdown` is the stop's options, already written: end your report with it the same way, in place of any list, recap or summary of the options or ways forward of your own.
If that tool is not listed, the plugin's server did not start: `codex mcp get multi_llm`
names the command it tried, and `python3 >= 3.9` must be on `PATH`.