escapingjail, that app you recommended is pretty good.
Everyone should use it. It displays cards you have left in your deck on the right, with the %chance you'll draw into a card you have 2 remaining and %chance you'll draw into it if you have 1.
On the left it displays what cards your opponent has played (hint: never forget if they've used coin yet again). It also shows the % chance to draw a 1 of or a 2 of.
On top of their cards in their hand, it shows you which cards are from mulligan and it labels and tracks the coin, labels the draw order as well. So if someone has held a card from drawing turn 1, it'll have a 1 underneath it. I think an S designates a draw not from the beginning of the turn.
If they have a secret out, it will show you which secrets it can be.
Last feature I have found useful is a numerical countdown timer for turns. I haven't gotten into the habit of checking it constantly, but it could be used to ensure you start your turn before the rope starts burning if you have a puzzle you're solving and don't want to time out.
I'm a pretty visual oriented person and this deck app has helped me think about what deck my opponent is running and what cards they probably have in their hand.
https://github.com/Epix37/Hearthstone-Deck-Tracker/releases
I have to admit, this type of tool is even more helpful than I thought it would be. And according to ben brode, it is permitted.
One funny thing it does it actually show you which cards you drew on the overlay before it is shown on your screen. I mean, there is nothing you gain from knowing the card half a second early, but that is still pretty neat. It does this for opponent playing cards as well, signifying there is a delay between your client receiving the information and your opponent's animations. You literally don't benefit from this in any real way.