{"id":40962771,"url":"https://github.com/localfirstapp/1History","last_synced_at":"2026-01-24T18:01:48.159Z","repository":{"id":38538093,"uuid":"450810712","full_name":"localfirstapp/1History","owner":"localfirstapp","description":"All your history in one file.","archived":false,"fork":false,"pushed_at":"2026-01-13T09:18:33.000Z","size":1198,"stargazers_count":526,"open_issues_count":2,"forks_count":27,"subscribers_count":5,"default_branch":"main","last_synced_at":"2026-01-14T07:39:19.752Z","etag":null,"topics":["backup","browser-history","history","rust"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/localfirstapp.png","metadata":{"files":{"readme":"README.org","changelog":"CHANGELOG.org","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"custom":["https://liujiacai.net/donate/"]}},"created_at":"2022-01-22T12:26:41.000Z","updated_at":"2026-01-13T14:28:48.000Z","dependencies_parsed_at":"2024-06-19T03:03:24.860Z","dependency_job_id":null,"html_url":"https://github.com/localfirstapp/1History","commit_stats":{"total_commits":29,"total_committers":2,"mean_commits":14.5,"dds":0.03448275862068961,"last_synced_commit":"a659566fa8cfee3a0a55b730edf58320676a032a"},"previous_names":["localfirstapp/1history"],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/localfirstapp/1History","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/localfirstapp%2F1History","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/localfirstapp%2F1History/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/localfirstapp%2F1History/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/localfirstapp%2F1History/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/localfirstapp","download_url":"https://codeload.github.com/localfirstapp/1History/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/localfirstapp%2F1History/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28733297,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-24T17:51:25.893Z","status":"ssl_error","status_checked_at":"2026-01-24T17:50:48.377Z","response_time":89,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["backup","browser-history","history","rust"],"created_at":"2026-01-22T06:00:39.920Z","updated_at":"2026-01-24T18:01:48.153Z","avatar_url":"https://github.com/localfirstapp.png","language":"JavaScript","funding_links":["https://liujiacai.net/donate/"],"categories":["Applications","JavaScript"],"sub_categories":["Utilities"],"readme":"#+TITLE: 1History\n#+DATE: 2022-01-23T20:21:06+0800\n#+AUTHOR: Jiacai Liu\n#+LANGUAGE: cn\n#+OPTIONS: toc:nil num:nil\n#+STARTUP: content\n\n[[https://crates.io/crates/onehistory][https://img.shields.io/crates/v/onehistory.svg]]\n[[https://github.com/1History/1History/actions/workflows/CI.yml][https://github.com/1History/1History/actions/workflows/CI.yml/badge.svg]]\n\n#+begin_quote\nAll your history in one file.\n#+end_quote\n\n1History is a command line tool to backup your different browser histories into one file, and visualize them!\n\n[[https://www.producthunt.com/posts/1history?utm_source=badge-review\u0026utm_medium=badge\u0026utm_souce=badge-1history#discussion-body][https://api.producthunt.com/widgets/embed-image/v1/review.svg?post_id=329191\u0026theme=light]]\n\n* Features\n- Rich dashboards to visualize your history\n- Export as CSV file\n- Entirely offline, No need to worry about privacy leaks\n- Support Chrome/Firefox/Safari on macOS/Linux/Windows\n- Well-designed schemas to avoid history duplication when backup multiple times\n- No NPM, 1History is a single binary built mainly in Rust🦀\n\n* Screenshots\n** Daily Page View\n[[file:screenshots/daily_pv.png]]\n** Top 10 Title\n[[file:screenshots/top10_title.png]]\n** Top 10 Domain\n[[file:screenshots/top10_domain.png]]\n\n* Usage\n#+begin_src bash\nonehistory 0.1.0\n\nUSAGE:\n    onehistory [OPTIONS] \u003cSUBCOMMAND\u003e\n\nOPTIONS:\n    -d, --db-file  \u003cDB_FILE\u003e           Database path [env: OH_DB_FILE=] [default: ~/onehistory.db]\n    -h, --help                         Print help information\n    -v, --verbose\n    -V, --version                      Print version information\n\nSUBCOMMANDS:\n    backup    Backup browser history to 1History\n    export\n    help      Print this message or the help of the given subcommand(s)\n    serve     Start HTTP server to visualize history\n    show      Show default history files on your computer\n#+end_src\n** Backup\n#+begin_src bash\nUSAGE:\n    onehistory backup [OPTIONS]\n\nOPTIONS:\n    -d, --disable-detect\n            Disable auto detect history files\n\n    -D, --dry-run\n\n\n    -f, --history-files \u003cHISTORY_FILES\u003e\n            SQLite file path of different browsers(History.db/places.sqlite...)\n\n    -h, --help\n            Print help information\n#+end_src\n=backup= is the main subcommand, it will import browser history into 1History.\n\n1History will automatically detect history of different browsers by default, =show= subcommand will show what it can find.\n\nUsers can also use =-f= option to set other history files to backup, the history file has the following naming convention:\n| Browser | History Filename |\n|---------+------------------|\n| Chrome  | History          |\n| Firefox | places.sqlite    |\n| Safari  | History.db       |\n#+begin_src bash\n# -f can be used multiple times\n# -d is required when doing backup with browsers open\nonehistory backup -d -f ~/some-dir/History.db -f ~/another-dir/places.sqlite\n#+end_src\n\n** Serve\nAfter backup browser history into 1History, the next step is to visualize those data.\n\n=serve= subcommand will start a HTTP server at [[http://127.0.0.1:9960]], open this in your browser to explore.\n* Installation\n** Homebrew\n#+begin_src bash\nbrew install 1History/onehistory/onehistory\n#+end_src\n** Binary\nThe [[https://github.com/1History/1History/releases][release page]] includes precompiled binaries for Linux, macOS and Windows.\n** Cargo\n#+begin_src bash\ncargo install onehistory\n#+end_src\n\n\n* Changelog\nSee [[file:CHANGELOG.org][CHANGELOG]]\n* FAQ\n- =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.\n\n  Close the browser is one solution, or you can copy history file to other directory other than default location.\n\n\n* LICENSE\nCopyright (c) 2022 Jiacai Liu \u003cdev@liujiacai.net\u003e\n\n1History is distributed under [[https://www.gnu.org/licenses/gpl-3.0.txt][GPL-3.0]] license.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flocalfirstapp%2F1History","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flocalfirstapp%2F1History","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flocalfirstapp%2F1History/lists"}