-
Notifications
You must be signed in to change notification settings - Fork 0
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 |
Pre-flight environment check. Prints PASS / WARN / FAIL for each check and exits non-zero if any check is FAIL.
ed-autojump doctorChecks 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.
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), aNullSenderlogs every key action without sending it. Safe for testing journal parsing. - With
--engage-keys, the bot loadsED-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-keysand[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 verifiesLoadGamebefore starting the loop. - A startup route check prints a prominent warning if no route is plotted and
--route-plotis 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.
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.
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.
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.
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.
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".
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 |
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.
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
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
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 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
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 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 |