{"id":16632713,"url":"https://github.com/benwebber/duiker","last_synced_at":"2025-03-16T22:31:00.405Z","repository":{"id":20346025,"uuid":"89685884","full_name":"benwebber/duiker","owner":"benwebber","description":":book: Index your shell history in a full-text search database","archived":false,"fork":false,"pushed_at":"2024-08-23T18:52:09.000Z","size":70,"stargazers_count":13,"open_issues_count":2,"forks_count":1,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-02-27T14:48:14.509Z","etag":null,"topics":["bash","fts","full-text-search","history","shell","sqlite","sqlite3"],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/benwebber.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGELOG.rst","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-04-28T08:33:48.000Z","updated_at":"2023-09-07T20:43:13.000Z","dependencies_parsed_at":"2022-09-07T03:40:50.168Z","dependency_job_id":null,"html_url":"https://github.com/benwebber/duiker","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/benwebber%2Fduiker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/benwebber%2Fduiker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/benwebber%2Fduiker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/benwebber%2Fduiker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/benwebber","download_url":"https://codeload.github.com/benwebber/duiker/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243830952,"owners_count":20354854,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["bash","fts","full-text-search","history","shell","sqlite","sqlite3"],"created_at":"2024-10-12T05:09:55.453Z","updated_at":"2025-03-16T22:31:00.123Z","avatar_url":"https://github.com/benwebber.png","language":"Rust","readme":"duiker\n======\n\n|travis|\n\nAutomatically index your shell history in a full-text search database. Magic!\n\nFeatures\n--------\n\n-  Uses SQLite3's excellent `FTS4 \u003chttps://sqlite.org/fts3.html\u003e`__\n   extension to provide full-text search.\n-  Respects ``HISTTIMEFORMAT`` if set.\n\nRequirements\n------------\n\n-  Bash\n\nInstall\n-------\n\nDownload the `latest release \u003chttps://github.com/benwebber/duiker/releases/latest\u003e`__ and extract it somewhere on your ``$PATH``.\n\nAlternatively, install Duiker from source. To build the package you will need:\n\n-  `jq \u003chttps://stedolan.github.io/jq/\u003e`__\n-  Rust 1.17+ (`install with rustup \u003chttps://www.rust-lang.org/en-US/install.html\u003e`__)\n\nSimply run:\n\n::\n\n    make install\n\nSetup\n-----\n\nImport your existing shell history:\n\n::\n\n    HISTTIMEFORMAT='%s ' history | duiker import -\n\nConfiguration\n-------------\n\nIf you want to automatically import your shell history on-the-fly, you\ncan add ``duiker import`` to your ``PROMPT_COMMAND`` [#]_.\n\nRun ``duiker magic`` to print a shell snippet that automatically imports\nyour last command into Duiker:\n\n::\n\n    duiker magic\n\nConfigure this shell snippet as part of your ``PROMPT_COMMAND``. Run\n``duiker magic --help`` for an example.\n\nSearching\n---------\n\nDuiker indexes your shell history in an SQLite3 full-text search table.\n\nYou can use any ``MATCH`` [#]_ expression to search the database:\n\n::\n\n    $ duiker search git\n    2017-04-13 15:50:02 \tgit staged\n    2017-04-13 15:50:14 \tgit commit -a\n    2017-04-13 15:55:07 \tgit diff\n\n::\n\n    $ duiker search '(git OR fossil) diff'\n    2017-04-27 15:15:01 \tgit diff\n    2017-04-27 15:15:49 \tgit diff\n    2017-04-28 14:49:19 \tfossil diff\n    2017-04-28 14:53:09 \tfossil diff src/main.rs\n\n::\n\n    $ duiker search 'sqlite*'\n    2017-03-04 19:00:42 \tsqlite3 db.sqlite\n    2017-03-04 19:13:11 \trm db.sqlite\n\nLimitations\n-----------\n\nDuiker only supports Bash at present. Pull requests for other shells\nwelcome.\n\nLicense\n-------\n\nMIT\n\n.. [#] `\u003chttps://www.gnu.org/software/bash/manual/html_node/Controlling-the-Prompt.html#Controlling-the-Prompt\u003e`_\n.. [#] `\u003chttps://sqlite.org/fts3.html#full_text_index_queries\u003e`_\n\n.. |travis| image:: https://travis-ci.org/benwebber/curlrc.svg?branch=master\n    :target: https://travis-ci.org/benwebber/duiker\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbenwebber%2Fduiker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbenwebber%2Fduiker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbenwebber%2Fduiker/lists"}