1History is a command line tool to backup your histories of different browsers into one place

Overview

1History

https://img.shields.io/crates/v/onehistory.svg https://github.com/1History/1History/actions/workflows/CI.yml/badge.svg

All your history in one place.

1History is a command line tool to backup your histories of different browsers into one place.

Features

  • Support Chrome/Firefox/Safari on macOS/Linux/Windows
  • Rich dashboards to visualize your history
  • Export as CSV file
  • Entirely offline, No need to worry about privacy leaks
  • Well-designed schemas to avoid history duplication when backup multiple times
  • No NPM, 1History is a single binary built mainly in Rust đŸĻ€

Screenshots

Daily Page View

screenshots/daily_pv.png

Top 10 Title

screenshots/top10_title.png

Top 10 Domain

screenshots/top10_domain.png

Usage

onehistory 0.1.0

USAGE:
    onehistory [OPTIONS] <SUBCOMMAND>

OPTIONS:
    -d, --db-file  <DB_FILE>           Database path [env: OH_DB_FILE=] [default: ~/onehistory.db]
    -h, --help                         Print help information
    -v, --verbose
    -V, --version                      Print version information

SUBCOMMANDS:
    backup    Backup browser history to 1History
    export
    help      Print this message or the help of the given subcommand(s)
    serve     Start HTTP server to visualize history
    show      Show default history files on your computer

Backup

USAGE:
    onehistory backup [OPTIONS]

OPTIONS:
    -d, --disable-detect
            Disable auto detect history files

    -D, --dry-run


    -f, --history-files <HISTORY_FILES>
            SQLite file path of different browsers(History.db/places.sqlite...)

    -h, --help
            Print help information

backup is the main subcommand, it will import browser history into 1History.

1History will automatically detect history of different browsers by default, users can use show subcommand to check what it can find.

Users can also use -f option to set other history files to backup, the file has the following naming convention:

Browser History Filename
Chrome History
Firefox places.sqlite
Safari History.db

Serve

After backup browser history into 1History, the next step is to visualize those data.

serve subcommand will start a HTTP server at http://127.0.0.1:9960, open this in your browser to explore.

Installation

Homebrew

brew install 1History/onehistory/onehistory

Binaries

The release page includes precompiled binaries for Linux, macOS and Windows.

Cargo

cargo install onehistory

Roadmap

  • [ ] Search by title or url

FAQ

Error code 5: The database file is locked
This error happens if your browser is opened during backup, as SQLite allow only one open connection.

Close the browser is one solution, or you can copy history file to other directory other than default location.

LICENSE

Copyright (c) 2022 Jiacai Liu

1History is distributed under GPL-3.0 license.

Comments
  • feat: add {chromium,edge} + browsers flatpak variant

    feat: add {chromium,edge} + browsers flatpak variant

    I tried to verify as much variants as possible

    ❯ cargo run show
       Compiling onehistory v0.2.1 (/home/pj/.dev/github.c/1History/1History)
        Finished dev [unoptimized + debuginfo] target(s) in 11.27s
         Running `target/debug/onehistory show`
    [2022-04-26T23:06:55Z INFO  onehistory] found:/home/pj/.var/app/com.google.Chrome/config/google-chrome/Default/History
    [2022-04-26T23:06:55Z INFO  onehistory] found:/home/pj/.var/app/com.google.ChromeDev/config/google-chrome/Default/History
    [2022-04-26T23:06:55Z INFO  onehistory] found:/home/pj/.config/chromium/Default/History
    [2022-04-26T23:06:55Z INFO  onehistory] found:/home/pj/.config/chromium/System Profile/History
    [2022-04-26T23:06:55Z INFO  onehistory] found:/home/pj/.var/app/org.chromium.Chromium/config/chromium/Default/History
    [2022-04-26T23:06:55Z INFO  onehistory] found:/home/pj/.var/app/com.microsoft.Edge/config/microsoft-edge-beta/Default/History
    [2022-04-26T23:06:55Z INFO  onehistory] found:/home/pj/.mozilla/firefox/5wdok4ui.default-default/places.sqlite
    [2022-04-26T23:06:55Z INFO  onehistory] found:/home/pj/.var/app/org.mozilla.firefox/.mozilla/firefox/3jjtwaln.default-release/places.sqlite
    [2022-04-26T23:06:55Z INFO  onehistory] found:/home/pj/.var/app/com.brave.Browser/config/BraveSoftware/Brave-Browser/Default/History
    [2022-04-26T23:06:55Z INFO  onehistory] Total:9
    
    opened by panekj 6
  • onehistory backup error

    onehistory backup error

    I download 1History_v0.2.1_x86_64-apple-darwin.zip and run on macOS 12.2 command ./onehistory backup output:

    ➜  1History_v0.2.1_x86_64-apple-darwin ./onehistory backup
    [2022-02-11T04:41:19Z ERROR onehistory] /Users/xxx/Library/Safari/History.db persist failed, err: open
    
        Caused by:
            0: /Users/xxx/Library/Safari/History.db
            1: unable to open database file: /Users/xxx/Library/Safari/History.db
            2: Error code 14: Unable to open the database file
    [2022-02-11T04:41:24Z ERROR onehistory] /Users/xxx/Library/Application Support/Google/Chrome/Default/History persist failed, err: open
    
        Caused by:
            0: detect /Users/xxx/Library/Application Support/Google/Chrome/Default/History
            1: database is locked
            2: Error code 5: The database file is locked
    [2022-02-11T04:41:24Z ERROR onehistory] /Users/xxx/Library/Application Support/Google/Chrome/Guest Profile/History persist failed, err: open
    
        Caused by:
            0: detect /Users/xxx/Library/Application Support/Google/Chrome/Guest Profile/History
            1: Query returned no rows
    [2022-02-11T04:41:24Z ERROR onehistory] /Users/xxx/Library/Application Support/Google/Chrome/System Profile/History persist failed, err: open
    
        Caused by:
            0: detect /Users/xxx/Library/Application Support/Google/Chrome/System Profile/History
            1: Query returned no rows
    [2022-02-11T04:41:24Z INFO  onehistory] Summary
        Found:0, Imported:0, Duplicated: 0
    

    when I use ./onehistory serve, Chrome show {"code":500,"message":"min_max_time"}

    opened by Panway 3
  • there is no Microsoft edge history

    there is no Microsoft edge history

    ➜ ~ onehistory show [2022-02-16T13:06:47Z INFO onehistory] found:/Users/ilangge/Library/Safari/History.db [2022-02-16T13:06:47Z INFO onehistory] found:/Users/ilangge/Library/Application Support/Google/Chrome/Default/History [2022-02-16T13:06:47Z INFO onehistory] found:/Users/ilangge/Library/Application Support/Firefox/Profiles/dbrjzh8l.dev-edition-default/places.sqlite [2022-02-16T13:06:47Z INFO onehistory] Total:3

    the default browser on my macos is microsoft edge,but there is no history with 1History backup . Why ? there also is no document to info how to backup edge history .

    opened by anuxs 2
  • Can not build project

    Can not build project

    $ cargo run
    error: the 'cargo' binary, normally provided by the 'cargo' component, is not applicable to the '1.58-x86_64-unknown-linux-gnu' toolchain
    

    May be change to 1.58.1 toolchain channel?

    opened by balroggg 2
  • Google sheets and docs show way more visits than they should

    Google sheets and docs show way more visits than they should

    I was looking at my data and a spreadsheet I used for an hour had several hundred visits. Im not sure if this is an issue with 1history or the way browsers store page visits from sheets

    opened by Akari202 1
  • v3.0.0 precompiled binaries for Windows have not been released

    v3.0.0 precompiled binaries for Windows have not been released

    opened by sounisi5011 1
  • Can not find firefox db file

    Can not find firefox db file

    On my system I can not find Firefox db file

    https://github.com/1History/1History/blob/1dbfc658c41c29a3c4f0b756fd60189bc27fd6f5/src/util.rs#L41

    May be change glob to ".mozilla/firefox/*.default*/places.sqlite" ?

    opened by balroggg 1
  • Add a progress bar for import

    Add a progress bar for import

    Please add a progress bar for the import step. It took 30 minutes to import "Imported:304535" items (Firefox latest on Linux). I thought the app had crashed or was stuck.

    enhancement good first issue 
    opened by marcbelmont 0
  • Feature Request: Repopulate charts when you filter out a domain

    Feature Request: Repopulate charts when you filter out a domain

    Current Behavior:

    When you click on a top 10 object it filters it out of the chart leaving it with the top 9

    Desired Behavior:

    When you click on a top 10 object it filters it out of the chart and promotes the 11th ranked object so that their are still 10 in the chart.

    opened by tuxruffian 1
Releases(v0.3.1)
Owner
null
LinkFree CLI is a command line tool that helps you to create your LinkFree profile through CLI.

LinkFree CLI LinkFree CLI is a command line tool that helps you to create your LinkFree profile through CLI. Demo Using the CLI (Commands) Note First

Pradumna Saraf 32 Dec 26, 2022
Generate a Node.js command line tool from an OpenAPI definition

OpenAPI Commander Generate a Node.js command line tool from an OpenAPI definition using the commander library. Example usage Usage: Subcommands groupe

Barry Coughlan 12 Jan 3, 2023
Windows command line tool to block outbound connections for files within a directory.

fwg A Windows command line tool to block outbound connections for files within a directory. fwg utilizes the power of PowerShell and Windows Network S

raymond wang 3 Jul 19, 2022
A C++ based command-line (CLI) program that lets you manage your tasks

COMMAND LINE INTERFACE TODO APP a command-line (CLI) program that lets you manage your tasks. The specification for this project is written down as te

Rahul Prabhakar 1 Dec 25, 2021
a simple zero-configuration command-line http server

http-server: a command-line http server http-server is a simple, zero-configuration command-line http server. It is powerful enough for production usa

http ... PARTY! 12.4k Jan 4, 2023
Control the macOS dark mode from the command-line

dark-mode Control the macOS dark mode from the command-line Requires macOS 10.10 or later. macOS 10.13 or earlier needs to download the Swift runtime

Sindre Sorhus 630 Dec 30, 2022
node.js command-line interfaces made easy

Commander.js The complete solution for node.js command-line interfaces. Read this in other languages: English | įŽ€äŊ“中文 Commander.js Installation Declari

TJ Holowaychuk 24k Jan 8, 2023
🌈 React for interactive command-line apps

React for CLIs. Build and test your CLI output using components. Ink provides the same component-based UI building experience that React offers in the

Vadim Demedes 19.7k Jan 9, 2023
Pretty unicode tables for the command line

cli-table3 This utility allows you to render unicode-aided tables on the command line from your node.js scripts. cli-table3 is based on (and api compa

null 418 Dec 28, 2022
Control the Plash app from the command-line

plash-cli Control the Plash app from the command-line Install $ npm install --global plash Requires Node.js 14 or later. Requires Plash 2.3.0 or late

Sindre Sorhus 33 Dec 30, 2022
Close chrome tabs from command-line (macOS only)

Close-tab Read all tabs from an activated window of the chrome, open with vi prompt, you can close tabs by deleting lines. Istallation npm install -g

Karl Saehun Chung 8 Jun 18, 2022
SFDX Plugin to set Email Deliverability Access Level for an org easily and quickly via command line interface

SFDX Plugin to set Email Deliverability Access Level for an org easily and quickly via command line interface

Max Goldfarb 11 Dec 16, 2022
A project for FAST command line interface tools.

FAST CLI Project This is the FAST CLI project, containing the FAST CLI package and other related CLI packages for FAST project creation and management

Microsoft 24 Dec 5, 2022
A command line interface for programmatically creating data silos on app.transcend.io

Table of Contents Overview Installation Authentication transcend.yml Usage tr-pull tr-push CI Integration Dynamic Variables tr-scan Overview A command

Transcend 15 Dec 13, 2022
Autify Command Line Interface (CLI)

Autify Command Line Interface (CLI) Autify CLI can help your integration with Autify! Autify Command Line Interface (CLI) Usage Commands Usage Note: n

Autify 36 Jan 2, 2023
The command-line interface for versum

@versumstudios/cli The command-line interface for versum. versum-cli Usage Contributing How to use Export Templates Usage To install the latest versio

Versum Studios 8 Nov 3, 2022
Run a command when a certain file exists, and/or watch files to rerun on changes

Run a command when a certain file exists, and/or watch files to rerun on changes

EGOIST 45 Sep 23, 2022
CLI Command for Two Factor Authentication.🚀

CLI Command for Two Factor Authentication.??

Yuga Sun 7 Nov 5, 2022
A small Discord moderation bot, without a command handler

A small Discord moderation bot, without a command handler Getting started (Add Star ⭐ <3) ?? Requirements Node.js A code editor (visual studio code, a

null 10 Mar 12, 2022