On http://wiki.cardhuntria.com/wiki/Searching_the_Inventory are some tips for searching for items in your keep. Note the similarity of syntax to regexes. Inspired by this, I investigated further and have a better idea of how internally the item search works. Each card on an item is used to generate a file with the following lines: The name of the card The abbreviated name of the card (e.g. Thick. Mail for Thickened Mail) The name of the item which the card is from The damage method (Melee/Magic/Projectile/Sonic) The damage type (Piercing, Radiation, etc.) The description, not including italicized flavortext. Underlined text is surrounded by <u> </u> tags. "damage: " and the damage, or -1 if it's not a damaging card. "range: " and the range, or -1 if it has none. "move: " and the move amount, or -1 if it has none. "[null]" egrep is then used on the above file with your input as case-insensitive query, and if an item has ANY cards with successful greps, the item is displayed in your keep. Useful (and not-so-useful) consequences: The query "^Bash$" returns items with the 5-damage bashes, which are incredibly annoying to search for otherwise The query "!$" gives you all Shuffle, Team! thru Sprint, Team! cards. The query ">$" gives all cards with Arcane Spray. Due to a typo, this is the only card which ends underlined. The query "damage: -1" returns all items with at least one non-damaging card. There is no way to return all items without non-damaging cards. There is no way to search for >1 quality at once, or the rarity or token requirements of an item. Suggestion: Concatenate all the above item information into 1 line (with some suitable separator, say "|"), then feed it through egrep.