How to use it

Two steps to getting the game back in front.

1 Say it, from anywhere.

focus the game Ask "bring Elite back" — "put the game in front" It works while D47 has the keyboard, which is exactly when you need it.

2 Or press the hotkey.

Hotkeys Show or hide the overlay Ctrl+Alt+O Move the overlay Ctrl+Alt+M These are claimed system-wide, so they work with Elite in front.

! The one that stops people.

It cannot start Elite for you. Focus brings a running game forward. With Elite closed there is nothing to bring.
Why it works this way

Bringing Elite back to the front, so flight commands work again.

1 The one action that could not be left to the rule.

ELITE IN FRONT keys go out ANYTHING ELSE IN FRONT every flight command is off That check is the one thing standing between a voice command and your browser. So this is the one action that could not be left to the thing already refusing to act.

2 Windows may refuse, and it says so.

“Windows would not let me bring Elite forward from the background. Its taskbar button should be flashing; click that, or alt-tab.” A background application cannot take the foreground. It can only ask. So you are told, rather than left with a silence that reads like a dead microphone. It works from Directive 47’s own window, and Windows will often refuse it from anywhere else.

There is no way around this that does not involve faking keyboard input at the operating system — which is exactly the thing Directive 47 promises never to do outside Elite.

3 Every phrase is more than one word, on purpose.

“Elite” would have been convenient and is not safe IT WOULD SWALLOW “what is my Elite rank in combat” Elite is the top rank in every career the game has — and the router runs before the model.

Only the spoken phrases reach this. It is not a tool the model can call: your journal, in-game messages, search results and Inara are all untrusted text, and a message that could yank your focus while you were typing is a nuisance at best.

The details

Brings Elite Dangerous back to the front, so flight commands work again.

Ask for it

“set focus to game” “focus the game” “switch to Elite” “back to the game”

Elite is in front.

Why this exists

Directive 47 will not press a key unless Elite is the window in front. That check is the one thing standing between a voice command and typing into your browser, and it is not negotiable.

The awkward consequence is that alt-tabbing away turns every flight command off, and the only way back was the mouse — the one thing you were trying not to reach for. This is the single action that could not be delegated to the thing already refusing to act.

Windows may refuse, and it will say so

Windows does not let a background application take the foreground. A program that does not already have it can only ask, and what usually happens is the taskbar button flashes instead. Directive 47 has no way around this that does not involve faking keyboard input at the operating system, which is exactly the thing it promises never to do outside Elite.

So the accurate version: this works when you ask from Directive 47’s own window, and Windows will often refuse it when you ask from somewhere else. When that happens you are told, rather than left with silence that reads like the microphone having failed:

Windows would not let me bring Elite forward from the background. Its taskbar button should be
flashing; click that, or alt-tab.

It also says when there was nothing to do, for the same reason:

Elite is already in front.

The model cannot do this

Only the spoken phrases above reach it, through the keyword router. It is not a tool the model can call, and that is deliberate: your journal, in-game messages, web search results and INARA are all untrusted text, and anything the model can call, a hostile in-game message can try to invoke. A message that could yank your focus while you were typing is a nuisance at best.

The phrases are all more than one word on purpose. “Elite” on its own would have been convenient and is not safe: the router matches phrases anywhere in what you said and runs before the model, so a bare “Elite” would swallow “what is my Elite rank in combat” and answer it by moving a window. Elite is the top rank in every career the game has.

The tool surface, for contributors

focus_the_game

Brings Elite Dangerous to the foreground. Takes no arguments, and is protected — reachable from the keyword router and never from the model.

{"type":"object","properties":{},"required":[],"additionalProperties":false}

Its own capability rather than a tool on an existing one: the keyword router reaches a capability’s first argument-free tool, so hanging this on a capability that already has one would make it unreachable without a model — which is the configuration it exists for. Re-anchor was the other capability shaped that way, and it was retired in 0.94.0.

SingleInstance calls SetForegroundWindow too and discards the result. That is not evidence this works: a second copy of d47 being launched is one of the cases Windows exempts, and this is not. The foreground is re-read after the call rather than trusting the return value, because it can report success for a call that only flashed.