Skip to content

CLI Reference

Quadstronaut edited this page Jul 28, 2026 · 1 revision

CLI Reference

The ed-autojump command is the single entry point. It is registered as a console script when you install the package.

ed-autojump [--version] [--config PATH] <command> [options]
Global flag Default Description
--version Print ed-autojump <version> and exit
--config PATH config.toml (cwd) Override config file path

Commands

doctor

Pre-flight environment check. Prints PASS / WARN / FAIL for each check and exits non-zero if any check is FAIL.

ed-autojump doctor

Checks run: journal directory readable, sessions directory writable, binds preset parseable with all critical actions bound, Status.json / NavRoute.json present, correct pydirectinput-rgx fork installed, panic-hotkey backend available.


run

Start the bot main loop: tail the journal, dispatch procedures, optionally send keys and record.

ed-autojump run [options]
Flag Default Description
--journal-dir PATH from config.toml Override journal directory
--sessions-dir PATH $ED_AFK_SESSIONS_DIR or ~/ed-afk-sessions Override session output directory
--duration SECONDS 0.0 How long to run (0 = exit immediately, useful for dry-run)
--scene NAME Drive exactly one named procedure (e.g. smack_recovery) with the full live wiring, then exit — no classifier, no event loop. An unknown name fails loudly and sends zero keys
--record / --no-record on Write a session JSONL (default ON per operator order; --no-record to disable)
--engage-keys / --no-engage-keys off (NullSender) Send actual DirectInput keystrokes
--status / --no-status on Enable Status.json polling (feeds the scoop / heat guards)
--console-status / --no-console-status on Mirror live execution info to this terminal's stdout
--eddn / --no-eddn from config Publish FSS scans to EDDN
--route-plot off Auto-plot via Spansh when NavRoute is empty
--visited-log / --no-visited-log on Append each visited system to ~/Documents/ed-afk-systems-visited.log
--destination TEXT from config Override routing destination (e.g. "Beagle Point")
--launch off Launch Elite via MinEdLauncher before starting the loop
--commander NAME from config Commander to launch as
--auth frontier|steam from config Auth method for launch
--group NAME from config Private group to join after launch
--dryrun / --no-dryrun off Run MEL /dryrun pre-flight before launch

Key behaviors:

  • With --no-engage-keys (default), a NullSender logs every key action without sending it. Safe for testing journal parsing.
  • With --engage-keys, the bot loads ED-AFK.4.2.binds, sends real DirectInput scancodes, and focuses the Elite window before the first keypress. Elite must be the focused window. This is also the path that wires the CV/OCR grabbers (compass, widget ring, nav-panel, HUD prompts, docking distance, escape vector, connection-error watch).
  • With --engage-keys and [vision].widget_ring_on_miss = "required" (the default), the run halts at preflight if the HUD mouse widget is not detected — enable the widget and relaunch (see Troubleshooting).
  • With --launch, the bot spawns MinEdLauncher, waits for the main menu, optionally navigates to the Private Group, and verifies LoadGame before starting the loop.
  • A startup route check prints a prominent warning if no route is plotted and --route-plot is off.
  • With --record (default on), CV frame dumps are saved alongside the JSONL (one image per CV read) so any failed read is replayable offline.

launch

Standalone game launch: spawn MinEdLauncher, navigate to main menu, optionally join a Private Group, verify LoadGame. Does not start the AFK loop.

ed-autojump launch [options]
Flag Default Description
--commander NAME from config Commander to launch as
--auth frontier|steam from config Auth method
--product edo|edh4 from config Game edition
--group NAME from config Private group to verify after LoadGame
--mel-path PATH auto-detect Explicit path to MinEdLauncher.exe
--journal-dir PATH from config Journal directory to watch for events
--dryrun / --no-dryrun off Run MEL /dryrun first (catches stale .cred hang)
--no-nav off Force menu navigation off; bot hands off at main menu

MinEdLauncher is auto-detected from PATH, Scoop, and common install directories. Pass --mel-path to specify an explicit location.


setup-frontier-creds

Interactive Frontier account credential onboarding. For each named commander that is missing a .cred file under %LOCALAPPDATA%\min-ed-launcher\, spawns MinEdLauncher interactively so you can log in. Credentials are DPAPI-bound to the current user and machine.

ed-autojump setup-frontier-creds [--commanders NAME [NAME ...]] [--mel-path PATH]
Flag Default Description
--commanders NAME... all in config.launcher.profiles Space-separated commander names
--mel-path PATH auto-detect Explicit MinEdLauncher.exe path

Run once per commander per machine. DPAPI binding means .cred files do not transfer between machines or Sandboxie sandboxes.


calibrate-menu

Capture the main-menu press counts for one commander. Guides you through the menu navigation steps and prints a [menu_nav.calibration.<Commander>] TOML block to paste into config.toml.

ed-autojump calibrate-menu --commander NAME [--is-owner]
Flag Default Description
--commander NAME required Commander to calibrate
--is-owner off Commander owns the private group (skips select-group step)

Repeat per commander you want to auto-launch through the bot.


calibrate-compass

Auto-locate the nav compass ring on screen and print a [vision] config block. Saves an annotated screenshot to calibration/compass_calibration.png.

ed-autojump calibrate-compass

Be in the cockpit with the nav compass visible. The command waits 3 seconds before capturing. Requires the [vision] extra (pip install -e .[vision]). It prints a [vision] block with enabled = true, backend = "cyan", the detected region, and compass_radius.


calibrate-overlay

Interactively tune the screen→overlay transform so the CV debug boxes land where the detectors actually look. Run this once if the CV-debug boxes are visible but offset from their targets.

ed-autojump calibrate-overlay

Requires EDMCOverlay to be running/launchable. See Troubleshooting → "CV debug boxes do not appear / are offset".


navpanel-overlay

Live per-row nav-icon vision diagnostic: draws the nav-panel icon detector's per-row box (green star / red non-star) plus confidence on the EDMCOverlay. Open the NAVIGATION panel in-game while it runs.

ed-autojump navpanel-overlay [--rows N]
Flag Default Description
--rows N 12 Number of nav-list rows to scan and label

cv-debug

Live, context-aware CV overlay that reacts to the current UI: draws nav-panel boxes + labels when the panel is open, and compass / sun / widget boxes when facing forward, logging UI changes as it goes.

ed-autojump cv-debug

Requires EDMCOverlay. Useful for eyeballing what every detector sees in real time without running the full flight loop.


cleanup

Kill a leftover bot child process from a crashed prior session. Targets only the PID recorded in the bot's PID file, and only if that PID is a live Python interpreter that is not the current process — the operator's own shell is never touched.

ed-autojump cleanup

panic

Release any held DirectInput keys immediately. Use after a hard-kill that left the game holding a key (e.g. a stuck throttle or pitch).

ed-autojump panic

install-binds

Copy the bundled ED-AFK.4.2.binds preset into Elite's bindings directory (%LOCALAPPDATA%\Frontier Developments\Elite Dangerous\Options\Bindings\).

ed-autojump install-binds [--swap]
Flag Default Description
--swap off Also update line 2 of StartPreset.4.start to activate the preset

After running, select the "ED-AFK" preset in Elite: Options → Controls → preset dropdown.


restore-binds

Restore the original StartPreset.4.start line 2. The bot does this automatically on clean exit when [binds].restore_on_exit = true (default).

ed-autojump restore-binds

pull-binds

Show a diff between the live in-game preset and the bundled repo preset. Optionally overwrite the repo preset with the live one.

ed-autojump pull-binds [--apply] [--preset NAME]
Flag Default Description
--apply off Overwrite the bundled preset with the live in-game preset
--preset NAME active StartPreset Pull from this preset name instead

replay

Replay a journal file through the parser and print event counts. Optionally record the replayed events as a session JSONL.

ed-autojump replay <journal-path> [--record OUT]
Argument / Flag Description
journal-path Path to a Journal.*.log file
--record OUT Also write events as a session JSONL at OUT

Clone this wiki locally