So You Want to See What Someone Has Been Looking At
I have dealt with this far too many times over the years. People come to me with a device they need to check and they want everything laid bare. The phrase Aunt Cass Checks Your Browser History Uncensored comes up a lot in forums where people are looking for straightforward solutions without corporate filters or soft warnings. I am going to walk you through how this actually works in practice, what tools people use, and where things go wrong.
The Standard Approach to Aunt Cass Checks Your Browser History Uncensored
The core idea is simple. You need access to the raw browser data stored on a machine. Browsers keep history in SQLite databases that are usually locked while the browser is running. The first step is making sure the browser is closed. I learned this the hard way during an incident response back in 2019 when I kept getting empty results because Chrome was running in the background on a network share drive. On Windows: Navigate to %LOCALAPPDATA%\Google\Chrome\User Data\Default and look for a file called History. There is also History-journal and Web Data if you want form autofill and search history. Copy those files to another location before opening them. The original files are locked while Chrome runs. You can then open the copied History file in any SQLite viewer like DB Browser for SQLite or just query it directly with a command like:
sqlite3 History "SELECT urls.url, urls.title, visits.visit_time FROM urls JOIN visits ON urls.id = visits.url ORDER BY visits.visit_time DESC LIMIT 50;" Chrome stores timestamps in Windows file time format, which is 100-nanosecond intervals since January 1, 1601 UTC. You will need a converter to make it readable. Most tools do this automatically. On macOS:
Get the Full Details

The path is ~/Library/Application Support/Google/Chrome/Default/History. Same deal. Close Chrome first. Copy the file. Query it. On Firefox: Firefox puts its data at ~/Library/Application Support/Firefox/Profiles/[random].default-release/places.sqlite. The schema is slightly different. You query the moz_places and moz_historyvisits tables instead. Timestamps are in microseconds since the Unix epoch, so that is easier to deal with.
On Linux: Same structure as Chrome on macOS. ~/.config/google-chrome/Default/History. I have also seen people use pre-built tools instead of rolling their own queries. Things like BRLC, ChromeHistoryViewer, and Sleuth Kit all work fine. The problem with automated tools is that they sometimes miss deleted history or don't handle edge cases cleanly.
Here is a specific problem I ran into last year. Someone was using Chrome's incognito mode and they assumed that meant nothing was being tracked. Incognito mode does not prevent all logging. If the browser crashed or was force-closed, Chrome sometimes leaves behind partial session data in the Current Session and Last Session files in the same Default folder. I recovered about thirty pages from an incognito tab that way. Do not rely on incognito as a privacy solution if someone is checking your history. Another thing nobody tells you about the standard approach. Encrypted drives complicate everything. If the target machine uses BitLocker or FileVault and you do not have the recovery key, you are looking at a completely different problem. I had a case where the hardware was seized but the disk was encrypted and the key was stored in a password manager on the same machine. I could not access anything until the key was obtained through legal process. There is no clean workaround for that. You either have the key or you do not. There is also the question of syncing. If the user signs into Chrome with a Google account, history is available in the cloud regardless of what is on the local machine. Checking myactivity.google.com with the appropriate credentials will show you everything that was synced. Same goes for Safari iCloud history and Firefox account sync. Sometimes the cloud data is more complete than the local database because local history gets pruned over time. Chrome's default retention is three months for visible history, though the raw data may persist longer depending on disk usage.

If you are doing this for actual investigative purposes rather than just curiosity, there are considerations around chain of custody and admissibility that I am not going to get into here. But for personal use or IT troubleshooting, the SQLite method is about as straightforward as it gets. The main bottleneck is always the closing of the browser first. Miss that step and you waste twenty minutes wondering why your queries return zero rows. I keep seeing posts about Aunt Cass Checks Your Browser History Uncensored on forums and I wish people would just read the documentation instead of looking for magic scripts. The data is there. It is just sitting in plain text inside a SQLite file. You do not need anything fancy to get at it. One more thing that catches people out. Some browsers store data in separate profiles. If the user has multiple Chrome profiles, the history you want might be in Profile 1, Profile 2, or wherever else they decided to put it. Check all of them. I spent an hour searching the Default folder before realizing the person was using a second profile named after their dog.
Also worth noting: if you delete the History file entirely, some systems do not immediately overwrite it. Recovery is possible with the right tools. So if someone is trying to hide something by deleting browser history, they should know that deleting the file is not the same as securely wiping the data. That is a separate topic entirely though. The whole process from closing the browser to reading the results usually takes about five to ten minutes on a live machine. Remote analysis depends on your ability to copy the files without triggering alerts, which is a different conversation.