How to use it

Three steps to flying the ship by voice.

1 Turn on the master switch.

Flight and navigation Let D47 press keys in Elite on Let a HOTAS switch operate the ship off Off out of the box. The AI cannot turn this on for you.

2 Say what you want the ship to do.

gear up Ask "lights on" — "hardpoints out" — "scoop away" — "silent running" D47 presses your own Elite binding, once.

! The one that stops people.

Elite must be the window in front. Keys are never sent into another window. Alt-tab away and nothing is pressed at all.
Why it works this way

The parts of your ship that are switches — gear, lights, scoop, hardpoints, the frame shift drive.

1 It presses your keys, not its own.

YOUR BINDINGS the keys you already use IT SENDS THOSE “gear down” presses yours ELITE does the thing Directive 47 has no keys of its own. Change your controls in the game and nothing here needs changing. Your bindings are only ever read.

2 Two switches stand between it and your keyboard.

LET DIRECTIVE 47 PRESS KEYS off until you switch it on panel, hotkey or voice — never the AI AND ONLY WHILE ELITE IS IN FRONT alt-tab mid-command and the rest is dropped, not typed into a browser A companion that could grant itself your keyboard on the strength of a message another Commander sent you is not a companion.

3 When it says no, it says which no.

IT DOES NOTHING IN THIS MODE “Landing gear does nothing while you are in supercruise.” IT IS ON YOUR JOYSTICK “Bind it to a key or a mouse button and I can.” It would rather refuse than say “done” over a key that did nothing. The joystick one is the common case, not the rare one — Elite gives every action a second slot.

It knows which mode you are in because the game says so with every question you ask: the system, the ship, and whether you are in normal space, in supercruise, in hyperspace, docked, landed or on foot. When you are not docked it says that outright, so a station you left a minute ago cannot be answered about as though you were still on the pad. Before the game has said anything at all it claims neither, because a guess about where you are is worse than a shrug.

4 Your weapons are deliberately not on the list.

WHAT IT CAN REACH gear · lights · scoop · hardpoints · FSD supercruise · jump · flight assist · boost NOT YOUR WEAPONS deliberately, and for good Directive 47 reads text from the galaxy that anyone can write. One that can be talked into opening fire is a different kind of problem.

The details

Flies the parts of your ship that are switches: gear, lights, scoop, hardpoints and the frame shift drive.

Ask for it

“gear down” “retract the hardpoints” “lights off” “take us to supercruise”

What you hear back

A command that worked is acknowledged rather than described:

Aye, gear down.

Two or three words — “Aye.”, “Done.”, “Acknowledged.”, “Aye, gear down.” — and never the same one twice running. Which key was pressed is not part of it. You asked for the gear, not for a report on the keyboard.

The key is still in the log, and in the result the AI reads:

Pressed L for the landing gear.

That sentence is the first thing to look at when a command did not do what you asked, so it is kept in the record. It is only kept out of the spoken reply.

A refusal is not terse, because it has something to tell you: it still names the action, the reason and the binding. Nor is the answer to a command with nothing to do — “The landing gear is already on.” is a correction rather than an acknowledgement.

It presses your keys, not its own

Directive 47 has no keys of its own. It reads the bindings you already use and sends those, so “gear down” presses whatever you have landing gear bound to. Change your controls in the game and nothing here needs changing.

Your bindings are only ever read. Directive 47 never writes to them.

You have to turn it on

Let Directive 47 press keys in Elite is off until you switch it on, and it is one of the settings the model cannot reach — it can be changed from the panel, a hotkey, or by voice through the keyword router, but never by asking the AI nicely. A companion that could grant itself your keyboard on the strength of a message another Commander sent you is not a companion.

Keys go out only while Elite is the window in front. Alt-tab to a browser mid-command and the rest of the sequence is dropped rather than typed into it.

And only while you are actually in the game. Elite sitting at its main menu is running and in front, but a keystroke aimed at a ship would land in a menu — so everything that presses keys stays off until you go online, says so if asked, and comes alive the moment you load in. Quitting to the menu mid-sequence stops the sequence the same way alt-tabbing does.

Why it sometimes says no

Two things stop an action, and it tells you which:

Landing gear does nothing while you are in supercruise.

The cockpit is not one mode. Gear, scoop and hardpoints are inert in supercruise, so Directive 47 would rather refuse than say “done” over a key that did nothing.

Hardpoints is on your joystick, which I have no way to press. Bind it to a key or a mouse
button and I can.

This is the common one, not the rare one. If you fly on a stick, most of your ship is on the stick, and there is no key there to press. Bind the handful you want by voice to a key as well — Elite gives every action a second slot for exactly this — and they start working.

An action you have left unbound entirely says so too, rather than failing as silence.

What it can reach

Landing gear, ship lights, cargo scoop, hardpoints, the frame shift drive, supercruise, the hyperspace jump, flight assist, throttle at zero, twenty-five, fifty or seventy-five per cent (“military thrust”), boost, and targeting the next system in a plotted route.

Firing your weapons is deliberately not on this list. Directive 47 reads text from the galaxy that anyone can write, and a companion that can be talked into opening fire is a different kind of problem from one that can be talked into turning the lights on.

Engage

Say engage and you jump. Say supercruise and you supercruise.

The jump has two keys, and Directive 47 will use either. Elite binds a dedicated Hyperspace action and a combined frame shift drive key — the J key, on a stock keyboard layout — that jumps when you have a system targeted and drops you to supercruise when you do not. If your dedicated jump is on the stick where there is no key to press, Directive 47 presses the combined key instead. It only does this with a route ahead of you: with nothing targeted that key would put you in supercruise rather than jump, so it says nothing is targeted and asks you to set a course. With neither key pressable it names both, so you know which one to bind. Separate and supercruise never reaches for the combined key — with a route plotted it would jump, which is the opposite of what you asked for.

These are whole sentences rather than keywords, which matters more than it sounds. The word engage already sits inside three things you could say — engage supercruise, engage boost, engage the frame shift drive — so a companion that reacted to the word anywhere in a sentence would jump when you asked it to boost. Directive 47 matches what you said, all of it, or nothing. “Should I engage?” is a question, and it is answered rather than obeyed.

Take us out

Say take us out while docked and Directive 47 walks the left panel to the launch button.

This one is a menu walk, not a key press, and it is the least reliable thing here. Elite has no launch binding at all — launching is a button on a menu, and Frontier ships no control for it — so instead of pressing your own key, Directive 47 opens the left panel, presses back to leave it, and then down and select on the station menu in the centre, which is where Auto Launch lives. The left panel is only a way of getting to that menu.

It waits for the panel to actually close before pressing anything else, rather than counting on a delay: those two keys sent while the panel is still going away arrive with no menu to receive them, which is exactly how this failed the first time it was flown.

You hear it accept before it starts. Directive 47 says “Taking us out.” the moment the command is accepted — before the first key — and then tells you how it went when it knows: “We are away.” The two sentences do two different jobs. It used to say only the second, and it used to say “Taking us out” for it, spoken after the ship had already left the pad; the whole of the walk and up to thirty seconds of watching for the pad clamps to release happened in silence, which is a long time to sit wondering whether you were heard.

A refusal is still one sentence and it comes straight away. Nothing is acknowledged on a road where no work follows — being told “Taking us out” and then “you are not docked” would be worse than either on its own.

Everything around the walk is checked against the game rather than assumed. It refuses unless you are docked. It confirms the panel is actually open before sending a single direction key, because those keys typed into a cockpit instead of a panel are steering inputs. And it watches for your ship leaving the pad before it claims anything:

I walked the left panel and we are still docked, so assume it did not work.
The panel may not have been where I expected it.

It has its own switch, separate from the others, because it is the one here that works by guesswork.

Separate

Say get clear and jump and Directive 47 goes to full throttle, boosts until the mass lock breaks, and jumps the moment it does. Any pairing works — get clear, get us clear, separate or boost, ending in jump, engage or hyperspace — because the one word you happen to reach for should not be the difference between the manoeuvre and a jump key pressed against a mass lock. Separate and supercruise is the same thing ending in supercruise.

Both answer before the first key goes in — “Acknowledged. Preparing for hyperspace jump.”, or supercruise — for the reason take us out does: the loop below can run for a minute, and silence for that long is indistinguishable from not having been heard. It names the manoeuvre you asked for rather than the mechanism, and when it is done it says the drive engaged and leaves it there. How many boosts it took to break the lock is Directive 47’s business, not yours.

It watches the game rather than counting seconds. Elite reports mass lock continuously, so instead of boosting a fixed number of times and hoping, Directive 47 boosts, looks, and stops the instant the lock clears. If you were never mass locked it does not boost at all.

The gear comes up first if it is down, because deployed gear caps the throttle, stops the boost and keeps the drive from engaging — every other key in the sequence would go in correctly and the ship would stay where it was. If the gear is down and you have no binding to raise it, the manoeuvre refuses before pressing anything rather than pretending.

Then all four pips to engines, which is the one thing it can do about the engine capacitor: Elite does not publish it. The status file says how the distributor is configured and never how much charge is in it, so the capacitor cannot be waited for. What it does instead is press boost once a second — a boost with too little charge is a no-op, so an early press costs nothing and a late one costs you a second beside a station. Pressing every second catches the charge as soon as there is one.

The pips stay in engines afterwards. You asked to leave; what follows a separation is travel.

If you were not mass locked to begin with, none of that happens — no pips moved, no boosts. There is nothing to fight, and where you keep your pips is not this command’s to spend when it does not need them. The gear still comes up, the throttle still goes forward, and the drive engages.

If you have no binding for pips to engines it carries on without them and boosts anyway. That is the only part of the sequence that is optional; every other key is resolved before anything moves, and a missing one stops the attempt before the ship does.

It gives up rather than boosting forever, after a minute, and says so:

Still mass locked after 60 seconds; you may be too close to the station. I have not engaged.

Neither of those endings presses the engage key. Engaging while still mass locked is the thing the limit exists to prevent.

The two have separate switches because they fail differently in the game: a jump needs a destination locked in your nav panel and refuses without one, where supercruise needs nothing.

Set a course and take us out

Say set a course after a nearest-first commodity search — the Community Goal search names one station in full — and Directive 47 plots to the system it just named, the same way it would if you had asked it to plot there by name. Say set a course and take us out and it plots and then walks the left panel to the launch button, exactly as take us out does.

Both act on whatever the search actually found, never a name you say: there is nothing to misrecognise, because nothing is spoken back into it. With nothing found yet, neither phrase has anywhere to route, so the sentence is answered as an ordinary question instead of a course to nowhere.

Plotting is best-effort by design — even on its own, “set a course” can put the system on the clipboard and still not manage to drive the galaxy map itself, and it still answers as a plot that was tried. The compound phrase goes on to launch on that same best-effort basis: only a clipboard failure, which is the one thing plot_course treats as an actual error, stops it short of the pad.

Request docking

Say request docking on your way in and Directive 47 asks the station for permission. Request permission to dock, permission to dock and ask for docking all do the same thing. Take us in does too, and is the one phrase that expects a docking computer: with none fitted it says so and presses nothing, because the phrase promises an approach Directive 47 cannot fly.

This is a blind menu walk, and blinder than taking us out. Elite has no binding for requesting docking — it is a walk through the left panel’s contacts tab — and the status file says only that a panel is open, never which tab is showing or which row is selected. So Directive 47 opens the comms panel, opens the left one, moves along two tabs, selects the contact, goes right into its actions and selects again, then closes the panel. The comms panel goes first so that the next press opens the left panel rather than toggling it shut.

It confirms by the journal rather than by what it can see. Elite writes a DockingRequested event the moment a request goes in, so instead of assuming the walk worked, Directive 47 watches for that event and answers on what it finds:

I walked the contacts panel and no docking request went in.
The panel may have opened on another tab, or the station may not have been
the first contact in the list.

That last sentence names the two failures the walk cannot see. Elite remembers which tab you left the left panel on, and the two tab presses reach contacts from the navigation tab and from nowhere else — left anywhere else, the rest of the walk goes into the wrong tab. And the walk assumes the station is the first contact, so when it is not, the select lands on something else: another ship, a beacon. Nothing in the status file could have warned it of either. The panel closes either way, so nothing is left open on your screen.

Before it presses anything it insists you are undocked, flying in normal space, and have something selected as a destination. Docked, in supercruise, on foot or in the SRV it refuses and names which of those was true. It also refuses with a map or a scanner mode up — the galaxy map, the system map, the orrery, either scanner, the codex — because those take the direction keys for themselves, and the walk pressed into the system map is a worse outcome than being told to close it. Any of the four cockpit panels may be open; the walk starts by switching between two of them.

It has its own switch, separate from the others, for the reason take us out does.

The tool surface, for contributors

control_flight

Operate the landing gear, lights, cargo scoop, hardpoints and the frame shift drive. Only the actions listed as reachable in the current game state will work; anything else comes back with the reason it did not.

{"type":"object","properties":{"action":{"type":"string","description":"Which action to perform.","enum":["landing_gear","lights","cargo_scoop","hardpoints","frame_shift_drive","supercruise","hyperspace","flight_assist","throttle_zero","throttle_25","throttle_50","throttle_75","boost","target_next_route_system"]},"state":{"type":"string","description":"What to leave it in. Elite binds a single toggle, so asking for \u0022on\u0022 or \u0022off\u0022 checks the game\u0027s own report first and does nothing if it is already there. Defaults to toggling.","enum":["on","off","toggle"]}},"required":["action"],"additionalProperties":false}

The enum is the whole group and never changes, which is what keeps the schema byte-identical across turns and prompt caching alive. What is reachable now rides in the live game-state block below the cache breakpoint, and the handler enforces it regardless of what the model asked for.

That block states the flight mode in words — in normal space, in supercruise, in hyperspace, docked, landed, on foot — and in the first three it adds not docked, because the mode alone contradicts nothing an older turn in the transcript claimed. Its header says the same thing about itself: it describes the situation now, and it beats anything said earlier in the conversation. With the flight mode still unknown it makes neither claim.

ship_command

Compound ship commands: leave the pad, break a mass lock and engage, or set a course to what a nearest-first search just found and leave the pad. Spoken only — the Commander reaches these by voice or from the panel.

{"type":"object","properties":{"command":{"type":"string","description":"Which command to run.","enum":["take_us_out","separate_and_engage","separate_and_supercruise","set_course_and_take_us_out","request_docking","take_us_in"]}},"required":["command"],"additionalProperties":false}

Protected, so the model never sees this one. It is registered, and it is left out of the advertisement entirely — which means it costs no tool-surface bytes, and that it is reachable only from the model-free keyword router and the panel. Both facts are deliberate. A spoken command that has to wait for a model round trip is a command given at the wrong moment, and the surface is close enough to its ceiling that a tool nobody needs advertised should not be paying for a place there.

There are four settings rows behind these six values, and every one of them is gated by let D47 press keys in Elite as well, so a Commander who has not allowed key injection at all has not allowed these. Set a course and take us out reads the switch that guards taking us out, since it wraps that exact action — it is two tools run in order, plot_course and then the same launch, rather than a key sequence of its own. Take us in reads the switch that guards requesting docking, for the same reason: it is that walk, under a phrase that also expects a docking computer to be fitted.