{"id":13398252,"url":"https://github.com/rcaloras/bashhub-client","last_synced_at":"2026-01-27T22:30:09.888Z","repository":{"id":10634200,"uuid":"12858849","full_name":"rcaloras/bashhub-client","owner":"rcaloras","description":":cloud: Bash history in the cloud. Indexed and searchable. ","archived":false,"fork":false,"pushed_at":"2024-08-20T10:58:02.000Z","size":337,"stargazers_count":1275,"open_issues_count":33,"forks_count":84,"subscribers_count":31,"default_branch":"master","last_synced_at":"2025-04-08T02:42:14.689Z","etag":null,"topics":["bash","cloud","history","shell","shell-extension","terminal","zsh"],"latest_commit_sha":null,"homepage":"https://bashhub.com","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rcaloras.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","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}},"created_at":"2013-09-16T04:54:15.000Z","updated_at":"2025-03-21T19:26:19.000Z","dependencies_parsed_at":"2023-01-12T18:15:52.048Z","dependency_job_id":"12ee50d9-a2c7-413b-afdb-7d66fb2ed5f4","html_url":"https://github.com/rcaloras/bashhub-client","commit_stats":{"total_commits":429,"total_committers":19,"mean_commits":22.57894736842105,"dds":"0.36363636363636365","last_synced_commit":"c408de68365557d792557e4b8f510ed29c75f910"},"previous_names":[],"tags_count":38,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rcaloras%2Fbashhub-client","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rcaloras%2Fbashhub-client/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rcaloras%2Fbashhub-client/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rcaloras%2Fbashhub-client/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rcaloras","download_url":"https://codeload.github.com/rcaloras/bashhub-client/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254422754,"owners_count":22068678,"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","cloud","history","shell","shell-extension","terminal","zsh"],"created_at":"2024-07-30T19:00:21.064Z","updated_at":"2026-01-27T22:30:04.808Z","avatar_url":"https://github.com/rcaloras.png","language":"Python","funding_links":[],"categories":["Python","Command-Line Productivity","Tools","cloud"],"sub_categories":["Python","Reusable Things"],"readme":"\u003cimg src=\"https://bashhub.com/assets/images/bashhub-logo.png\" alt=\"Bashhub Logo\"\u003e\n\nBashhub saves every terminal command entered across all sessions and systems and provides powerful querying across all commands.\n\n[![Build Status](https://github.com/rcaloras/bashhub-client/actions/workflows/main.yml/badge.svg)](https://github.com/rcaloras/bashhub-client/actions/)\n[![GitHub version](https://badge.fury.io/gh/rcaloras%2Fbashhub-client.svg)](https://badge.fury.io/gh/rcaloras%2Fbashhub-client)\n\n### Features\n- Super command search by using context about how commands are executed.\n  - e.g. the directory, session, system, exit status, etc.\n- Unlimited detailed terminal history stored in the cloud.\n  - [Stored privately and encrypted at rest](https://github.com/rcaloras/bashhub-client/wiki/Security-and-Privacy).\n- Support across systems. Access your terminal history from anywhere!\n- Support for Bash and Zsh with a sweet cli for everything.\n\n![gif](http://i.imgur.com/02ABZxn.gif)\n\n# Quick Install\n```shell\ncurl -OL https://bashhub.com/setup \u0026\u0026 $SHELL setup\n```\nFor non default login shells, just specify the shell e.g. (`bash setup`, `zsh setup`, `fish setup`)\n\nDetailed installation instructions can be found at\nhttps://github.com/rcaloras/bashhub-client/wiki/Install\n\n# Usage\nBashhub can be accessed from the command line in a couple ways:\n\n- `bh` for searching\n- `bashhub` for everything else\n\nIt also provides a key binding of `ctrl + b` for quickly dropping into interactive search.\n\n## Search\nYou can search through your commands in a lot of different ways. Check `bh --help` for more specifics. By default `bh` will output the most recently used unique commands to standard out. Adding the `-i` argument to any `bh` search will make it **interactive**. There are also several arguments to pass to filter, query, and get more specific about your searches!\n\n## Examples\n\nThe last 100 commands you executed anywhere. (100 is default limit without `-n`)\n```bash\n$ bh\n```\n\nThe last 20 files I've grep'd.\n```bash\n$ bh -n 20 \"grep\"\n```\nFind that wget command with interactive search to execute it again :P\n```bash\n$ bh -i \"wget github\"\n```\n\n### Directory-specific Searching\n\nThe last commands you executed in this directory.\n```bash\n$ bh -d\n```\nThe last 10 things you vim'd in this directory\n```bash\n$ bh -d -n 10 \"vim\"\n```\n\n### System-specific Searching\n\nThe last 10 curl commands you produced on this system\n\n```bash\n$ bh -sys -n 10 \"curl\"\n```\n\n### How Search Results are Ordered\nBy default results are sorted by **most recently** used, and are **unique**. This means frequent commands like `git status` or `ls` will only appear once in the position they were most recently invoked.\n\nThis can be altered by using the `-dups` command to include duplicates\n\nYour git commands including duplicates.\n\n```bash\n$ bh -dups \"git\"\n```\n\n## Interactive Search\nOne of the most useful features is interactive search which is accessed via `bh -i` or `ctrl + b`. This is similar to reverse search i.e. `ctrl + r`. Interactive search drops you into a small menu where you can select a command to run on the command line.\n\nEnter interactive search for all the rsync commands executed in this directory\n```bash\n$ bh -i -d\n(bashhub-i-search): rsync\n```\n\n### Command Details\nFrom interactive search you can also access detailed information on each command by hitting `i` or `space` on any listed command.\n\n![Command Details](http://i.imgur.com/is0gNnB.png)\n\n\n## Bashhub Status\nYou can get a summary of your user's stats/status by using the `status` command.\n```bash\nbashhub status\n```\nMost of this information is also displayed on the user profile page.\n\n```bash\n=== Bashhub Status\nhttp://bashhub.com/u/rccola\nTotal Commands: 94965\nTotal Sessions: 16400\nTotal Systems:  18\n===\nSession PID 15311 Started 9 days ago\nCommands In Session: 3\nCommands Today: 47\n```\n\n### Search with Fuzzy Finder\nAn efficient way of searching is using `bashhub` in combination with [`fzf`](https://github.com/junegunn/fzf). Put this in your `.bashrc`.\n\n```bash\nfunction my_alias {\n  eval $(bh | fzf)\n}\n```\n\nThis will make the function available globally in your terminal.\n\n## Filtering Commands\nYou can filter commands from being recorded to Bashhub via a regex set to the environment variable `BH_FILTER`. These commands will be ignored and omittted from Bashhub.\n```bash\n# Filter out any commands for postgres or ssh\nexport BH_FILTER=\"(psql|ssh)\"\nssh rcaloras@some-ip-address # will not be saved\n```\n\nYou can check the configuration of this command via the `bashhub filter` subcommand.\n```bash\n# Check if a command is filtered by my regex\nexport BH_FILTER=\"(-p)\"\nbashhub filter \"mysql -u root -p plain-text-password\"\nBH_FILTER=(-p)\nmysql -u root -p plain-text-password\nIs Filtered. Matched ['-p']\n```\n\n## Disabling Recording Commands\nYou can turn on/off recording to Bashhub via `bashhub on` and `bashhub off`. By default this only affects the current bash session.\n\n```bash\n$ bashhub off\n$ echo \"Recording is now disabled for this session. This command won't be saved.\"\n....\n$ bashhub on\n$ echo \"Recording commands is now re-enabled\"\n```\nYou can disable for all sessions by setting `bashhub off --global` this sets `save_commands = False` in your bashhub config.\n\n## Ignoring Commands\n`#ignore` added to any command will omit it from being saved. Simply add it to the end of any command and it won't be recorded in Bashhub.\n\n```bash\n$ echo \"this command won't be saved\" #ignore\n```\n\n## Deleting Commands\nYou can delete commands from Bashhub through interactive search by pressing `Delete` or `Backspace` while a command is highlighted. A small dialog box will open to confirm the commands deletion. If a command is deleted, it is permanently removed from Bashhub.\n\n![gif](http://i.imgur.com/sHzvEJx.gif)\n\n## Feature Requests, Bugs, and Issues\nFeel free to post in:\nhttps://github.com/rcaloras/bashhub-client/issues\n\nYou can also get support and follow updates [@Bashhub](https://twitter.com/bashhub) on Twitter.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frcaloras%2Fbashhub-client","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frcaloras%2Fbashhub-client","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frcaloras%2Fbashhub-client/lists"}