WickedWake-Copilot

What is it? AND WHY

WickedWake-Copilot (Copilot) is an AI chat bot or smart agent that was designed to work with the game Elite Dangerous. It utilizes modern cloud technologies and connects to various different Large Language Models (LLMs) to perform tasks and communicate with the user. I enjoy playing Elite Dangerous and have always wanted to have an AI ship companion like the ones you see on TV or in the Movies. Additionally, a few of the people I play with use voice assistants. But, they always felt limited as you had to use specific phrases of words to accomplish the task you were trying to do, which I didn’t like. So I attempted to search for other AI chat bot like solutions, but I found them unreliable when trying to perform tasks in game, and spent more time arguing with the bot than actually getting anything done. Thus, I set out to build my own AI chat bot that has reliable task calling with a minimal install footprint.

WickedWake-Copilot application console logs.

Features

  • Customizable AI prompt. You can adjust and make the bot your own!

  • Speech To Text using Edge voices.

  • Text To Speed using Google’s Generative AI models.

  • Push To Talk / Open MIC using WebRTC voice detection.

  • Elite Dangerous keybinding validation.

  • Elite Dangerous event based AI responses.

  • Compiled and signed binary to reduce the AV false positives.

  • Evolving feature set, I tend to add things I think will be cool!

Current Tools

General Tools

  • show_tool_names - Show the names of all available tools. Examples: 'Show tools', 'List tools', 'Available tools', 'Tool names'

SHIP Tools

  • toggle_night_vision - Toggle night vision on or off. Examples: 'Turn on night vision', 'Turn off night vision', 'Night vision on', 'Night vision off'
  • prepare_for_landing - Prepare the ship for landing. Examples: 'Prepare for landing', 'Prepare for descent', 'Prepare for approach', 'Prepare for touchdown', 'Prepare for orbit'
  • power_to_weapons - Prepare weapons for combat. Examples: 'Prepare for combat','Weapons full', 'Power to weapons'
  • power_to_engines - Prepare engines for flight. Examples: 'Prepare for flight', 'Engines full', 'Power to engines'
  • power_to_shields - Prepare shields for impact. Examples: 'Prepare defenses', 'Shields full', 'Power to shields'
  • toggle_landing_gear - Toggle the landing gear. Examples: 'Raise landing gear', 'Lower landing gear', 'Landing gear down', 'Landing gear up'
  • toggle_galaxy_map - Open the galaxy map. Examples: 'Open galaxy map', 'Show galaxy map', 'Display galaxy map', 'Close galaxy map'
  • toggle_system_map - Open the system map. Examples: 'Open system map', 'Show system map', 'Display system map', 'Close system map'
  • navigate_to_system - Navigate to a system. Examples: 'Navigate to HIP 55017', 'Set route to bookmark one', 'Plot a course to Sol'
  • toggle_orbit_lines - Toggle orbit lines on or off. Examples: 'Show orbit lines', 'Hide orbit lines', 'Display orbit lines', 'Toggle orbit lines'
  • toggle_cargo_scoop - Toggle the cargo scoop open or closed. Examples: 'Open scoop', 'Close scoop', 'Deploy cargo scoop', 'Retract cargo scoop', 'Cargo scoop'
  • toggle_hardpoints - Toggle hardpoints on or off. Examples: 'Deploy hardpoints', 'Retract hardpoints', 'Prepare to fire', 'Hardpoints'
  • deploy_heat_sink - Deploy a heat sink. Examples: 'Deploy heat sink', 'Activate heat sink', 'Heat sink'
  • use_shield_cell - Use a shield cell. Examples: 'Use shield cell', 'Activate shield cell', 'Shield cell', 'Deploy shield cell'
  • fire_chaff_launcher - Fire the chaff launcher. Examples: 'Fire chaff', 'Deploy chaff', 'Chaff launcher', 'Chaff'
  • toggle_ship_lights - Toggle lights on or off. Examples: 'Turn on ship lights', 'Turn off ship lights', 'Ship lights on', 'Ship lights off'
  • request_ship_docking - Request docking permission. Examples: 'Request docking', 'Docking request', 'Request to dock', 'Send docking request'
  • target_wingman_one - Target wingman one. Examples: 'Target wingman one', 'Select wingman one', 'Wingman one'
  • target_wingman_two - Target wingman two. Examples: 'Target wingman two', 'Select wingman two', 'Wingman two'
  • target_wingman_zero - Target wingman zero. Examples: 'Target wingman zero', 'Select wingman zero', 'Wingman zero'
  • wingman_nav_lock - Lock on to a wingman. Examples: 'Wingman nav lock', 'nav lock', 'Lock wingman', 'Wingman lock'
  • target_of_target - Target the target of the current target. Examples: 'Get target', 'Wingman target', 'Target of target'
  • target_next_route_system - Target the next system in the route. Examples: 'Target next system', 'Select next system', 'Next system', 'Next system in route'
  • cycle_next_firegroup - Cycle to the next firegroup. Examples: 'Cycle firegroup', 'Next firegroup', 'Firegroup next'
  • cycle_previous_firegroup - Cycle to the previous firegroup. Examples: 'Previous firegroup', 'Firegroup previous'
  • trigger_field_neutraliser - Trigger the field neutraliser. Examples: 'Trigger field neutraliser', 'Field neutraliser', 'Deploy field neutraliser'
  • charge_ecm - Charge the ECM. Examples: 'Charge ECM', 'ECM charge', 'Deploy ECM'
  • focus_left_panel - Focus on the left panel. Examples: 'Focus left panel', 'Left panel', 'Open left panel'
  • focus_right_panel - Focus on the right panel. Examples: 'Focus right panel', 'Right panel', 'Open right panel'
  • focus_bottom_panel - Focus on the bottom panel. Examples: 'Focus lower panel', 'Lower panel', 'Open lower panel', 'Focus bottom panel', 'Bottom panel', 'Open bottom panel'
  • focus_comms_panel - Focus on the comms panel. Examples: 'Focus comms panel', 'Comms panel', 'Open comms panel', 'Focus top panel', 'Top panel', 'Open top panel', 'Focus chat panel', 'Chat panel', 'Open chat panel'
  • use_boost_juice - Use boost juice. Examples: 'Use boost juice', 'Boost', 'Boosters', 'Use boosters', 'Activate boost', 'Activate boosters'
  • head_look_reset - Reset head look or HUD. Examples: 'Reset head look', 'Head look reset', 'Reset head', 'Head reset', 'HUD reset', 'Reset HUD'
  • supercruise - Enter Supercruise. Examples: 'Supercruise', 'Enter supercruise', 'Supercruise mode', 'Activate supercruise', 'Drop supercruise', 'Drop supercruise mode', 'Exit supercruise', 'Drop out of supercruise', 'Drop'
  • open_inventory - Open the inventory. Examples: 'Open inventory', 'Inventory'
  • close_inventory - Close the inventory. Examples: 'Close inventory'
  • auto_launch - Auto launch the ship. Examples: 'Auto launch', 'Launch', 'Launch ship'
  • select_target - Select current ship/object as target. Examples: 'Select target', 'Target', 'Target selected', 'Target ship', 'Select target'
  • cycle_next_target - Cycle to the next target. Examples: 'Cycle next target', 'Next target'
  • cycle_previous_target - Cycle to the previous target. Examples: 'Cycle previous target', 'Previous target'
  • select_highest_threat - Select the highest threat target. Examples: 'Select highest threat', 'Target highest threat', 'Target threat', 'Select threat', 'Highest threat'
  • cycle_next_hostile_target - Cycle to the next hostile target. Examples: 'Cycle next hostile', 'Next hostile', 'Next target'
  • cycle_previous_hostile_target - Cycle to the previous hostile target. Examples: 'Cycle previous hostile', 'Previous hostile', 'Previous target'
  • player_hud_mode_toggle - Toggle the player HUD mode. Examples: 'Toggle HUD mode', 'Change HUD mode', 'Switch HUD mode', 'Analysis mode', 'Combat mode'
  • recall_fighter - Recall the fighter. Examples: 'Recall fighter', 'Fighter recall', 'Fighter return', 'Return fighter'
  • defensive_fighter - Set the fighter to defensive mode. Examples: 'Fighter defensive', 'Defensive fighter', 'Defensive mode'
  • aggressive_fighter - Set the fighter to aggressive mode. Examples: 'Fighter aggressive', 'Aggressive fighter', 'Aggressive mode'
  • focus_target_fighter - Focus the fighter on the target. Examples: 'Fighter focus target', 'Fighter target', 'Focus my target', 'Fighter focus'
  • hold_fire_fighter - Hold fire for the fighter. Examples: 'Fighter hold fire', 'Hold fire', 'Fighter stop firing'
  • hold_position_fighter - Hold position for the fighter. Examples: 'Fighter hold position', 'Hold position', 'Fighter stay here'
  • follow_me_fighter - Follow me with the fighter. Examples: 'Fighter follow me', 'Follow me', 'Fighter follow'
  • toggle_reverse_throttle_input - Toggle reverse throttle input. Examples: 'Toggle reverse throttle', 'Reverse throttle'
  • set_speed_minus_100 - Set speed to -100%. Examples: 'Full reverse', 'Reverse 100', 'Speed -100'
  • set_speed_minus_75 - Set speed to -75%. Examples: 'Reverse 75', 'Speed -75'
  • set_speed_minus_50 - Set speed to -50%. Examples: 'Reverse 50', 'Speed -50'
  • set_speed_minus_25 - Set speed to -25%. Examples: 'Reverse 25', 'Speed -25'
  • set_speed_zero - Set speed to 0%. Examples: 'All stop', 'Speed zero'
  • set_speed_25 - Set speed to 25%. Examples: 'Speed 25', 'Quarter speed'
  • set_speed_50 - Set speed to 50%. Examples: 'Speed 50', 'Half speed'
  • set_speed_75 - Set speed to 75%. Examples: 'Speed 75', 'Three quarters speed'
  • set_speed_100 - Set speed to 100%. Examples: 'Full speed', 'Speed 100'
  • toggle_flight_assist - Toggle flight/drive assist on or off. Examples: 'Toggle flight assist', 'Flight assist on', 'Flight assist off'
  • hyper_super_combination - Engage hyperdrive or supercruise depending on context. Examples: 'Engage drive', 'Jump'
  • hyperspace - Engage hyperspace jump. Examples: 'Hyperspace jump', 'Engage hyperspace'
  • disable_rotation_correct_toggle - Toggle rotation correction. Examples: 'Toggle rotation correction', 'Rotation correction off', 'Rotation correction on'
  • cycle_next_subsystem - Cycle to the next subsystem target. Examples: 'Next subsystem', 'Cycle subsystem'
  • cycle_previous_subsystem - Cycle to the previous subsystem target. Examples: 'Previous subsystem'
  • head_look_toggle - Toggle head look mode. Examples: 'Toggle head look', 'Head look on', 'Head look off'
  • open_codex_go_to_discovery - Open the codex and navigate to the discovery section. Examples: 'Open codex discovery', 'Show discoveries'
  • exploration_fss_enter - Enter the Full Spectrum Scanner (FSS) mode. Examples: 'Enter FSS', 'Start FSS scan'
  • weapon_colour_toggle - Toggle weapon colour. Examples: 'Toggle weapon colour', 'Change weapon colour'
  • engine_colour_toggle - Toggle engine colour. Examples: 'Toggle engine colour', 'Change engine colour'

SRV Tools

  • toggle_night_vision - Toggle night vision on or off. Examples: 'Turn on night vision', 'Turn off night vision', 'Night vision on', 'Night vision off'
  • power_to_weapons - Prepare weapons for combat. Examples: 'Prepare for combat','Weapons full', 'Power to weapons'
  • power_to_engines - Prepare engines for flight. Examples: 'Prepare for flight', 'Engines full', 'Power to engines'
  • power_to_shields - Prepare shields for impact. Examples: 'Prepare defenses', 'Shields full', 'Power to shields'
  • toggle_galaxy_map - Open the galaxy map. Examples: 'Open galaxy map', 'Show galaxy map', 'Display galaxy map', 'Close galaxy map'
  • toggle_system_map - Open the system map. Examples: 'Open system map', 'Show system map', 'Display system map', 'Close system map'
  • toggle_cargo_scoop - Toggle the cargo scoop open or closed. Examples: 'Open scoop', 'Close scoop', 'Deploy cargo scoop', 'Retract cargo scoop', 'Cargo scoop'
  • toggle_hardpoints - Toggle hardpoints on or off. Examples: 'Deploy hardpoints', 'Retract hardpoints', 'Prepare to fire', 'Hardpoints'
  • toggle_ship_lights - Toggle lights on or off. Examples: 'SRV lights on', 'SRV lights off'
  • focus_left_panel - Focus on the left panel. Examples: 'Focus left panel', 'Left panel', 'Open left panel'
  • focus_right_panel - Focus on the right panel. Examples: 'Focus right panel', 'Right panel', 'Open right panel'
  • focus_bottom_panel - Focus on the bottom panel. Examples: 'Focus lower panel', 'Lower panel', 'Open lower panel', 'Focus bottom panel', 'Bottom panel', 'Open bottom panel'
  • focus_comms_panel - Focus on the comms panel. Examples: 'Focus comms panel', 'Comms panel', 'Open comms panel', 'Focus top panel', 'Top panel', 'Open top panel', 'Focus chat panel', 'Chat panel', 'Open chat panel'
  • head_look_reset - Reset head look or HUD. Examples: 'Reset head look', 'Head look reset', 'Reset head', 'Head reset', 'HUD reset', 'Reset HUD'
  • select_target - Select current ship/object as target. Examples: 'Select target', 'Target', 'Target selected', 'Target ship', 'Select target'
  • player_hud_mode_toggle - Toggle the player HUD mode. Examples: 'Toggle HUD mode', 'Change HUD mode', 'Switch HUD mode', 'Analysis mode', 'Combat mode'
  • toggle_reverse_throttle_input - Toggle reverse throttle input. Examples: 'Toggle reverse throttle', 'Reverse throttle'
  • set_speed_minus_100 - Set speed to -100%. Examples: 'Full reverse', 'Reverse 100', 'Speed -100'
  • set_speed_minus_75 - Set speed to -75%. Examples: 'Reverse 75', 'Speed -75'
  • set_speed_minus_50 - Set speed to -50%. Examples: 'Reverse 50', 'Speed -50'
  • set_speed_minus_25 - Set speed to -25%. Examples: 'Reverse 25', 'Speed -25'
  • set_speed_zero - Set speed to 0%. Examples: 'All stop', 'Speed zero'
  • set_speed_25 - Set speed to 25%. Examples: 'Speed 25', 'Quarter speed'
  • set_speed_50 - Set speed to 50%. Examples: 'Speed 50', 'Half speed'
  • set_speed_75 - Set speed to 75%. Examples: 'Speed 75', 'Three quarters speed'
  • set_speed_100 - Set speed to 100%. Examples: 'Full speed', 'Speed 100'
  • toggle_flight_assist - Toggle flight/drive assist on or off. Examples: 'Toggle drive assist', 'Drive assist on', 'Drive assist off'
  • head_look_toggle - Toggle head look mode. Examples: 'Toggle head look', 'Head look on', 'Head look off'
  • open_codex_go_to_discovery - Open the codex and navigate to the discovery section. Examples: 'Open codex discovery', 'Show discoveries'
  • toggle_buggy_turret - Toggle the buggy turret. Examples: 'Toggle turret', 'Enter turret mode', 'Exit turret mode'

ON-FOOT Tools

  • power_to_shields - Prepare shields for impact. Examples: 'Prepare defenses', 'Shields full', 'Power to shields'
  • toggle_night_vision - Toggle night vision on or off. Examples: 'Turn on night vision', 'Turn off night vision', 'Night vision on', 'Night vision off'
  • toggle_galaxy_map - Open the galaxy map. Examples: 'Open galaxy map', 'Show galaxy map', 'Display galaxy map', 'Close galaxy map'
  • toggle_system_map - Open the system map. Examples: 'Open system map', 'Show system map', 'Display system map', 'Close system map'
  • focus_comms_panel - Focus on the comms panel. Examples: 'Focus comms panel', 'Comms panel', 'Open comms panel', 'Focus top panel', 'Top panel', 'Open top panel', 'Focus chat panel', 'Chat panel', 'Open chat panel'
  • open_codex_go_to_discovery - Open the codex and navigate to the discovery section. Examples: 'Open codex discovery', 'Show discoveries'
  • recall_dismiss_ship - Recall or dismiss the ship. Examples: 'Recall ship', 'Dismiss ship'

 FAQs

  • Yes! You will need an API key from Google’s AI Studio. After, you get your API Key make sure to keep it in a safe place.

    https://aistudio.google.com/apikey

  • Your configuration file is located in your AppData folder. Here is an example:

    C:\Users\USERNAME\AppData\Local\WickedWake-Copilot

  • You may have multiple Elite Dangerous key-binding files. Check the Settings > Elite Dangerous tab and pick the key-binding file that you desire.

    There is also a check when the application first starts up. It will tell you if you have any missing keybindings that the bot requires. The message will look similar to the following.

    [ERROR] missing key bindings: ChargeECM, CycleFireGroupPrevious

  • Make sure that you have not changed the Settings > Elite Dangerous > Window Name it should still be the default of Elite - Dangerous (CLIENT).

    Note: you can test key-bindings directly from the app. Settings > Elite Dangerous > Test Bindings

    Simply select the binding from the list and press the Test ED Binding button. You should see the appropriate key pressed in game.

    *Game must be open for any bindings to work.

  • Yes we require a Discord account currently as this is how we are controlling the Alpha and collecting feedback.