All rules managed by Caster are tracked in this config file
rules.tomllocated in Caster User Directory
settings folder. This configuration file allows you not only to see what rules are active but change with the whitelist which rules are loaded by Caster during startup. Rules are loaded from Caster User Directory
Rules folder and/or the Caster source code directly typically
Rules can exist in different states:
LoadedDuring startup Caster loads all available rules on startup into the speech recognition engine. If a rule is not loaded, it cannot be
disabled, and the rule's commands cannot be recognized.
Inactiverule state denotes whether or not a rule is available for recognition. For instance if you say
disable Firefox, the Firefox rule will become
Inactive. When the Firefox application is launched, the commands will not be available for recognition until the Firefox rule is set to
- Newly created rules will not be registered in
rules.tomluntil Caster restarts and are
Enabled ordered represents all
active rules. When you
enable the rule, its class name is added to the
_enabled_ordered list. When the rule is
disabled, it is removed from the list. It's a great way to see what rules are currently available. Note: This list should not be modified manually.
A handful of rules get special treatment by the
Grammar Manager as represented in
_internal. These "internal" rules are the rules which are generated by/for Caster loaded content. They do not belong in the set of rules which can be reloaded. You can turn them off, but it is strongly discouraged as they are required for Caster to function.
The number of Caster rules has grown immensely in the past few years, which is great, but means that the initial load time has grown as well. In order to reduce boot time, a WhiteList has been added to allow the user to control which rules get
loaded. Most users will not be using all of the available rules, so it does not make sense to encumber users with unused rules.
New users will be provided a core set of starter rules to get started with and then expected to manage which rules load for them via the
[whitelisted] feature. Rules are defined as true in the Whitelist load when Caster starts. However if a rule is set to false, it is not loaded and therefore cannot be enabled or disabled.
- All rules loaded by Caster including from
AppData\Local\caster\Rules(user made) and
Documents\Caster\castervoice\Rules(Caster Starter Rules) will automatically be added to
trueduring startup when the rule is first detected.
- Caster must be restarted for changes in
[whitelisted]to take effect.
rules.toml is a mock representation of the default settings.
_enabled_ordered shows the default enabled grammars when Caster first starts. Defaults may vary by Caster version and engine.
_enabled_ordered = ["Alphabet", "Navigation", "NavigationNon", "Numbers", "Punctuation", "Keyboard", "CasterRule", "HardwareRule", "MouseAlternativesRule", "WindowManagementRule", "LegionGridRule", "DouglasGridRule", "RainbowGridRule", "SudokuGridRule", "HMCRule", "HMCConfirmRule", "HMCDirectoryRule", "HMCHistoryRule", "HMCLaunchRule", "HMCSettingsRule", "HistoryRule", "ChainAlias", "Alias", "DragonRule", "BringRule", "Again", "GrammarActivatorRule", "HooksActivationRule"] _internal = ["GrammarActivatorRule", "HooksActivationRule", "TransformersActivationRule", "ManualGrammarReloadRule"] [whitelisted] AcrobatRule = true Again = true Alias = true Alphabet = true AtomRule = true Bash = true BringRule = true CPP = true CSSTreeRule = true CSharp = true CasterRule = true ChainAlias = true ChromeRule = true Dart = true Python = true PythonNon = true VSCodeNonCcrRule = true VisualStudioRule = true # Truncated created for brevity