Omni-tools will switch automatically when used on the following if the omni-tool contains an appropriate tool:
Stones (Pickaxe)
Sticks (Axe)
Weeds (Scythe)
Scythe Crops (Scythe)
Dry Tilled Farm Soil (Watering Can)
Artifacts Spots (Hoe)
Trees (Axe if mature, otherwise Scythe)
Stumps (Axe)
Boulders (Pickaxe)
Grass (Scythe)
Ore Panning Spots (Pan)
Watering Can Fill Spots (Watering Can)
Pet Bowls (Watering Can)
Water tiles (Fishing Rod) - this is ignored in favour of watering cans
Farm Animals (Shears or Milk Pail)
Monsters (Melee Weapon) - only if facing monster, default 128 pixels away or less
Tillable Soil (Hoe)
Auto-switching can be tweaked in the config.
Omni-tools will by default have a number in the top-left corner showing how many tools are combined.
Holding down the mod key (default Left Alt) while hovering over the omni-tool will show the names of the combined tools in the tool name.
Here is a video showing some of this in action:
Creating Omni-Tools
Omni-tools are created from the inventory page.
To create an omni-tool:
Pick up a tool
Hover over another tool's slot
Hold down the mod key (default Left Alt)
Place the held tool on the other tool.
An omni-tool cannot be added to another tool this way, but a non-omni-tool can of course be added to an existing omni-tool.
Tools that can be combined include:
Axe
Hoe
Fishing Rod
Pickaxe
Watering Can
Melee Weapon
Scythe
Slingshot
Milk Pail
Pan
Shears
Wand
Tools of the same type cannot be combined. If an existing omni-tool has a tool of the same type as the one being placed, the new tool will be switched with the tool in the omni-tool.
Manipulating Omni-Tools
Omni-tools can be manipulated manually:
from within the inventory page when hovering the cursor over an omni-tool
while equipping an omni-tool with no menu open.
To cycle through the tools press the cycle key (default X).
To remove the current tool from the omni-tool, press the remove key (default Z).
Notes
The mod seems to maintain tool enchantments, but might need more testing.
SMAPI API
See GitHub for the C# mod API.
Config
You can customize this mod by editing the config file or using Generic Mod Config Menu.
Technical
Requires SMAPI.
Implements a Generic Mod Config Menu interface to change config settings in-game.
Compatible with Mod Updater for automatic updates.
Code is at https://github.com/aedenthorn/StardewValleyMods.
If you want to complain or ask for help or help me test my mods, you can visit my Discord server.
A list of all my mods for Stardew Valley is available at https://www.nexusmods.com/stardewvalley/articles/895.