English · 한국어
Give your agent the playbook for the whole Midjourney workflow.
Find a look. Bring your references. Shape the image. Push a variation. Pick your favorite. Bring the original home.
MidjourneyWeb is a browser-first agent skill built around the way creative work actually happens: exploring, comparing, changing your mind, and getting the details right. It gives Codex practical instructions for working inside Midjourney—from the first prompt to the final download—with your references and personal style at the center.
For a single generation, supported options such as aspect ratio, model, Raw and image SD/HD go in prompt parameters. The website handles reference uploads and roles, Editor masks/layers and video resolution; account defaults change only when requested.
Built for Codex's in-app browser · V8.x-aware · MIT licensed
| You bring the direction | The skill provides the workflow |
|---|---|
| “Make this idea real.” | Prompts, image references, aspect ratios, Raw, SD/HD and generation settings |
| “Same character. A different scene.” | V8.x Edit Model references, with version-aware routing for older models |
| “Show this scene from behind.” | Viewpoint instructions, original-based comparison and checks for subject rotation versus camera movement |
| “Keep the face. Change the background.” | Regional edits, applied-mask checks, layers and preservation review |
| “Find my next visual obsession.” | Explore, Style Explorer, reusable style codes and Style Creator |
| “Give the whole series this feeling.” | Personalization profiles, Moodboards and consistent reference selection |
| “Show me the strongest take.” | Candidate comparison, variations, upscaling and HD workflows |
| “Get this project organized.” | Search, filters, folders, saved searches and batch actions |
| “Bring it to life.” | Image-to-video, motion choices, loops and extensions |
| “Send me the original.” | Full-resolution JPG by default, optional PNG, and verified local delivery |
These are the workflows the skill teaches. See what has been verified for the current testing scope.
Prompt-only requests end with copyable wording without requiring an account session. Website execution preserves unrelated drafts and distinguishes prepared attachments, submitted jobs, visual acceptance and verified files.
The workflow also covers repeat/permutation planning, resolved style codes, folder/search semantics and video export selection. These additions were checked against 13 official articles on 2026-09-13; documentation coverage is separate from live execution evidence.
Your style stays yours. Personalization and Moodboards are part of the brief. The skill checks the intended profile and references before making changes.
Every result has a trail. New generations are matched to their own job IDs. Variations and edits retain their source relationship, so “use the second one” has a concrete meaning.
The right image, all the way through. Reference roles, source fingerprints and candidate indices travel with the job. Recovery checks the visible media as well as the URL, so a stale lightbox cannot quietly turn a neighboring image into your final.
The model matters. V8.x Edit Model, V7 Omni Reference and older Character Reference workflows get their own paths. The skill consults current official documentation when capabilities change.
The original is the deliverable. Downloads are checked as actual files. Screenshots serve as review evidence; original media gets its own verification.
Bring the file home, inside the app. JPG delivery uses the selected loaded image. When PNG's download event stalls, the included media bridge renders the site's observed original URL locally so the in-app browser can export it. No image conversion or exported login credentials.
Stay in the creative workspace. The in-app browser is the default. Chrome remains available when you choose it or a specific obstacle calls for it.
From a local checkout, run the installer directly:
node scripts/install.mjs --target codexThen invoke $midjourney-web in Codex and give it a brief:
Find three styles for a cinematic botanical series. Show me the options before generating.
Use the references I attached to create one batch of product images. Keep the packaging design and use a soft daylight setting.
Open the image I selected, change only the background, and download the chosen result to my project folder.
The skill is designed to carry the requested work through the website. Your account, available tools and approved generation budget determine what can run.
Requires Node.js 18+. The installer copies the runtime payload, so it stays installed after the source checkout or npm cache is removed. Select a host, preview a plan, or choose an exact destination:
node scripts/install.mjs --target codex --dry-run
node scripts/install.mjs --target claude
node scripts/install.mjs --target all
node scripts/install.mjs --target codex --dest /custom/skills/midjourney-web
node scripts/install.mjs --target codex --force| Target | Installation |
|---|---|
codex / gpt |
$CODEX_HOME/skills/midjourney-web, default ~/.codex/skills/midjourney-web |
claude |
~/.claude/skills/midjourney-web |
Omit --target for directory-based detection. Interactive terminals offer a choice; CI and dry runs never prompt. Non-interactive auto mode uses the first detected host in claude > codex order, or Codex if none is detected. all means all detected hosts. Explicit options win; a custom destination without a host uses Codex unless it matches another standard destination. --quiet suppresses normal output and prompts.
--force replaces only a recognized MidjourneyWeb install and keeps a backup outside the skill discovery tree, under ~/.local/share/heituz/midjourney-web/backups. It also migrates this project's original source symlink. Unrelated directories, files and symlinks are refused. To uninstall, remove the installed midjourney-web directory after preserving anything you added; keep the canonical checkout if you maintain the project. Skill discovery may require a new task.
GitHub installation command (Bun):
bunx --package github:HeiTuz/MidjourneyWeb heituz-midjourney -- --target codexSource and release archives are available at HeiTuz/MidjourneyWeb. Remote installation is separate from local package validation; see the evidence record for tested routes. The same command with --force updates a recognized install. Git is required for this route. If Bun is missing, these commands install the latest stable release with the official installer and then install MidjourneyWeb:
bun_cmd="$(command -v bun || true)"; if [ -z "$bun_cmd" ]; then curl -fsSL https://bun.com/install | bash; bun_cmd="${BUN_INSTALL:-$HOME/.bun}/bin/bun"; fi; "$bun_cmd" x --package github:HeiTuz/MidjourneyWeb heituz-midjourney -- --target codexWindows PowerShell:
$bun = (Get-Command bun -ErrorAction SilentlyContinue).Source; if (!$bun) { irm https://bun.com/install.ps1 | iex; $root = if ($env:BUN_INSTALL) { $env:BUN_INSTALL } else { "$HOME\.bun" }; $bun = Join-Path $root 'bin\bun.exe' }; & $bun x --package github:HeiTuz/MidjourneyWeb heituz-midjourney -- --target codexBring a logged-in Midjourney account with the relevant plan/GPU allowance, the host's supported browser tool, and local file inspection tools. Codex uses the in-app browser by default; Claude Code uses the desktop app's built-in browser by default and ships a loopback receiver that saves original JPG/PNG bytes after a SHA-256 check. Each host gets its own payload: shared Midjourney references plus the overlay in hosts/<host>/ (host.md for browser entry and waits, download.md for the file route). The Codex payload adds a helper module for the in-app browser and the loopback media bridge for page-asset export; the Claude Code payload adds only the receiver. It turns reference reuse (an existing upload, or a generated candidate by job ID and index, without downloading or uploading), submission, candidate checks and original-JPG export into single checked calls, and it confirms that each click lands on its target. Nothing installs a browser controller or private API client. Both installation payloads are tested locally. On Claude Code the original-file receiver was checked against existing images; live generation on Claude Code and Windows installation are not yet tested. Hermes is no longer an install target.
On 2026-09-30, three Codex helper jobs confirmed new creation, editing a safe existing upload and editing an exact generated candidate by job/index. Each completed four candidates and one saved, fully decoded 1024×1024 JPG. Draft and reference guards passed; color changes and surrounding composition were visually checked. Unexercised delay states remain outside this confirmation. See the dated evidence.
On 2026-09-13, one camera-direction Edit batch produced four saved 1456×816 JPGs. Rear views improved, while coherent whole-scene camera orbit remained unproven. The full Editor's Smart Select, erase, Undo and selection cleanup were exercised on the same source; full Editor generation was not. See camera edit guidance and the dated evidence entries.
On 2026-09-23, one batch using both an Image Prompt and Style Reference produced four candidates and a verified 1456×816 JPG. A second batch used a localized erase mask in the full Editor and produced four candidates and a verified JPG. The reference batch did not achieve the requested camera action; the best masked edit changed the camera toward warm brown/red but only partly matched the requested color. The full Editor job appeared in Create. Two more batches used one reference role at a time with identical text and settings; each yielded four candidates and a verified JPG. Neither selected result lowered the camera, and the comparison did not establish causal role effects without a confirmed seed. See the dated evidence.
A further full Editor batch used Smart Select on the painted photographer. The selection expanded from a jacket click to the whole figure, so the applied erase mask and instruction targeted the whole person. Four candidates completed and one 1456×816 JPG was saved. The jacket changed to muted red and the window/camera arrangement broadly remained, but the rebuilt person lost the painted look. Selection, erase, generation and file delivery passed; style preservation did not.
From a prompt to a real file, tested in the in-app browser.
- Skill-format and UI metadata checks passed.
- Installer tests cover host selection, safe replacement, symlink migration, payload boundaries, npm-style binary execution and complete canonical/host-adapter parity.
- The distribution archive was extracted, checked and installed successfully.
- Authenticated website navigation, existing image actions, settings and several feature panels were inspected live.
- New V8.2 creation, JPG/PNG reference upload, targeted color editing, candidate comparison and final in-app file delivery passed. The selected JPG and optional PNG are 1024×1024.
- A local erase mask and Undo were exercised. The media bridge saved six real comparison/original assets, and the package passed 20 Node tests.
That test count belongs to the earlier core-workflow checkpoint. Release validation and live website checks are recorded separately. CI runs code-only tests and package checks; isolated installer checks are part of the release procedure.
JPG is the default; PNG is ready when needed. The ordinary in-app Download Image event remains unreliable, so the skill uses the verified asset-export route and optional media bridge. The source bridge PNG matched the website export's decoded pixels; website-added metadata differed. An accidental feed-overlay variation was identified and counted within the approved four-job test budget, motivating direct job-URL navigation. HD/upscale, layered composition, other reference roles, seed-controlled reference effects, preference training, board/folder mutations, Style Creator, batch archives and video delivery remain untested.
Read the feature evidence matrix, verification record and official source map, initially reviewed on 2026-09-12 with selected live checks added through 2026-09-30. The matrix separates live UI/file checks, documentation-only workflows, plan gates and retired features. Purchases, publishing and destructive actions remain subject to the user's authorization and the host's action rules.
The skill lives in skills/midjourney-web, with focused references for each workflow. Improvements should come from a concrete task, an observed failure, or a verified website change.
python3 scripts/validate.py
npm run test:code
# Optional full suite, including isolated installation tests:
npm test
node scripts/verify-install.mjs codex /custom/skills/midjourney-webThe package validator needs Python 3.10+. These checks cover package structure, links, distribution hygiene and installer behavior. Live generation quality needs live testing. See RELEASING.md for GitHub publishing and archive verification.
Bring the idea. Let's see how far it can go.
MIT License · Independently authored by HeiTuz. Not affiliated with or endorsed by Midjourney or OpenAI. Product names belong to their respective owners. Official documentation remains under its original terms; this repository distributes original guidance, not copies of those manuals.