{"id":20200375,"url":"https://github.com/nickjer/yayo","last_synced_at":"2026-02-18T19:02:21.899Z","repository":{"id":57672712,"uuid":"309189069","full_name":"nickjer/yayo","owner":"nickjer","description":"A CLI used to manage and generate OTP (one time password) codes for your accounts","archived":false,"fork":false,"pushed_at":"2025-02-23T14:09:46.000Z","size":94,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-07T23:37:37.007Z","etag":null,"topics":[],"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/nickjer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"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":"2020-11-01T21:10:36.000Z","updated_at":"2025-02-23T14:09:36.000Z","dependencies_parsed_at":"2024-11-14T04:43:31.696Z","dependency_job_id":"5d20441b-5ce5-4e72-b3b9-842fb0ae5eeb","html_url":"https://github.com/nickjer/yayo","commit_stats":{"total_commits":27,"total_committers":2,"mean_commits":13.5,"dds":"0.37037037037037035","last_synced_commit":"6a9b12cdf7f98fbbf0c54875b9808c88666ff112"},"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"purl":"pkg:github/nickjer/yayo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nickjer%2Fyayo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nickjer%2Fyayo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nickjer%2Fyayo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nickjer%2Fyayo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nickjer","download_url":"https://codeload.github.com/nickjer/yayo/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nickjer%2Fyayo/sbom","scorecard":{"id":685143,"data":{"date":"2025-08-11","repo":{"name":"github.com/nickjer/yayo","commit":"1973442a693f13b39690e03a255e410dfc345d35"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":2.7,"checks":[{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Code-Review","score":0,"reason":"Found 0/30 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/continuous-integration-workflow.yml:1","Warn: no topLevel permission defined: .github/workflows/release-workflow.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/continuous-integration-workflow.yml:21: update your workflow using https://app.stepsecurity.io/secureworkflow/nickjer/yayo/continuous-integration-workflow.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/continuous-integration-workflow.yml:22: update your workflow using https://app.stepsecurity.io/secureworkflow/nickjer/yayo/continuous-integration-workflow.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/continuous-integration-workflow.yml:31: update your workflow using https://app.stepsecurity.io/secureworkflow/nickjer/yayo/continuous-integration-workflow.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/continuous-integration-workflow.yml:36: update your workflow using https://app.stepsecurity.io/secureworkflow/nickjer/yayo/continuous-integration-workflow.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/continuous-integration-workflow.yml:42: update your workflow using https://app.stepsecurity.io/secureworkflow/nickjer/yayo/continuous-integration-workflow.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/continuous-integration-workflow.yml:48: update your workflow using https://app.stepsecurity.io/secureworkflow/nickjer/yayo/continuous-integration-workflow.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/continuous-integration-workflow.yml:56: update your workflow using https://app.stepsecurity.io/secureworkflow/nickjer/yayo/continuous-integration-workflow.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release-workflow.yml:25: update your workflow using https://app.stepsecurity.io/secureworkflow/nickjer/yayo/release-workflow.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release-workflow.yml:26: update your workflow using https://app.stepsecurity.io/secureworkflow/nickjer/yayo/release-workflow.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release-workflow.yml:35: update your workflow using https://app.stepsecurity.io/secureworkflow/nickjer/yayo/release-workflow.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release-workflow.yml:39: update your workflow using https://app.stepsecurity.io/secureworkflow/nickjer/yayo/release-workflow.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release-workflow.yml:53: update your workflow using https://app.stepsecurity.io/secureworkflow/nickjer/yayo/release-workflow.yml/master?enable=pin","Info:   0 out of   5 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   7 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.txt:0","Info: FSF or OSI recognized license: MIT License: LICENSE.txt:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact v0.2.7 not signed: https://api.github.com/repos/nickjer/yayo/releases/201905782","Warn: release artifact v0.2.6 not signed: https://api.github.com/repos/nickjer/yayo/releases/149104962","Warn: release artifact v0.2.5 not signed: https://api.github.com/repos/nickjer/yayo/releases/149097615","Warn: release artifact v0.2.4 not signed: https://api.github.com/repos/nickjer/yayo/releases/148064672","Warn: release artifact v0.2.3 not signed: https://api.github.com/repos/nickjer/yayo/releases/77398831","Warn: release artifact v0.2.7 does not have provenance: https://api.github.com/repos/nickjer/yayo/releases/201905782","Warn: release artifact v0.2.6 does not have provenance: https://api.github.com/repos/nickjer/yayo/releases/149104962","Warn: release artifact v0.2.5 does not have provenance: https://api.github.com/repos/nickjer/yayo/releases/149097615","Warn: release artifact v0.2.4 does not have provenance: https://api.github.com/repos/nickjer/yayo/releases/148064672","Warn: release artifact v0.2.3 does not have provenance: https://api.github.com/repos/nickjer/yayo/releases/77398831"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Vulnerabilities","score":5,"reason":"5 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-4fcv-w3qc-ppgg","Warn: Project is vulnerable to: RUSTSEC-2025-0022","Warn: Project is vulnerable to: GHSA-4p46-pwfr-66x6","Warn: Project is vulnerable to: RUSTSEC-2025-0009","Warn: Project is vulnerable to: GHSA-c86p-w88r-qvqr"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-22T00:33:45.058Z","repository_id":57672712,"created_at":"2025-08-22T00:33:45.058Z","updated_at":"2025-08-22T00:33:45.058Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29590684,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-18T18:54:29.675Z","status":"ssl_error","status_checked_at":"2026-02-18T18:50:50.517Z","response_time":162,"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":[],"created_at":"2024-11-14T04:43:24.427Z","updated_at":"2026-02-18T19:02:16.882Z","avatar_url":"https://github.com/nickjer.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Yayo\n\n[![Latest Version](https://img.shields.io/crates/v/yayo.svg)](https://crates.io/crates/yayo)\n[![Downloads](https://img.shields.io/github/downloads/nickjer/yayo/total.svg)](https://github.com/nickjer/yayo/releases)\n[![License](https://img.shields.io/github/license/nickjer/yayo.svg)](https://github.com/nickjer/yayo)\n[![Continuous Integration Status](https://github.com/nickjer/yayo/workflows/Continuous%20integration/badge.svg)](https://github.com/nickjer/yayo/actions)\n\nA command line interface (CLI) used to manage and generate OTP (one time\npassword) codes for your various accounts.\n\n## Installation\n\nInstall using [cargo]:\n\n```shell\ncargo install yayo\n```\n\n## Pre-compiled Binaries\n\nAn alternative method is to download and run the pre-compiled binaries:\n\n\u003chttps://github.com/nickjer/yayo/releases\u003e\n\n## Usage\n\nCheck the help (`--help`) for details on using this tool:\n\n```shell\nManage and generate OTP (one time password) codes\n\nUsage: yayo \u003cCOMMAND\u003e\n\nCommands:\n  add         Add a new account\n  completion  Output shell completion\n  delete      Delete an account\n  list        List all accounts\n  view        View the code for an account\n  help        Print this message or the help of the given subcommand(s)\n\nOptions:\n  -h, --help     Print help\n  -V, --version  Print version\n```\n\n### Add Account\n\nThe `add` subcommand is used to add an account:\n\n```shell\nAdd a new account\n\nUsage: yayo add [OPTIONS] \u003cACCOUNT\u003e \u003cSECRET\u003e\n\nArguments:\n  \u003cACCOUNT\u003e  Name of the account\n  \u003cSECRET\u003e   Secret key used to generate code\n\nOptions:\n  -a, --algorithm \u003cALGORITHM\u003e  Algorithm used to generate code [env: YAYO_ALGORITHM=] [default: SHA1] [possible values: SHA1, SHA256, SHA512]\n  -d, --digits \u003cDIGITS\u003e        Number of digits composing code [env: YAYO_DIGITS=] [default: 6]\n  -s, --step \u003cSTEP\u003e            Duration in seconds of step [env: YAYO_STEP=] [default: 30]\n  -h, --help                   Print help\n```\n\n\u003e *Note:* For added security it stores all secrets in your operating system's\n\u003e local keyring.\n\n**Example:** Add your GitHub account with provided secret (`XXXXXXX`):\n\n```shell\nyayo add github XXXXXXX\n```\n\nAlthough it is not recommended, you can alter any of the arguments used in the\nOTP code generation (`algorithm`, `digits`, and `step`) as command line options\nor through environment variables.\n\n### Delete Account\n\nThe `delete` subcommand is used to delete a previously added account:\n\n```shell\nDelete an account\n\nUsage: yayo delete \u003cACCOUNT\u003e\n\nArguments:\n  \u003cACCOUNT\u003e  Name of the account\n\nOptions:\n  -h, --help  Print help\n```\n\n**Example:** Delete the previously added GitHub account:\n\n```shell\nyayo delete github\n```\n\n### List All Accounts\n\nThe `list` subcommand is used to list all available accounts and their provided\nconfigurations:\n\n```shell\nList all accounts\n\nUsage: yayo list\n\nOptions:\n  -h, --help  Print help\n```\n\n### View Account\n\nThe `view` subcommand is used to output the OTP code generated for the\nrequested account:\n\n```shell\nView the code for an account\n\nUsage: yayo view \u003cACCOUNT\u003e\n\nArguments:\n  \u003cACCOUNT\u003e  Name of the account\n\nOptions:\n  -h, --help  Print help\n```\n\n**Example:** View the OTP for the GitHub account:\n\n```console\n$ yayo view github\n389200\n```\n\n### Command Completion\n\nThe `completion` subcommand is used to output a shell script used to support\ncommand completion for this binary:\n\n```shell\nOutput shell completion\n\nUsage: yayo completion \u003cSHELL\u003e\n\nArguments:\n  \u003cSHELL\u003e  Name of the shell [possible values: bash, elvish, fish, powershell, zsh]\n\nOptions:\n  -h, --help  Print help\n```\n\n**Example:** Output command completion for the fish shell:\n\n```shell\nyayo completion fish | source\n```\n\nNow you can use tab-completion with `yayo`.\n\n## Linux (Gnome) - Keyboard Shortcut to Clipboard\n\nThis is a simple walkthough on setting up the F12 key to populate the clipboard\nwith the OTP code. This makes logging into GitHub or any other service as\nsimple as pushing F12 and pasting the contents of the clipboard into the 2FA\ninput.\n\n1. You will need `xsel` or some other CLI that can read the contents of STDOUT\n   to the clipboard:\n\n   ```shell\n   sudo apt install -y xsel\n   ```\n\n2. If using Gnome 3 you can just open the control center and navigate to the\n   \"Keyboard Shortcuts\" with:\n\n   ```shell\n   gnome-control-center\n   ```\n\n3. Scroll to the bottom and set a \"Custom\" keyboard shortcut with the following\n   options:\n\n   \u003e Name: **OTP (GitHub)**\n   \u003e Command: `sh -c '~/bin/yayo view github | xsel --primary'`\n   \u003e Shortcut: **F12**\n\n[cargo]: https://doc.rust-lang.org/cargo/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnickjer%2Fyayo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnickjer%2Fyayo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnickjer%2Fyayo/lists"}