{"id":19776925,"url":"https://github.com/rusty-ferris-club/shellclear","last_synced_at":"2025-09-08T20:43:58.155Z","repository":{"id":45028606,"uuid":"508402606","full_name":"rusty-ferris-club/shellclear","owner":"rusty-ferris-club","description":"Secure shell history commands by finding sensitive data","archived":false,"fork":false,"pushed_at":"2023-05-15T11:03:02.000Z","size":1957,"stargazers_count":223,"open_issues_count":9,"forks_count":11,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-06-05T01:30:42.281Z","etag":null,"topics":["bash","rust","security","security-tools","shell"],"latest_commit_sha":null,"homepage":"","language":"Rust","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/rusty-ferris-club.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","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":"2022-06-28T17:55:23.000Z","updated_at":"2025-05-24T18:13:16.000Z","dependencies_parsed_at":"2024-06-21T19:10:49.681Z","dependency_job_id":"d216b59f-62ac-4ac8-a35e-e80bcb2505a9","html_url":"https://github.com/rusty-ferris-club/shellclear","commit_stats":null,"previous_names":[],"tags_count":18,"template":false,"template_full_name":null,"purl":"pkg:github/rusty-ferris-club/shellclear","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rusty-ferris-club%2Fshellclear","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rusty-ferris-club%2Fshellclear/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rusty-ferris-club%2Fshellclear/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rusty-ferris-club%2Fshellclear/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rusty-ferris-club","download_url":"https://codeload.github.com/rusty-ferris-club/shellclear/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rusty-ferris-club%2Fshellclear/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274231508,"owners_count":25245601,"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","status":"online","status_checked_at":"2025-09-08T02:00:09.813Z","response_time":121,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["bash","rust","security","security-tools","shell"],"created_at":"2024-11-12T05:22:25.287Z","updated_at":"2025-09-08T20:43:58.123Z","avatar_url":"https://github.com/rusty-ferris-club.png","language":"Rust","funding_links":[],"categories":["Terminal"],"sub_categories":["Development"],"readme":"[![Build](https://github.com/rusty-ferris-club/shellclear/actions/workflows/build.yml/badge.svg?branch=main)](https://github.com/rusty-ferris-club/shellclear/actions/workflows/build.yml)\n\n\u003cp align=\"center\"\u003e\n\u003cbr/\u003e\n\u003cbr/\u003e\n\u003cbr/\u003e\n   \u003cimg src=\"media/shellclear.svg\" width=\"300\"/\u003e\n\u003cbr/\u003e\n\u003cbr/\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n\u003cbr/\u003e\n\u003cb\u003e:triangular_flag_on_post: Show sensitive command summary when open a new terminal\u003c/b\u003e\n\u003cbr/\u003e\n\u003cb\u003e:eyes: Clear sensitive commands from shell history\u003c/b\u003e\n\u003cbr/\u003e\n\u003cb\u003e:see_no_evil: Stash your history command before presentations OR screen sharing\u003c/b\u003e\n\u003cbr/\u003e\n\u003chr/\u003e\n\u003c/p\u003e\n\n# Shellclear\n\nThe idea behind `shellclear` is to provide a simple and fast way to secure you shell commands history\n\n\n\u003cdetails\u003e\n\u003csummary\u003emacOS\u003c/summary\u003e\n\n```sh\ncurl -sS https://raw.githubusercontent.com/rusty-ferris-club/shellclear/main/install/install.sh | bash\n```\n\nOr via brew\n\n```sh\nbrew tap rusty-ferris-club/tap \u0026\u0026 brew install shellclear\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eLinux\u003c/summary\u003e\n\n```sh\ncurl -sS https://raw.githubusercontent.com/rusty-ferris-club/shellclear/main/install/install.sh | bash\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eWindows\u003c/summary\u003e\n\n```sh\niwr https://raw.githubusercontent.com/rusty-ferris-club/shellclear/main/install/install.ps1 -useb | iex\n```\n\n\u003c/details\u003e\n\nOr download the binary file from [releases](https://github.com/rusty-ferris-club/shellclear/releases) page.\n\n\u003c/details\u003e\n\n## Setup your shell\n\n\u003cdetails\u003e\n\u003csummary\u003eBash\u003c/summary\u003e\nAdd the following to the end of ~/.bashrc:\n\n```sh\neval $(shellclear --init-shell)\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eZsh\u003c/summary\u003e\nAdd the following to the end of ~/.zshrc:\n\n```sh\neval $(shellclear --init-shell)\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003ePowerShell\u003c/summary\u003e\nAdd the following to the end of your PowerShell configuration (find it by running $PROFILE):\n\n```powershell\nInvoke-Expression (\u0026shellclear --init-shell)\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eFish\u003c/summary\u003e\nAdd the following to the end of ~/.config/fish/config.fish:\n\n```sh\nshellclear --init-shell | source\n```\n\n\u003c/details\u003e\n\n\n![motd](./media/motd.png)\n\n## Using\n\n```sh\n$ shellclear --help\n\nSecure shell commands\n\nUSAGE:\n    shellclear [OPTIONS] [SUBCOMMAND]\n\nOPTIONS:\n        --config-dir \u003cCFG_DIR_PATH\u003e    Set configuration directory path\n    -h, --help                         Print help information\n        --init-shell                   Show sensitive findings summary for MOTD\n        --log \u003cLEVEL\u003e                  Set logging level [default: INFO] [possible values: OFF,\n                                       TRACE, DEBUG, INFO, WARN, ERROR]\n        --no-banner                    Don't show the banner\n    -V, --version                      Print version information\n\n\nSUBCOMMANDS:\n    config     Create custom configuration\n    find       Find sensitive commands\n    help       Print this message or the help of the given subcommand(s)\n    restore    Restore backup history file\n    stash      Stash history file\n```\n\n## :eyes: Find Sensitive Commands\n\nSensitive data can be stored in your history file when export a token of something or running a script with token.\n\n```sh\nshellclear find --format table\n```\n\n![find](./media/find.png)\n\n## :broom: Mask findings:\n\n```sh\nshellclear clear\n```\n\n## :collision: Remove findings:\n\n```sh\nshellclear clear --remove\n```\n\n## :luggage: Backup shell history before clear\n\n```sh\nshellclear clear --backup\n```\n\n## :see_no_evil: Stash/Pop/Restore\n\nYou can stash your history shell by running the command:\n\n```sh\nshellclear stash\n```\n\nNow your history shell is clear, to bring back your history run the command:\n\n```sh\nshellclear stash pop\n```\n\nYou can also restore your history backup file by running the command:\n\n```sh\nshellclear stash restore\n```\n\n## :pencil2: External Configuration\n\nCreate custom configuration by running the command\n\n```sh\nshellclear config\n```\n\nConfig command will create:\n\n1. Custom pattern template for adding a custom risky patterns\n2. Ignore file to allows you ignore specific pattern\n\n### Validate Config Files\n\nValidate syntax file\n\n```sh\nshellclear config validate\n```\n\n### Delete Config Folder\n\nValidate syntax file\n\n```sh\nshellclear config delete\n```\n\n### Ignores Pattern\n\nManage pattern ignores\n\n```sh\nshellclear config ignores\n```\n\n# Examples\n\n[All the examples here](./example/README.MD)\n\n# Thanks\n\nTo all [Contributors](https://github.com/rusty-ferris-club/shellclear/graphs/contributors) - you make this happen,\nthanks!\n\n# Copyright\n\nCopyright (c) 2022 [@kaplanelad](https://github.com/kaplanelad). See [LICENSE](LICENSE.txt) for further details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frusty-ferris-club%2Fshellclear","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frusty-ferris-club%2Fshellclear","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frusty-ferris-club%2Fshellclear/lists"}