Installation
You can get download Executor for free from the downloads page.
Basic usage
Check out the videos section to get a visual impression of how Executor work.
Executor also has an old presentation page, it can actually be quite inspiring and informative. The non-existing product and marketing teams would probably find it "too wordy" check it out here!
Adding keywords to Executor
There are several ways to add keywords:
- Right-click Executor and select "Add keyword" (or press
Ctrl+ALT+K). If input is not empty, this will be used as default command for the new keyword (if found valid as a command). - Drag-and-drop a shortcut, file, folder, or browser favorite directly onto the Executor text input window. In case Executor is set to auto hide you can disable that temporarily by right clicking Executor and selecting "More...".
- In the Keywords editor screen (
Ctrl+K), drag-and-drop a shortcut/file/folder/favorite onto the list of keywords. - In the Keywords editor screen, drag-and-drop onto an already open keyword editor window to inherit the dropped properties.
- In the Keywords editor screen, right-click the keyword list for a pop-up menu. Select "Import keywords from Windows start menu" or "Import keywords from file...".
- (Note: Executor can automatically index Start Menu items via Settings > Indexing & Cache > "Index start-menu and control panel", making manual import less necessary but offering less control than keywords).
- From the same right-click menu, import keywords directly from an internet URL using "Import
keywords from URL...". Test URL:
https://executor.dk/test.exc - When editing a keyword, use the "Find" button to browse for the target file/shortcut to import as the keyword command.
- Enable the "Add to windows 'Send to' menu" option in Settings > Misc. Then right-click any item and use "Send to" > "Executor".
- Enable auto-import from a URL on startup (Settings > Misc) to share keywords across
installations. Keywords are loaded asynchronously; use the hidden setting
importurlfast=1for synchronous loading (risk of hanging). Imported keywords overwrite existing keywords with the same name. - Btw: Check out the tips section for how to use the keyword editor more effectively.
Fast importing keywords
The import/export file extension for Executor is .exc
- Use the browse imports feature by typing
imports. If you don't have that keyword it can be imported using-i executor.dk/default.exc -iwill import from a URL, with optional URL as parameter.-ifwill import from a file.-iswill open start-menu importer.-exportto export.- Right-click Executor input or keyword editor list for the above options as well.
Here are some quick imports options (copy/paste into Executor's text input field):
-i executor.dk/test.exc- To just test import functionality.-i executor.dk/default.exc- The default Executor keywords (bundled with latest installer).-i executor.dk/extras.exc- Tool collection.-i executor.dk/browser.exc- Using internal browser examples.-i executor.dk/windowkeywords.exc- Window management (more details).-i executor.dk/aiprompts.exc- A collection of different AI prompts.-i executor.dk/web.exc- Popular web discovery and applications.-i executor.dk/google.exc- A collection of Google related keywords.
Note: If importing keywords from somewhere else then this website, pay attention that your not importing something malicious.
Keyword and input formatting notes
- For keyword commands that are URLs, prefix them with
https://(or similar) for clarity, else Executor will try to guess if it's a URL or not. - Sometimes you need to use double quotes
"..."in input, keyword command or parameter. Here are some examples:
Direct input example:c:\program files\editor.exe
Direct input example:"c:\program files\editor.exe" c:\projects\secret
Single keyword example:keyword.command=c:\program files\editor.exe,keyword.parameter=c:\projects\secret
Single keyword example:keyword.command="c:\program files\editor.exe" c:\projects\secret,keyword.parameter= empty
Multi keyword example:keyword.command="c:\program files\editor.exe" c:\projects\secret||https://myprojects.com/secret,keyword.parameter= empty
As for parameters and double quoting, thats up to the program you are running, if double quotes are required or not. - For keywords it's better to use the parameter text field for parameters if possible, instead of putting them in the keyword command text field, and having to potentially use double quotes etc.
Starting multiple Actions with one keyword or input
- A keyword's command field can execute several things, like multiple other keywords, URLs, paths, or programs, by using the separator
||(double pipe). Example:deviantart.com||photoshop||google photoshop update||vscode. - You can do the same in the Executor input field, launching multiple things using the separator
||. - Parameters are passed to triggered keywords. Example: A keyword "supersearch" with command
google $P$||wiki $P$||youtube $P$. Typingsupersearch my bloody valentinewill search Google, Wikipedia, and YouTube for "my bloody valentine". - See 🖼️ this illustration for more information about multiple commands and forwarding to other keywords.
- Consider using the
$W$wait command between commands like thisgoogle $P$W$||wiki $P$W$||youtube $P$, if issues opening things, like for example the browser having problems opening many tabs rapidly, and/or if you want to more tightly control the order of how things open. Btw: the wait command can be fine tuned, see the$W$documentation. - Per default commands are run synchronous from left to right, waiting for the previous command to finish (even if the async option "Don't wait for launch result" setting is enabled). However if you want to launch the commands asynchronously you can add
$ASYNC$once anywhere in the commands. This will launch commands without waiting for the results of the previous command, but the order is harder to control. The$W$wait command is still somewhat supported when using$ASYNC$, but all wait commands will count from start launch, and not from the previous finished command.
If you don't care about what order the commands open but just want them to open as fast as possible adding the$ASYNC$(once, for example at start) will likely open everything faster. Example:$ASYNC$vscode||figma||jira. - You can tell a keyword doing multiple commands not to hide Executor after running the commands by adding
$NOHIDE$anywhere in the command field. If one of the commands opens something that takes the focus away from Executor it will not block that though. - Keyword triggering is not nested; a triggered keyword cannot trigger another (to prevent loops and such).
- Auto-completion and the list have limited support for multiple commands, typically
completing based on the text after the last
||. - The separator can be customized via the hidden setting
separator. - Multiple actions and keyword forwarding diagram:

Special inserted commands ($..$)
These commands can be used in keyword fields (Command, Parameter, Start In, etc.):
$P$: Replaced with the entire parameter part of the user's input. Example: Inputphotoshop -nosplash,$P$becomes-nosplash.$P1$,$P2$,$P3$etc.: Target individual parameters (space-separated).$U$: Same as$P$, but URL-encoded. Recommended for parameters used in URLs (e.g.,http://www.google.dk/search?&q=$U$).$U1$,$U2$,$U3$etc.: URL-encoded individual parameters.||: Separator for multiple commands (see previous section).$W$: Wait 1 second. Use$W5$to wait 5 seconds.$W500ms$will wait 500 milliseconds. Only works in the command part of multi-command keywords (e.g.,photoshop$W$||vscode$W2$||ftplaunches photoshop, waits 1s, launches visual studio code, waits 2s, launches ftp).$M$: Minimize all windows (like Windows "Show Desktop"). Use before launching an app (e.g.,$M$"c:\program files\adobe\photoshop.exe").$R$: Undo minimize all.$DEF$..$DEF$: Define a default to use instead if no parameters are send to the keyword. Example of a keyword command:$DEF$https://google.com$DEF$http://www.google.com/search?hl=en&q=$U${BR}: Can be used to send a line break in the command and parameter keyword field.$D$: Inserts the drive letter Executor is running from (e.g.,D:). Useful for portable setups (e.g., command$D$\tools\winhex\winhex.exe, or skin path$D$\tools\executor\skins\medium_simpler.skn). Relative paths from Executor's folder also work for skins (e.g.,skins\medium_simpler.skn).$H$: Inserts the full home path ofExecutor.exe.$C$: Replaced with the current text content of the clipboard.$CU$: Same as$C$but will also URL encode the text.$CLR$: Clears Executor input after keyword launch. Useful for sensitive parameters.$B$: Open in internal browser (see$BROWSER$for more info).$BN$: Open in internal browser but focus remains in text input (see$BROWSERNOFOCUS$for more info)$PS$,$PS[value]$when used with a keyword command, it writes the parameter as text after command execution to what ever window is active (likely the window that was just opened by the keyword command). Per default there is a 700ms delay, but the delay can also be specified in milliseconds, example of 1500 milliseconds$PS1500$. This can be used as a "hack" to send text to a website or program that normally does not support query parameters etc.$PSE$,$PSE[value]$like $PS$ but also sends a "enter" after the parameter text.$SOUND$..$SOUND$Can be inserted into any keyword command to play a sound file (wav, mp3, wma). Example$SOUND$c:\sounds\pling.mp3$SOUND$.- Environment variables like
%systemroot%,%programfiles%,%temp%,%windir%,%homedrive%,%userprofile%are also supported in keyword properties.
Tool and tasks commands ($..$)
Using these special tags in a keyword's "Command" field provides built-in functionality for tools and
tasks. Many default keywords use these (some start with ?). Not all tool and task
commands have a default keyword. So you have to create it yourself or import it from a keyword
collection. Some of these commands are also ideal for hotkeys (a keyword with a hotkey assigned).
If there is a default keyword it's noted at the start in red followed by the $COMMAND$. You might still have to import the default keyword from one of the various imports available (type "imports").
time,$TIME$: Displays current time/day/date/week. (Format customizable viacustomtimea hidden setting).?lock,$LOCK$: Locks computer or shows switch user dialog.?shutdown,$SHUTDOWN$: Shuts down Windows.?restart,$RESTART$: Restarts Windows.?standby,$STANDBY$: Puts computer in standby (if supported).?hibernate,$HIBERNATE$: Hibernates computer (if supported).?monitor,$MONITOR$: Turns off monitor (if supported).?screensaver,$SCREENSAVER$: Starts the screensaver.apps,$APPS$: Displays list of running applications. You can filter this list by typing additional search text (e.g. apps notepad), and press enter to quickly launch best search match.recent,$RECENT$: Displays recent documents. You can filter results by typing additional search text.history,$HISTORY$: Displays only history items in list. You can filter results by typing additional search text. An example keyword can be imported using-i executor.dk/extras.exckw,$KWHISTORY$: Displays only history items that are keywords (and keyword parameters) in list.ip,$SHOWIP$: Writes current local IP address(es).search,$SEARCH$: Opens Windows standard search dialog.?emptyrecyclebin,$EMPTYRECYCLEBIN$: Empties recycle bin.mute,$MUTE$: Mute/unmute volume.volup,voldown,$VOLUMEUP$,$VOLUMEDOWN$: volume up and down.setvolume,$VOLUME$get, set or adjust volume. Parameters [(+)(-)0-100,empty=get volume]. Examples: +10, -10, 75.next,previous,play,pause,stop,media,$NEXT$,$PREV$,$PLAY$,$PAUSE$,$STOP$,$MEDIA$: Media control keys (work with default media player).gaming1,gaming2,gaming3,$GAMINGTWICE$,$GAMINGTWICESM$,$GAMINGWINOFF$With these you can temporary enable that "Win" needs to be pressed twice to open Executor or Start menu or not none of them. Can be imported from extras.exc (type "imports"). A "g" or "G" will be displayed in Executor while active (but not for small and mini skins). This can also be permanently selected in settings. Executor has to run at as least the same access level as the game, so in case this does not work, you should run Executor as Administrator (or the game should not run as Administrator).$SETPOS$: Sets Executor's position. Syntax:keywordname x,y(Command is$SETPOS$). Look into$WEXECUTOR$for Executor window more options.
Window management:
- Manage the active window. Import from
-i executor.dk/windowkeywords.exc(or type "imports" and select windowkeywords.exc). - See more details on how to use Window management here.
open,close,minimize,maximize,restore,resize,width,height,center,adjust,arrange,xarrange,left,right,top,bottom,$WOPEN$,$WCLOSE$,$WMAXIMIZE$,$WMINIMIZE$,$WRESTORE$,$WRESIZE$,$WMAXWIDTH$,$WMAXHEIGHT$,$WCENTER$,$WADJUST$,$WARRANGE$,$WEXECUTOR$,$WLEFT$,$WRIGHT$,$WTOP$,$WBOTTOM$.
Clipboard and text:
clipboard,$CLIPBOARD$: Lists text items copied to clipboard while Executor has been running. You can filter this list by typing additional search text (e.g. clipboard http).launchtext,$CE$(Clipboard Extended): For hotkey keywords. Copies selected text; if URL/path, launches it; otherwise, launches default keyword (defined byfastsearchin INI, defaults togoogle) with text as parameter. If used on a file or folder it will put that file or folder path in Executors input. Files and folder support can be turned off using the settingcefilefoldersSee hidden settings.$CX$: Like$CE$, but if not URL/path, replaces$CX$in Command field with clipboard text.$CI$(Copy to Input). Should be used with a hotkey. Select some text or a file or folder, then press the hotkey and Executor will become the active window with the text or file/folder-path set in Executor's input field. With the text in the input field you can prefix it with a keyword or navigate the path, or convert the path to a keyword etc. In order for this workflow to work best, you should in Settings > Input tab, enable the setting "Only autocomplete when cursor is at end of text". To use this functionality: Create a keyword, set command to $CI$ and assign it a hotkey.$CC$: For hotkey keywords. Triggers copy, then replaces$CC$with clipboard text.$CCU$: Same as$CC$but will also URL encode the text.textclean,$TEXTCLEAN$: Strips formatting from clipboard text.$TEXTCLEANPASTE$: For hotkeys. Cleans clipboard text and pastes it.pasteprev,$PASTE1$,$PASTE2$,$PASTE3$,$PASTE4$: Pastes item 1, 2, 3, or 4 from clipboard history. Useful with hotkeys (e.g., keyword "pasteprev", command$PASTE2$, hotkeyCtrl+Alt+V).$PASTE$will trigger a system paste. To be used used in combinations with other actions.$COPY$will trigger a system copy to clipboard. To be used used in combinations with other actions.$CUT$will trigger a system cut to clipboard. To be used used in combinations with other actions.$SENDTEXT$: Sends keyword parameter text to the active window. Supports special keys like{ENTER},{BR},{TAB},{F1},{ESC}etc., and variables$TIME$,$SHOWIP$,$PASTE1..4$. Example keyword "signature" command$SENDTEXT$parameterMartin{ENTER}Author of Executor. You can also insert {PAUSE x} (x = milliseconds) to delay output, and {U+xxxx} to send Unicode characters by code, example: {U+1F60A} sends a smiling face.$KEYS$emulating pressing any combination of keyboard keys. To for example trigger global hotkeys in other programs etc. Parameter syntax: a comma separated list ofp[key-value]= push a key,h[key-value]= hold a key,r[key-value]= release a key. Example of pressing WIN+S for windows searchkeyword.command=$KEYS$,keyword.parameter=h91,p83,r91, explanation: 91 is the left-Windows key, 83 is the "S" key. So hold 91, press 83, release 91. Another parameter example pressing the keyboards "mute" buttonp173. Google "Virtual-key codes" for a list of keyboard code values.$CLEARCLIPBOARD$: Clears Executor's clipboard history.?saveclipboard,$SAVECLIPBOARD$: Opens save dialog for clipboard text/screenshot.$CLIPBOARDTONOTES$: Copies current clipboard text to Notes.$ALLCLIPBOARDTONOTES$: Copies all Executor clipboard history items to Notes.$COPYTONOTES$: For hotkeys. Copies selected text and adds it to Notes.
Executor related:
tags,$TAGS$: Lists all keyword tags. Selecting a tag shows its keywords. You can filter this list by typing additional search text (e.g. tags ai) and press enter to quick launch best search result.pin,$PIN$: This can pin an image to the lower right corner of the list, for example a logo, a picture of a loved one, a reminder etc. You can type "pin on" and "pin off" to toggle. Pin an image is available in the Settings "List" tab.refreshindex,$REFRESHINDEX$: Forces index rebuild.notes,$NOTES$: Opens Notes. Supports parameter to add text (e.g., keyword:notes, inputnotes remember milk).startpage,$STARTPAGE$will open the start page (if defined in Settings > Browser)autocenter,autohide,stayontop,lockwindow,$SETAUTOCENTER$,$SETAUTOHIDE$,$SETSTAYONTOP$and$SETLOCKWINDOW$. These will set the respective settings without going to settings or using the context-menu. They can be imported from extras.exc (type "imports"). Parameters supported [on,off,?,(toggle)].holdtext,$HOLDTEXT$can toggle to disable the settings "Clear input on focus" and "Show info" that modifies the input text. This can be assigned to a hotkey, so you can use the hotkey while typing input text. A "H" will be displayed while active (but not on "small" and "mini" type skins).$DATAFOLDER$: Opens folder containingexecutor.inietc.$SETDEFBROWSER$and$SETDEFEXPLORER$can set the default external browser and file explorer used by Executor, that is also found in Settings > Misc. Example of a keyword: name=setchrome command=$SETDEFBROWSER$ parameter=c:\program files (x86)\google\chrome\application\chrome.exe
If you put the parameter value?(parameter=?) it will output the current setting. So you can make a keyword also showing the current default. If leaving the parameter empty then the default will be set to empty. If starting parameter with!followed by file path then no output will be returned.$EDIT$that will open expanded input edit. This keyword can also be assigned a global hotkey.$BACKUP$: to trigger a backup of keywords, history, settings and notes. Executor per default already does a backup every second day.$FLUSHUWP$: Forces full re-index of UWP Apps and shows count found.
Internal browser related:
- Keywords using these commands can be imported by typing
-i executor.dk/browser.exc - Link for developers: Internal browser developer and JavaScript API documentation
$BROWSER$or$B$: This can be handy for viewing simple webpages without leaving Executor. The URL will be displayed in an internal browser in the list, and can be dismissed again by pressing the escape key in Executor's input field, or using$BROWSERTOGGLE$to show and hide the internal browser. Example of keyword command:https://google.com$BROWSER$. Here's another example that also takes a search parameter:http://www.google.com/search?hl=en&q=$U$$BROWSER$. If you want a generic keyword called "open" that opens any URL inside of Executor as a parameter you can use keyword command:$P$$BROWSER$(syntax: open google.com). Per default Executor will try to use Edge WebView2 as the internal browser if available, if not it will fall back to using IE. This behavior can be changed, see hidden settingbrowsermodefor more info.$BROWSERNOFCUS$or$BN$: Will do the same as$BROWSER$, but the text cursor (focus) will remain in the input field and not move to the internal browser view.browserflushall,$BROWSERFLUSHALL$: Clear any stored data in the internal browser (only works for Edge WebView2 and not IE).browsertoggle,$BROWSERTOGGLE$: Show or hide the internal browser (if you browsed anything using the internal browser, else the internal browser is never loaded). This is handy if you for example browsed something in the internal browser, then dismissed it, did some other stuff, and want to look what was in the internal browser again. This of course means that the internal browser is still running in the background. This can also be nice to set up with a hotkey.- Pressing F2 will also toggle showing internal browser. Making a global hotkey tied to a keyword using $BROWSERTOGGLE$ is still a more powerful option though.
browserend,$BROWSEREND$: Will end the internal browser (release from memory etc.), and for people that never wants the internal browser result to be persistent for later viewing, there's setting in "Settings -> Browser", that will always end the internal browser when dismissed.browserclear,$BROWSERCLEAR$: Will clear and hide the current internal browser page (if any).$BCONNECT$adding this with one of the browser open commands allows to set Executor's input and focus from within a webpage. Check thebrowserconnectdemokeyword, by importing the internal browser examples, using-i executor.dk/browser.exc- Developers can check out the Internal browser developer and JavaScript API documentation if interested in how to use the connection via
$BCONNECT$. - You can in "Settings -> Browser" set a "Connect permission security level", that can set what is allowed per default by
$BCONNECT$. Specific keywords can be allowed to bypass this (user will be prompted). If a keyword is given this permission, then in the keyword editor there will be a link to "Remove connect permissions" for that keyword. In "Settings -> Browser" there's also a list of which keywords use$BCONNECT$and a list of which keywords user granted additional access. browserurl,$BROWSERURL$get the current URL of the internal browser session. You can also press F8 in the internal browser, or any Executor webview to get the URL.browserexpand,$BROWSEREXPAND$open current page in full default browser.browserwin,$BROWSERWIN$open current page in a popup window instead, using same session. Shift+F9 same effect when internal browser has focus.browserwinexe,$BROWSERWINEXE$open current page in a Executor popup window instead, using same session. Shift+F10 same effect when internal browser has focus.browserwindowfull,$BROWSERWINFULL$open current page in a Executor fullscreen window instead, using same session. Shift+F11 same effect when internal browser has focus.browserback,browserforward,$BROWSERBACK$, $BROWSERFORWARD$Go back and forward in current internal browser session.browserrefresh,$BROWSERREFRESH$Refresh/reload the current webpage (if any).$BSETFOCUS$Will set focus in current internal browser session if any. Can be combined with other keyword commands, like $BROWSERBACK$, $BROWSERFORWARD$, $BROWSERREFRESH$, $BROWSERTOGGLE$. Example$BROWSERFORWARD$$BSETFOCUS$$BCLICK$..$BCLICK$this can click an element on a webpage. For example you could make a keyword with a hotkey that will click a "voice prompt" button on a website, or a website "start" button etc. For security reasons, if used, it will prompt for permission before proceeding. See more info.Simple syntax:$BCLICK$[querySelector]$BCLICK$example:$BCLICK$#open$BCLICK$will click an HTML element that hasid="open", and$BCLICK$.open$BCLICK$will click the first matchingclass="open". You can separate querySelectors using;to do more than one click e.g.$BCLICK$#button1;#button2$BCLICK$. More info on querySelectors here.
If used in conjunction with one of the open browser commands it will wait for the document to complete.
You can also add a delay$BCLICK$500;#open$BCLICK$will wait 500ms.$BCLICK$500;#button1;600;#button2$BCLICK$#button1 is pressed after 500ms, #button2 after 600ms.
You can do a condition by prefixing first querySelector with?, then if the first querySelector exist, it will click that and do nothing more, and if it don't exist, it will click the next querySelector. Example500;?#button1;#button2you can also add more, like this500;?#button1;?#button2#button3.$BNORELOAD$if the internal browser is already active from the same keyword containing this command, it will not reload the webpage but still run other commands, like for example$BCLICK$.$BNORELOAD$must be combined with one of the following $B$,$BN$,$BROWSER$,$BROWSERNOFOCUS$.$BNEWWIN$will open a new browser window with a specified URL, not using the default browser but the WebView also used for the Internal Browser. Examplehttps://google.com$BNEWWIN$$BNEWFULL$will open a new fullscreen browser with a specified URL, not using the default browser but the WebView also used for the Internal Browser. Examplehttps://google.com$BNEWFULL$- Shortcut keys available in Internal Browser: F1=Open Start Page, F2=Toggle Internal Browser, Shift+F2=End internal browser, F3=Search, F4=Expand input,F5=Reload page, F8=Send current URL to Executor, Shift+F8=Open in default browser, Shift+F9=Expand to external window, F10=Open Expand Input in Executor, Shift+F10=Expand to external Executor window, F11=Center Executor, Shift+F11=Expand to fullscreen external Executor window, F12=Developer tools. Note: The Internal Browser needs to have focus for these to work.
- Shortcut keys available in external Executor WebView windows: F3=Search, F5=Reload page, F6=Open in Internal Browser and close, Shift+F6=Open in Internal Browser, F8=Send current URL to Executor, Shift+F8=Open in default browser, F11=Toggle fullscreen, F12=Developer tools, Escape=Exit fullscreen or close if not fullscreen, Shift+Escape=Close in any case.
- Hint: In "Settings -> Browser" you can find browser related settings, like enable a green dot showing when browser is active in the background and change the browser user agent etc.
- Note: In a WebView context the difference between "external window" and "external Executor window" is the latter is owned by Executor and have the shortcuts mentioned above, but these windows will also close if Executor is closed down.
Show raw content from a URL:
$URLTOINPUT$: This can open a URL and display it's raw context directly in the input field. This does not parse javascript etc. but will show the raw text of the URL.$URLTOLIST$: This can open a URL and display it's raw context directly in the list view and can be dismissed again by pressing the escape key in Executors input field.. This does not parse javascript etc. but will show the raw text of the URL.$URLTOLISTNOFOCUS$: Will do the same as$URLTOLIST$, but the cursor (focus) will remain in the input field and not move to the list.
Show output from command line tools:
$GRABTOINPUT$: Executes a console command and puts its text output into Executor's input field.$GRABTOLIST$: Executes command, displays multi-line output in the list (press Esc to dismiss).$GRABTOLISTNOFOCUS$: Like$GRABTOLIST$but keeps focus on the input field.
Internal tools:
password,$PASSWORD$: Generates password (default 16 chars, incl. num, upper, lower, special). Parameters: length, "no" (excludes special chars). Example:password 20 no.timer,$TIMER$: set a timer. See explained keywords for details.alarm,$ALARM$: set an alarm. See explained keywords for details.stopwatch,$STOPWATCH$: stopwatch functionality. See explained keywords for details.reminder,$REMINDER$set a text reminder, will display a red dot to remind you. See explained keywords for details.dice,$ROLL$: Rolls RPG dice (e.g.,3d6+5). Import "extras.exc".random,$RANDOM$: Random number 0-99 or 0-X. Import "extras.exc".flipcoin,$FLIPCOIN$: Heads or tails. Import "extras.exc".- If looking for calculator then that is not a command see the calculator section.
- In general Executor encourage you to use external tools, or open simple tools from the web in
the internal browser (see
$BROWSER$) if you don't want to leave Executor.
Mouse:
getmousepos,setmousepos x,y,mouseclick x,y,mouserightclick x,y,getmouseposcolor,$GETMOUSEPOS$,$SETMOUSEPOS$,$MOUSECLICK$,$MOUSELEFTCLICK$,$MOUSERIGHTCLICK$,$GETMOUSEPOSCOLOR$: Mouse manipulation commands. Import from-i executor.dk/extras.exc. x, y positions are screen coordinates.- For internal browser clicking see
$BCLICK$in the internal browser section.
Keywords that might need explaining
If you don't have these keywords they can be imported by writing the following in Executor's input:
-i https://executor.dk/extras.exc
stopwatch: Parametersstart,stop. No parameter: starts (if stopped) or shows time (if running).timer: Parametersh:m:sorh:morm,stop. Optional text parameter at end. No parameter: shows time left or syntax. Examples:timer 10(10 min countdown),timer 1:20:30(1h 20m 30s countdown),timer 10 break is over.alarm: Parametersh:morh(supports am/pm),stop. Optional text parameter at end. No parameter: shows time due or syntax. Example:alarm 23:00(sets for 11 PM today/tomorrow),alarm 11pm,alarm 22:00 time to go home.-
reminder: Parametertextas the text reminder. To clear reminder, text should be one of the followingstop, clear,c,-,off. If no text parameter are provided, then the current reminder text will be displayed. When a reminder is set, a red dot will be displayed on top of the input icon (only if icons are enabled). The reminder image can be changed be replacing the file reminder.ico in Executor's executable folder. You can only set one reminder. If you just need to write down more "unscheduled" reminders, you can put them in the Notes features. - (Note: Stopwatch, timer, alarm are simple helpers and not saved when Executor closes).
Keyboard shortcuts
SHIFT+WIN+Zwill bring up Executor (can be reconfigured to your choice in settings).- You can override the default
Winkey, to for example open Executor instead, and if pressing twice still open the Start menu. Read more here. Esckey: Clears current input. If input is already clear, hides Executor (unless auto-hide is disabled and stay-on-top is enabled).Shift+Esc: Hides Executor.Enter: Execute current input or selected list item.Shift+Enter: Run command/keyword etc. as an elevated user (Run as Administrator).Alt+Enter: Open in internal browser (does not support multi command keywords).Ctrl+Enter: Open expanded input edit (multiline).Ctrl+Space: Use Input Assist feature.Up,Down(arrow keys) orTab,Shift+Tab: Scroll next/previous in auto-completion items.Shift+Del: Deletes current input text from history.- In the list, press
Deleteto delete the highlighted item from history. Ctrl+Tab: Move to next delimiter.Ctrl+Shift+Tab: Move to previous delimiter (tab behavior can be switched in settings). Pressing this on an indexed item replaces it with its file path.Ctrl+Left Arrow,Ctrl+Right Arrow: Move text cursor to next/previous delimiter.Ctrl+K: Open keywords editor.Ctrl+S: Open settings.Ctrl+N: Opens the built-in Notes.Ctrl+Alt+K: Add a keyword dialog (current input will be evaluated, and if found fit will be used as the new keyword command).Ctrl+O: Open the currently entered keyword in the keyword editor.- Right-clicking the Executor window shows a context menu with some keys and additional options.
F1: Show online documentation. Can also be mapped via a setting to show start page instead.F2toggle showing internal browser if active.Shift+F2End internal browser if active (also in background).F3Set focus in input field (or Search if focus is in Internal browser).F4, F10Open expanded input edit (multiline). F4 requires a setting that is default on newer installs.- In the list (with "Quick launch" disabled), hold
ALTorCTRLto launch an item directly instead of just selecting it. If Quick launch is enabled, holdingALTorCTRLdoes the opposite (selects instead of launching). - In the list, press
Left/Rightarrow keys to select an item without launching it, placing the text cursor at the end. F9: Show the Windows context menu (right-click menu) for the current text input or the highlighted item in the list.Ctrl+E: List the folder/items of the current input (keyword, variable, indexed item). Also works on the highlighted item in the list. Example: Typemycomp(default keyword) and pressCtrl+E.Ctrl+D: Open the folder containing the current item (file path or resolved keyword target). Also available via right-click menu.Ctrl+R: Reverse-i-search like functionality. Shows a list of partial matches (wildcard search). Type search criteria first, then pressCtrl+R. Can be toggled in settings to be always on.Ctrl+I: Open start menu importer.Ctrl+U: Import keywords from a URL.F8: Copy full path to clipboard of current item in input.Shift+F8: Expand path of current current item in input.F11: Center Executor on current screen.Shift+F11: Center Executor on the primary screen.- Standard copy/paste/select keys (
Ctrl+C,Ctrl+V(not P),Ctrl+A,Shift+Ins,Ctrl+Insetc.). Alt+DownorF4Open list (if not already open) with auto-completion items for current input, in case it's not already open. F4 might be mapped to expand edit instead via a setting.Shift+DownorF5: Open list (if not already open) with entire history/keywords (order can be toggled).Ctrl+T: Shows the current item description (if any) for the current input (most skins show this by default).Ctrl+Spacein the keyword editor input fields to get suggestions for commands, keywords and Windows variables.- Internal Browser: F1=Open Start Page, F2=Toggle Internal Browser, Shift+F2=End internal browser, F3=Search, F4=Expand input, F5=Reload page, F8=Send current URL to Executor, Shift+F8=Open in default browser, Shift+F9=Expand to external window, F10=Open Expand Input in Executor, Shift+F10=Expand to external Executor window, F11=Center Executor, Shift+F11=Expand to fullscreen external Executor window, F12=Developer tools. Note: The Internal Browser needs to have focus for these to work.
- External WebView windows: F3=Search, F5=Reload page, F6=Open in Internal Browser and close, Shift+F6=Open in Internal Browser, F8=Send current URL to Executor, Shift+F8=Open in default browser, F11=Toggle fullscreen, F12=Developer tools, Escape=Exit fullscreen or close if not fullscreen, Shift+Escape=Close in any case.
Fixed input commands (-)
Typing these directly into Executor's input field. Just typing "-" will also list these in Executor.
#: (prefix): Calculator (e.g.,#5*10)-sor-settings: Open Settings (Ctrl+S).-kor-keywords: Open Keywords editor (Ctrl+K).-aor-add: Add a new keyword (Ctrl+Alt+K). Optional parameters -add [name] [command] p:[parameter]. Some examples:-add r,-add r https://reddit.com,
-add mynewprogram c:\somepath\newprogram.exe p:-debug.-xor-qor-quit: Close Executor.-?Open documentation.-n: Open Notes. Supports text parameter (e.g.,-n remember milkadds "remember milk" to notes).-i: Import keywords form a URL (URL as optional parameter). Like-i https://executor.dk/test.excor-i executor.dk/test.excThis will open an import editor, where you can select which of the keywords to import. If you leave out the protocol in the URL it will default to "https://".
Using parametersstart,s,smwill open the Windows Start Menu importer instead.-is: Open the Windows Start Menu importer.-if: Import keywords a from file.-export: Open the keywords exporter.-vor-version: Show Executor version info.-mor-menu: Open context menu.-abor-about: Show the About screen.-edit: Close Executor and openexecutor.ini.-folderor-f: Open the AppData folder containingexecutor.ini.-exefolderor-ef: Open the folder containingexecutor.exe.-report: Generatereport.txt(next toexecutor.ini) with debug info.
Integrated Calculator (#)
- Start input with
#. Example:#52*10+14 - Supports:
+,-,*,/,^(power),abs,sqrt,sqr,sin,cos,arctan,ln,log,exp,fak(factorial), constantspi,e, variablex. - Set a variable
xby starting with#x=[value](space after value). - To get result in HEX, start with
hexample#h100+100. - To get result in BIN, start with
bexample#b256. - To get result for currency, start with
cexample#c4*55.50(currency is max 4 decimals). - Example:
#5+5 - Example:
#100000^(1/5)*cos(pi) - Example:
#(21*5)+(51/2)/2 - Example:
#x=403 exp(cos(-2*Sqr(x) - 4*x+ 3))/(1/(x+0.01)) - The calculator defaults to a precision of 10 using a general format. This can be changed in hidden settings, see
calcformat.
Indexing and list
- If enabled (Settings > List), dynamically adds Start Menu items, Control Panel items, etc., to the list. These are not keywords and are not saved.
- Matches all words in an item (e.g., typing
firematches "Windows Firewall"). Useful as items often have prefixes (e.g., "Adobe Photoshop"). - Items are detected on startup and refreshed on focus (if idle > 2 min, configurable via
refreshindexhidden setting). Detection runs in a low-priority background thread. - Items are sorted using Executor's internal logic.
- Independent of any Windows indexing service.
- If disabled, uses no resources for detection/refresh.
- You can configure in settings and hidden settings how, when, where and what to index. You can also exclude certain items.
- You can run the "List appearance wizard" (in Settings > List) to change font and font sizes. Colors can also be changed in "Settings > Visual / skin".
Keyword editor
Filtering:
- Filter across all keyword properties and also support limiting the filtering to a specific property.
- Ctrl+space and right-click can be used for a list of properties and presets.
- You can show/hide the filter panel by clicking five small dots in the panel (setting will be remembered on shutdown).
- If you minimize the filter panel while there's an active filter, the five dots area will have a background color to indicate this.
- For property filtering, double quotes can be used for exact match
keyword:"google", and left wildcard, e.g.keyword:*ooglecan be used for "contains" filtering. - By default, a right wildcard search will always be used (unless double quotes are used).
- By default, filtering for keyword names and tags uses a "starts-with" match (e.g., text*). For the properties command, parameters, comments, hotkey and start-in, filtering uses a "contains" match (e.g., *text*).
- You can search for empty values using "". For example
comment:""will list all keywords with an empty comment field. - The
icon:filter in the keyword editor supports "starts-with" using the icon filepath. So for exampleicon:c:\iconswill show all matches where the icon is located in c:\icons - Any column sorting done by clicking the list header columns while filtering, won't be saved (so no effect on keyword order).
- With the setting
defaultfilterin executor.ini, you can set a default filter that is used when no filter is entered. This can for example be set toenabled:if you don't want disabled keywords to be displayed. In this case you can still typedisabled:in the filter input field to view disabled items.
Input Assist
Press "Ctrl+Space" to trigger "Input Assist". A contextual popup for input text, that for example helps you quickly swap often used keywords without losing/modifying the parameter text. Check out the video.
- Input Assist have seven modes: "history:keywords" (keywords in history), "match:[text]" (keywords matching text by name, tag or description), "same tag as:[keyword]" (keywords with same tag), "history:url" (URLs in history), "history:path" (file/folder paths in history), "history:indexed" (indexed items in history), "history:keywords(params)" (keywords supporting parameters in history).
- Switch modes by pressing Ctrl+Space again, or click the bottom mode description or right-click popup anywhere.
- It matter where your text cursor is when pressing Ctrl+Space, and the current input text. Modes available will be determined and ordered by the current input, detecting if it is a keyword or not, and if there's currently any parameter text in the input text.
- If the current input text has a parameter text, only keywords supporting parameters will be listed.
- When the Input Assist popup has focus you can type text (silently, won't be displayed) to search the Input Assist items.
- Listed items are sorted by the order in history and/or in Keyword Editor (and a combination of these in some cases).
- Works in both the standard input field, and in the expand input field (multiline).
- Will automatically switch to next mode if no results are found, or only the current input is found as one result.
- Font size can be changed in executor.ini file by setting
assistfontsize. See hidden settings for more info.
Settings help
You can find a short description of all settings available in the user interface here.
Executor has many hidden settings not available in the user interface. These are either too niche for the average user, or experimental etc. Explore hidden settings here.
Executor File Command Line Parameters
Executor.exe accepts these parameters:
"[filepath]": Opens the keyword editor with the specified file path pre-filled for a new keyword. Exampleexecutor.exe "c:\program files\myproject\demo.exe"-exit: Closes any currently running Executor instance.-r [input]run Executor input from command line. So you can trigger keywords or any other input from a command line. Example command line:executor.exe -r google best series right now. There's a .cmd file installed by default to make this easier, calledrunexe.cmd. Can be run likerunexe google best series right now- The input will not be added to Executor's history.
- If Executor was not already running, it will keep running after using
-r. - Input text should be entered just like you would enter it in Executor (so special command line parameter double quoting is not required).
-s: Start Executor silently (minimized) if auto-hide is enabled.-safemode: Starts Executor in a safer state (disables indexing, caching, skin, auto-import, startup keywords; forces no network path resolve).-wizard: Forces the setup wizard to display on startup.- Note: None of these parameters can be combined.
Integrations
Executor's mission is to be an expert in opening the world instead of trying to put the whole world inside of Executor (as some alternatives try to do). Not relying on extensions and plugins that constant break etc. See the Stay on target statement for more info. Executor does however allow you to open a webview (internal browser) inside of Executor, giving you the full power of a browser to build about anything within Executor, as well as some JavaScript functionality for the internal browser to interact with Executor.
- Internal browser: Show and interact with anything that can run in a browser
within Executor. Want
to show the weather forecast inside of Executor? Look at the
$BROWSER...and$BCONNECT$tool commands. They can basically show and interact with a website that supports responsive design, or you can make your own webpage and host it online or locally. So if you for example want to make a nice looking 3D MD5 generator running inside of Executor without any annoying adds, you can do so. :-) Developer docs. - Hotkeys: Every keyword can be assigned a hotkey. If your external application, program etc. is able to trigger hotkeys (Like for example VSCode and Stream Deck) this a sneaky way of integration. For example assign a keyword some exotic hotkeys you would never really press (unless you also want to use it as global hotkey).
- Command line tools: Grab output from a command line tool and show within
Executor. Look into the
$GRABTO***tool commands. - Get raw text from URL: Get some raw text from a URL and show inside of
Executor. Look into the
$URLTO***tool commands.. - Executor command line: run Executor input from command line. So you can trigger
your keywords etc. from a command line. Example command line:
executor.exe -r google best series right noworrunexe google best series right now. See command line parameters for more info. - Trigger the global hotkeys of other programs by using
$KEYS$. To for example trigger actions in AutoHotKey or Stream Deck etc.
Hints & tips
- See the full Tips and tricks page for more tips.
- Executor has many hidden settings not available in the user interface. These are either too niche for the average user, or experimental etc. Explore hidden settings here.
Random notes
- Executor is not a super search and super indexer, there are better dedicated tools for that. It's tempting to move Executor in that direction, but need to stay on target.
- If a command fails, input text turns red (or custom
failcolor). - Windows versions older than Win 7 might need the 32bit v0.99.12b for best compatibility (see "Other downloads" on the downloads page).
Frequently Asked Questions
I found a bug. Where should I report it?
Answer: Please use the "issues" on the Executor community on Github. Also, consider using the
-report command in Executor to generate a helpful debug file.
Keyword command doesn't work.
Answer: Review the Keyword Formatting Notes section.
Can I make extensions and plugins?
Answer: Check the integrations section.
Do I need to create keywords for the programs I use? Can Executor scan these automatically?
Answer: Per default Executor will scan the start menu and add these. If you however
want more control, you might want to convert some of them to keywords. In Executor type
-is or press CTRL+I to open. You can also open the Keyword Editor
(Ctrl+K), right-click list and select "Import from Windows Start-menu". If you want to look into the automatic
indexing of the Start-Menu, look in Settings > Indexing & Cache.
Auto indexing is enabled but some Windows apps aren't found.
Answer: Ensure you have the latest version. v1.0.3+ supports UWP Apps (Windows Store apps) on Win 10+ if Executor bitness matches OS bitness (e.g., Win10 64-bit + Executor 64-bit). Security settings might interfere. For workarounds, see this forum post on the legacy forum.
I can't resize Executor.
Answer: Make sure the setting "Lock position and size" is not enabled in order to resize, also the skin types "alpha" and "medium" does not support resizing.
The input and list windows have a slightly different width.
Answer: This is a known problem. If you are not using the High DPI version and you have Windows > Display > "Layout and Scale" set to more than "100%"". It's worse in Windows 11 then previous versions. You should run the High DPI version instead.
Some settings are unclear.
Answer: Find descriptions for all settings here.
Where is Executor's INI file?
Answer: In your user's AppData folder (Win7+:
C:\Users\[username]\AppData\Roaming\Executor). You can type -f in Executor to open
this folder, or -edit to open executor.ini directly.
Can I switch between the regular version and the High Dpi version without any problems?
Answer: Yes, just run the installer again in order to choose between the standard and High DPI version (no need to uninstall). If you are running the portable version both "executor.exe" and "executor-highdpi.exe" is available, just run the one you would like.
Can I get/help with translations?
Answer: Executor is currently English only. The focus is on English as a common language for computing, and the original founding language of the free Internet.
How do I run Executor portably?
Answer: Copy the Executor program folder. Executor doesn't use the registry. See
next question regarding the INI file location and the $D$ special command description.
How do I run portably with the INI file in the program folder?
Answer: Executor checks its own folder (where executor.exe is) for
executor.ini first. Copy your existing INI file or create an empty one there, and
Executor will use it instead of the AppData location.
How do I create my own skin?
Answer: Check out the skins and appearance section here.
"Open URLs maximized" is set, but keyword URLs don't open maximized?
Answer: Keywords have their own "Open as" setting. The main option only affects URLs typed directly into the input field.
How do I execute a file path with parameters?
Answer: Enclose the program path/name in double quotes. Example:
"c:\windows\notepad.exe" c:\windows\win.ini. See the Keyword Formatting Notes section for more hints on formatting.
Does Executor only support western fonts?
Answer: You can set the font script (e.g., Cyrillic, Hebrew) in Settings > Visual / skin > Font button.
I have trouble opening Executor.
Answer: Try running using the -safemode command line parameter (search for safemode on this page).
I can't see/find the Executor window after launching.
Answer: It might be off-screen (e.g., from a disconnected monitor). Press Executor's
hotkey, then press Shift+F11 to center it on the primary display. Else you can try safemode (see above).
Does Executor make a backup, and how do I restore it?
Answer: Yes every second day Executor makes a backup in it's data folder (type -folder to open the data folder). Executor makes a backup of executor.ini (keywords and settings) and notes.txt (notes, if used). The backup files are named executor.ini.bak and notes.txt.bak. In order to restore the backup, make sure Executor is not running (you can close Executor by typing -x). Now move, rename, copy or delete the current executor.ini and notes.txt, and then rename executor.ini.bak to executor.ini, and notes.txt.bak (if it exist) to notes.txt.
Windows Defender identify Executor as Threat:Behavior:Win32/Execution.A!ml or as some other threat.
Answer: This seem to happen (but not always) if you enabled cloud protection and automatic sample submission in Windows Defender. Then some automated machine learning check might identify Executor as dangerous, most likely due to the nature of Executor being able to do a lot of things that might resemble malicious designed code. I hope at some point I feel financially on top to code sign Executor again, so Windows will be less mistrustful, feel free to donate to make that happen.
Do I need to run Executor as Administrator?
Answer: No, but if you want modify the Windows key to for example open Executor, it will work better. If not then when pressing "Win", the Start menu will still show if an app that is running as admin has the focus, like the Task Manager or RegEdit. In this case when the focus is moved to the Start menu (that is not running as admin) the keys will work again without running as admin. So with some key configurations you just have to press twice for Executor when this happens. You can check YouTube or ask an AI how to run Executor as admin without seeing the confirmation dialog every time it's run.
Sometimes Executor freezes up. For example if I'm editing a URL and removing https:// then when the input starts with // Executor freezes.
Answer: This is because // in Windows is a network path prefix, so Executor is trying to lookup the network path (Windows is notoriously slow and freezing doing this). You can avoid this by in "Settings -> General" enabling "Don't try to resolve network paths".
I want to run Executor on an old Windows version like Windows Vista, Windows XP etc.
Answer: Executor had a previous 32bit popular stable version 0.99.12b, or try an even older version. You can download it from the previous versions folder.
Besides being able to delete all internal browser data, is it possible to delete only for a single site?
Answer: There's currently no command for this, but you can open the site in the internal browser, right-click the internal browser and select "inspect" (or press F12). This opens a DevTools window where you can select "Application". From here you can delete/modify data (cookies, storage, cache etc.) for only the specific site.
How can I tell if I'm running the High DPI version or the standard version?
Answer: Open Executor and type "-v" to see version info. If it's the High DPI version it will have the text "hdpi" as part of the version info.
Is MCP support going be added?
Answer: Yeah probably, but don't blame Executor when your computer has been totally dominated by AI :-) If you are impatient you can bascially build the MCP support yourself, Executor can be called from the command line or from the internal browser using the $BCONNECT$ (but with some limitations), and you can parse executor.ini and some other interesting files (like the index cache etc.) in the executor data folder.
Executor's indexing is not as good/fast as X,Y,Z.
Answer: Executor is not really a power "search and find" tool, it's more of a power "open" tool (see the "Stay on target" mission statement on the home page). There are some excellent "search and find" tools out there (even Windows start menu), that have put a ton of effort into optimizing for speed, and great deep searching features and options (file content, mails, metadata, properties etc). You should have Executor open tools like these to deep search for items, and consider adding what you find to Executor as a keyword, or open it via Executor (to be available in history) or add to indexing, in case it's something you open often.
How about adding tabs to the internal browser?
Answer: Executor don't want to become a full fletched browser (see the "Stay on target" mission statement on the home page). There are a ton of nice browsers already. The internal browser is mostly for search, prompts, smaller quick information lookup, tool web pages and integrations, and not for online shopping etc. If you have something in the internal browser you want to open in a full browser, you can use $BROWSEREXPAND$, $BROWSERWIN$ and $BROWSERWINEXE$ commands. Can be imported as keywords using -i executor.dk/browser.exc
How about data privacy?
Answer: The non-"Internal Browser" part of Executor have no built-in "call home" data collection, for tracking, analytics or "diagnostics" etc. If you use the Internal Browser it is using the Microsoft Edge browser WebView2, which has it's own data privacy settings, and of course like most browsers any webpage you load in the Internal Browser can do all sorts of tracking/cookies etc.
How about a Mac or Linux version?
Answer: Perhaps.
Architecture question: Why are skins and images supporting .bmp (32bit with alphablending), .ico and .jpg, and not supporting .png, .gif and .svg?
Answer: It's a discipline to keep the codebase and memory usage lean, and not bloat it with too many libraries, although tempting. Lately a png library was added, but haven't been rolled out to the entire app yet. It's on the todo list.
Architecture question: Why use Edge as the internal browser?.
Answer: Edge is already installed on most systems and of decent quality nowadays. It's kept updated with security patches (so Executor doesn't have to take care of that). Maybe in future versions there'll be an option for using other web-view engines.
You can find more Executor tips here.
Cheers

