I use gnucash https://gnucash.org/ plus some custom scripts to convert the different bank statements to a common format that gnucash can import. This takes care of the not having to manually enter data. For cash I send a message with the amount and category to an email address I set up for this. This transaction gets parsed out and saved in a flat file that also gets imported.
Reconciling I do by hand but because I import from the banks, it's usually just a couple of clicks.
I chose to use SQLite as the data store and have run one off SQL to fix some things.
I like that it is quite open to hacking, so if you like that sort of thing, give it a try.
I've tried a lot of stuff over the years, but I always end up back on GnuCash. It's not the prettiest, it doesn't have a bunch of shiny features, and it has some weird bugs[0], but it consistently has gotten the job done for me for almost a decade with no issues.
I don't want exciting technology involved when I'm trying to pay bills.
Reconciling I do by hand but because I import from the banks, it's usually just a couple of clicks.
I chose to use SQLite as the data store and have run one off SQL to fix some things.
I like that it is quite open to hacking, so if you like that sort of thing, give it a try.