Omniscient Master Suite OMNISCIENT · 3.1

Orientation Sorter v1.0.0

Images portrait-sorter 2 actions MCP

Sort a folder of images into portrait/, landscape/ and square/ subfolders by their real pixel aspect ratio (Pillow, not the filename). Every sort previews as a dry-run first and can be undone.

The omniscient:// link needs a protocol handler on your machine, which is not built yet. Until then it does nothing — use the commands below.

Actions

Jump to: sortundo

Sort by orientation

sort Destructive

Move every image in a folder into a portrait/, landscape/ or square/ subfolder based on its width and height. Use --dry-run to preview without moving anything.

Inputs

NameTypeRequired / defaultValues and notes
folder path required
square_tolerance float optional, default 1.0
on_conflict enum optional, default rename renameskipoverwrite

Outputs

NameTypeNotes
moved int
skipped int
counts json
changes json

Undo last sort

undo Destructive

Reverse the most recent sort in a folder, using the journal Orientation Sorter keeps.

Inputs

NameTypeRequired / defaultValues and notes
folder path required

Outputs

NameTypeNotes
restored int
changes json

Use it

Sort by orientation

Command line

shell
python app.py --action sort --params '{"folder": "D:/path/to/folder"}'

# preview first - destructive action, nothing is changed:
python app.py --action sort --params '{"folder": "D:/path/to/folder"}' --dry-run

Run from the app’s own folder. Single quotes work in bash and PowerShell; in cmd.exe use double quotes and escape the inner ones.

MCP tool

mcp
run_action("portrait-sorter", "sort", {"folder": "D:/path/to/folder"})

# preview first:
run_action("portrait-sorter", "sort", {"folder": "D:/path/to/folder"}, dry_run=true)

Workflow node

json
{
  "id": "n0",
  "app": "portrait-sorter",
  "action": "sort",
  "params": {
    "folder": "D:/path/to/folder"
  },
  "inputs": {}
}

Undo last sort

Command line

shell
python app.py --action undo --params '{"folder": "D:/path/to/folder"}'

# preview first - destructive action, nothing is changed:
python app.py --action undo --params '{"folder": "D:/path/to/folder"}' --dry-run

Run from the app’s own folder. Single quotes work in bash and PowerShell; in cmd.exe use double quotes and escape the inner ones.

MCP tool

mcp
run_action("portrait-sorter", "undo", {"folder": "D:/path/to/folder"})

# preview first:
run_action("portrait-sorter", "undo", {"folder": "D:/path/to/folder"}, dry_run=true)

Workflow node

json
{
  "id": "n0",
  "app": "portrait-sorter",
  "action": "undo",
  "params": {
    "folder": "D:/path/to/folder"
  },
  "inputs": {}
}

Example prompts

Things you can say to Claude, Cursor or Codex once the MCP server is registered.