{"id":2330,"date":"2023-05-04T15:53:29","date_gmt":"2023-05-04T15:53:29","guid":{"rendered":"https:\/\/readmeprd.wpenginepowered.com\/?p=2330"},"modified":"2025-12-16T19:54:37","modified_gmt":"2025-12-17T01:54:37","slug":"1password-shell-plugin","status":"publish","type":"post","link":"https:\/\/readme.com\/resources\/1password-shell-plugin","title":{"rendered":"Authenticating Into ReadMe\u2019s CLI With 1Password and Your Fingerprint \u261d\ufe0f"},"content":{"rendered":"\n<p>Long-time followers of the ReadMe blog know <a href=\"https:\/\/blog.readme.com\/two-factor-auth\/\">I have been absolutely shameless in my love for 1Password<\/a>. It&#8217;s a great password manager that we use here at ReadMe to securely store shared logins, API keys, and more. Staying secure online is increasingly difficult these days, and we\u2019ve been able to safely rely on 1Password for best-in-class security with a convenience and user experience that lives up to one of <a href=\"https:\/\/readme.com\/values\">our core ReadMe values<\/a>: \u201cstrive for simplicity.\u201d<\/p>\n\n\n\n<p>So it should come as no surprise that I\u2019m very stoked to announce ReadMe&#8217;s partnership with 1Password. With <a href=\"https:\/\/developer.1password.com\/docs\/cli\/shell-plugins\/readme\/\">the ReadMe shell plugin for the 1Password CLI<\/a>, together we\u2019re making your experience with ReadMe\u2019s developer tools even more convenient and secure. Get the details below! \ud83e\udd1d<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"juggling-api-keys-a-necessary-dx-evil-%F0%9F%A4%B9\">Juggling API keys: a necessary DX evil \ud83e\udd39<\/h1>\n\n\n\n<p>Let\u2019s first start with some background. Over the last year or so, we\u2019ve been making several improvements to the developer experience around API keys in ReadMe:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>A <a href=\"https:\/\/github.blog\/changelog\/2022-08-17-readme-is-now-a-github-secret-scanning-partner\/\">secret scanning partnership with GitHub<\/a> to automatically revoke exposed ReadMe API keys and notify our users \u267b\ufe0f<\/li>\n\n\n\n<li>The <a href=\"https:\/\/docs.readme.com\/main\/reference\/intro\/authentication#generating-new-api-keys-\">ReadMe API key management dashboard<\/a> which gives you the ability to provision multiple keys for your project and makes it easier to rotate keys out \ud83d\udd04<\/li>\n\n\n\n<li>Interactive <a href=\"https:\/\/docs.readme.com\/main\/reference\/intro\/authentication\">Getting Started and Authentication pages<\/a> in the API reference section, where you can browse your ReadMe API keys and make authenticated requests to the ReadMe API directly from the docs (and yes, you can also <a href=\"https:\/\/docs.readme.com\/main\/docs\/reference-core-pages\">set these pages up for your users<\/a>!) \ud83d\udd11<\/li>\n<\/ul>\n\n\n\n<p>While these changes have been great from a security and developer experience standpoint, none of these could possibly address a common problem amongst developers: juggling lots of API keys. Figuring out where keys came from, rotating keys, maintaining separate keys for separate environments\/users\u2026the list goes on! It\u2019s a necessary evil for developers when a key inevitably gets leaked \ud83d\ude40<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/blog.readme.com\/content\/images\/2022\/11\/GS-A-Pages-in-Hub.gif\" alt=\"\"\/><figcaption class=\"wp-element-caption\"><span style=\"white-space: pre-wrap;\">The Getting Started and Authentication pages in the API reference \ud83d\udd11<\/span><\/figcaption><\/figure>\n\n\n\n<p>Our knowledge base has grown to the point of <a href=\"https:\/\/docs.readme.com\/main\/changelog\/2022-11-30-v4-286-0\">switching over to a multi-project setup for our docs<\/a>. Because of this, we\u2019re now working with many API keys across several ReadMe projects, which is also the case with many of our Enterprise customers. And once you start dealing with multiple API keys that you\u2019re sharing with your team, it can get chaotic rather quickly.<\/p>\n\n\n\n<p>1Password has proven to be a useful management tool for API keys not only because of its security, but also because you can jot down notes for a given API key. You can use this to provide helpful context for fellow engineers, like expiration dates, links to management dashboards, where it\u2019s used, etc. While it\u2019s easy enough to store these credentials in your password manager, what about using your password manager as the single source of truth so you can load secrets into your developer environments in a secure, automated way?<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/blog.readme.com\/content\/images\/2023\/01\/CleanShot-2023-01-24-at-15.03.03@2x.png\" alt=\"\"\/><figcaption class=\"wp-element-caption\"><span style=\"white-space: pre-wrap;\">When adding an API key to 1Password, include detailed notes for context \u2014 your fellow engineers will thank you!<\/span><\/figcaption><\/figure>\n\n\n\n<p>Luckily, <a href=\"https:\/\/blog.1password.com\/shell-plugins-roundup\/\">1Password introduced shell plugins<\/a>, which are integrations that securely pass API keys into your favorite command line tools, including <code>gh<\/code> (the GitHub CLI), <code>twilio<\/code> (the Twilio CLI), and (you can probably guess where I\u2019m going with this\u2026) <code>rdme<\/code> (the ReadMe CLI)! Let\u2019s dive into the ReadMe shell plugin below.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"say-hello-to-the-readme-shell-plugin-%F0%9F%90%9A\">Say hello to the ReadMe shell plugin \ud83d\udc1a<\/h1>\n\n\n\n<p>With the ReadMe shell plugin set up, you can keep your ReadMe API key in 1Password and securely pass it into your <code>rdme<\/code> commands. What does this look like in practice? A quick scan of your fingerprint (if you\u2019re a macOS user):<\/p>\n\n\n\n<figure class=\"kg-card kg-video-card kg-width-wide\" data-kg-thumbnail=\"https:\/\/blog.readme.com\/content\/images\/2023\/01\/media-thumbnail-ember277.jpg\" data-kg-custom-thumbnail=\"\">\n<div class=\"kg-video-container\"><video style=\"background: transparent url('https:\/\/blog.readme.com\/content\/images\/2023\/01\/media-thumbnail-ember277.jpg') 50% 50% \/ cover no-repeat;\" src=\"https:\/\/blog.readme.com\/content\/media\/2023\/01\/readme-1p.mp4\" poster=\"https:\/\/img.spacergif.org\/v1\/2132x910\/0a\/spacer.png\" preload=\"metadata\" autoplay=\"autoplay\" loop=\"loop\" muted=\"\" width=\"2132\" height=\"910\"><\/video>\n<div class=\"kg-video-overlay\">&nbsp;<\/div>\n<div class=\"kg-video-player-container kg-video-hide\">\n<div class=\"kg-video-player\"><button class=\"kg-video-play-icon\"> <\/button> <button class=\"kg-video-pause-icon kg-video-hide\"> <\/button> <span class=\"kg-video-current-time\">0:00<\/span>\n<div class=\"kg-video-time\">\/<span class=\"kg-video-duration\">0:15<\/span><\/div>\n<p><input class=\"kg-video-seek-slider\" max=\"100\" type=\"range\" value=\"0\"> <button class=\"kg-video-playback-rate\">1\u00d7<\/button> <button class=\"kg-video-unmute-icon\"> <\/button> <button class=\"kg-video-mute-icon kg-video-hide\"> <\/button> <input class=\"kg-video-volume-slider\" max=\"100\" type=\"range\" value=\"100\"><\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/figure>\n\n\n\n<p>Pretty slick, right? Let\u2019s walk through how this all works:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>First, make sure you have <a href=\"https:\/\/github.com\/readmeio\/rdme#readme\">the latest version of <code>rdme<\/code><\/a>, <a href=\"https:\/\/1password.com\/downloads\">the 1Password desktop app<\/a> (Mac or Linux only), and <a href=\"https:\/\/developer.1password.com\/docs\/cli\/get-started\/#install\">the 1Password CLI<\/a> (version 2.12.0 or above) installed \ud83d\udcbf<\/li>\n\n\n\n<li>Next, <a href=\"https:\/\/developer.1password.com\/docs\/cli\/shell-plugins\/readme\/\">set up the ReadMe shell plugin for the 1Password CLI<\/a>. This will create (or import, if it already exists) a 1Password item that contains your ReadMe API key \ud83d\udc1a<\/li>\n\n\n\n<li>Once everything is set up, 1Password CLI will listen to your terminal for <code>rdme<\/code> commands that require authentication (i.e., authenticated commands like <code>rdme openapi<\/code> are listened for and non-authenticated commands like <code>rdme --help<\/code> will be ignored) \ud83d\udc42<\/li>\n\n\n\n<li>When a <code>rdme<\/code> command is executed that requires authentication, the 1Password CLI will prompt you for your fingerprint (or whatever authentication setup you have for the 1Password app) \u261d\ufe0f<\/li>\n\n\n\n<li>The 1Password vault is unlocked, your ReadMe API key is securely passed into the terminal command, and <code>rdme<\/code> is connected to your ReadMe project \ud83d\ude80<\/li>\n<\/ul>\n\n\n\n<p>While this approach to passing credentials into <code>rdme<\/code> is both convenient and secure, do you want to know what\u2019s my favorite part about this experience? If you\u2019re juggling many API keys across several ReadMe projects like we are, you can store all of them in 1Password and have the ReadMe shell plugin confine your credentials to a specific directory or terminal session.<\/p>\n\n\n\n<p>With the ReadMe shell plugin, you\u2019ll be an expert API key juggler in no time!<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"some-bonus-%E2%80%9Caction%E2%80%9D-%F0%9F%8E%AC\">Some bonus \u201caction\u201d \ud83c\udfac<\/h1>\n\n\n\n<p>But wait, there\u2019s more! As an added benefit of securely storing API keys in your 1Password vault, you can safely <a href=\"https:\/\/developer.1password.com\/docs\/ci-cd\/github-actions\">load them into CI\/CD environments<\/a>, like GitHub Actions. This is great news, because <a href=\"https:\/\/blog.readme.com\/auto-magically-sync-to-readme-with-github-actions\/\"><code>rdme<\/code> happens to have first-class support for GitHub Actions<\/a>!<\/p>\n\n\n\n<p>Here\u2019s yet another great example of how 1Password and <code>rdme<\/code> can work together in harmony to securely sync a directory of Markdown files to ReadMe:<\/p>\n\n\n\n<style>\n.custom-code-block {\n    background-color: #2e3440;\n    color: #d4d4d4;\n    padding: 16px;\n    border-radius: 8px;\n    font-size: 14px;\n    line-height: 1.5;\n    overflow-x: auto;\n}\n\n.custom-code-block .comment {\n    color: #4c566a;\n}\n\n.custom-code-block .keyword {\n    color: #89b3b3;\n    font-weight: bold;\n}\n\n.custom-code-block .variable {\n    color: #89b3b3;\n}\n\n.custom-code-block .string {\n    color: #a3be8c; \n}\n<\/style>\n\n<div class=\"custom-code-block\">\n<pre><code>\n<span class=\"comment\"># Runs on every push to the `main` branch<\/span>\n<span class=\"keyword\">on<\/span>:\n    <span class=\"variable\">push<\/span>:\n        <span class=\"variable\">branches<\/span>: [<span class=\"string\">main<\/span>]\n\n<span class=\"keyword\">jobs<\/span>:\n    <span class=\"variable\">sync-to-readme<\/span>:\n        <span class=\"variable\">runs-on<\/span>: <span class=\"string\">ubuntu-latest<\/span>\n        <span class=\"variable\">steps<\/span>:\n            - <span class=\"variable\">uses<\/span>: <span class=\"string\">actions\/checkout@v3<\/span>\n\n            - <span class=\"variable\">name<\/span>: <span class=\"string\">Load secret from 1Password<\/span>\n                <span class=\"variable\">uses<\/span>: <span class=\"string\">1password\/load-secrets-action@v1<\/span>\n                <span class=\"variable\">with<\/span>:\n                    <span class=\"comment\"># Export loaded secrets as environment variables<\/span>\n                    <span class=\"variable\">export-env<\/span>: <span class=\"string\">true<\/span>\n                <span class=\"variable\">env<\/span>:\n                    <span class=\"variable\">OP_CONNECT_HOST<\/span>: <span class=\"string\">&lt;Your Connect instance URL&gt;<\/span>\n                    <span class=\"variable\">OP_CONNECT_TOKEN<\/span>: <span class=\"string\">${{ secrets.OP_CONNECT_TOKEN }}<\/span>\n                    <span class=\"variable\">RDME_API_KEY<\/span>: <span class=\"string\">\"op:\/\/engineering\/readme\/api-key\"<\/span>\n\n            - <span class=\"variable\">name<\/span>: <span class=\"string\">Sync OpenAPI file to ReadMe \ud83e\udd89<\/span>\n                <span class=\"variable\">uses<\/span>: <span class=\"string\">readmeio\/rdme@v8<\/span>\n                <span class=\"variable\">with<\/span>:\n                    <span class=\"comment\"># `rdme` automatically reads the `RDME_API_KEY` env variable<\/span>\n                    <span class=\"variable\">rdme<\/span>: <span class=\"string\">docs .\/documentation<\/span>\n<\/code><\/pre>\n<\/div>\n\n\n\n<p>Let\u2019s break down what\u2019s happening in the example above:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>This workflow kicks off when a commit is pushed to the <code>main<\/code> branch of your GitHub repository.<\/li>\n\n\n\n<li><a href=\"https:\/\/developer.1password.com\/docs\/ci-cd\/github-actions#export-secrets-as-environment-variables\">1Password\u2019s GitHub Action<\/a> establishes a secure connection to 1Password, grabs the ReadMe API key value and exports that as an environmental variable called <code>RDME_API_KEY<\/code>.<\/li>\n\n\n\n<li>The <a href=\"https:\/\/github.com\/marketplace\/actions\/rdme-sync-to-readme#authentication\"><code>rdme<\/code> GitHub Action automatically detects<\/a> <code>RDME_API_KEY<\/code> as an environmental variable containing your ReadMe API key, and uses that to sync your Markdown docs (located in the <code>documentation\/<\/code> folder) to your ReadMe project.<\/li>\n<\/ul>\n\n\n\n<p>With the power of 1Password and <code>rdme<\/code>, you can securely sync your docs to ReadMe \u2014 whether you\u2019re working in the command line or in a GitHub Actions runner \ud83d\ude0c<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"now-let%E2%80%99s-get-you-plugged-in-%F0%9F%94%8C\">Now let\u2019s get you plugged in \ud83d\udd0c<\/h1>\n\n\n\n<p>Ready to start syncing? The integrations described above are available now:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Head over to <a href=\"https:\/\/developer.1password.com\/docs\/cli\/shell-plugins\/readme\/\">the 1Password Developer docs<\/a> to get the ReadMe shell plugin up and running \ud83d\udc1a<\/li>\n\n\n\n<li>Check out our docs on <a href=\"https:\/\/docs.readme.com\/main\/docs\/rdme#github-actions-usage\">setting up the <code>rdme<\/code> GitHub Action<\/a> and <a href=\"https:\/\/developer.1password.com\/docs\/ci-cd\/github-actions\/\">1Password\u2019s docs on loading secrets into your GitHub Actions workflows<\/a> \ud83c\udf0a<\/li>\n\n\n\n<li>Check out my appearance on the <a href=\"https:\/\/randombutmemorable.simplecast.com\/episodes\/the-developer-special\">&#8220;The Developer Special&#8221; episode of 1Password&#8217;s &#8220;Random but Memorable&#8221; podcast<\/a>. We have a wide-ranging conversation about 1Password&#8217;s developer tools, developer tools in general, and upcoming projects we&#8217;re cooking up here at ReadMe \ud83c\udf99\ufe0f<\/li>\n\n\n\n<li>Join us on May 11th in SF at <a href=\"https:\/\/apimixtape.com\/\">API Mixtape<\/a>, where we&#8217;ll be talking all things developers with folks from 1Password, Twilio, and more. Use the code 1PASS for a <strong>free<\/strong> ticket (hurry, just a few of these codes are available!) \ud83d\udcfc<\/li>\n<\/ul>\n\n\n\n<p>We\u2019re always looking for ways to make ReadMe\u2019s developer tools safer and more enjoyable to use. If you have any feedback about your ReadMe experience, feel free to reach out to us at <a href=\"mailto:support@readme.io\">support@readme.io<\/a> or <a href=\"https:\/\/github.com\/readmeio\/rdme\/issues\/new\">open up an issue in the <code>rdme<\/code> repository<\/a>. We\u2019d love to hear from you! \ud83e\udd89<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Long-time followers of the ReadMe blog know I have been absolutely shameless in my love for 1Password. It&#8217;s a great password manager that we use here at ReadMe to securely store shared logins, API keys, and more. Staying secure online is increasingly difficult these days, and we\u2019ve been able to safely rely on 1Password for [&hellip;]<\/p>\n","protected":false},"author":6,"featured_media":2320,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"content-type":"","inline_featured_image":false,"footnotes":""},"categories":[24],"tags":[45],"ppma_author":[49],"class_list":["post-2330","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-readme-journey","tag-developer-experience"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v23.0 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Authenticating Into ReadMe\u2019s CLI With 1Password and Your Fingerprint \u261d\ufe0f - ReadMe: Resource Library<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/readme.com\/resources\/1password-shell-plugin\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Authenticating Into ReadMe\u2019s CLI With 1Password and Your Fingerprint \u261d\ufe0f - ReadMe: Resource Library\" \/>\n<meta property=\"og:description\" content=\"Long-time followers of the ReadMe blog know I have been absolutely shameless in my love for 1Password. It&#8217;s a great password manager that we use here at ReadMe to securely store shared logins, API keys, and more. Staying secure online is increasingly difficult these days, and we\u2019ve been able to safely rely on 1Password for [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/readme.com\/resources\/1password-shell-plugin\" \/>\n<meta property=\"og:site_name\" content=\"ReadMe: Resource Library\" \/>\n<meta property=\"article:published_time\" content=\"2023-05-04T15:53:29+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-12-17T01:54:37+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/readme.com\/resources\/wp-content\/uploads\/2023\/05\/1p-banner-1360x500-1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"2000\" \/>\n\t<meta property=\"og:image:height\" content=\"735\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Kanad Gupta\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Kanad Gupta\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/readme.com\/resources\/1password-shell-plugin\",\"url\":\"https:\/\/readme.com\/resources\/1password-shell-plugin\",\"name\":\"Authenticating Into ReadMe\u2019s CLI With 1Password and Your Fingerprint \u261d\ufe0f - ReadMe: Resource Library\",\"isPartOf\":{\"@id\":\"https:\/\/readme.com\/resources\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/readme.com\/resources\/1password-shell-plugin#primaryimage\"},\"image\":{\"@id\":\"https:\/\/readme.com\/resources\/1password-shell-plugin#primaryimage\"},\"thumbnailUrl\":\"https:\/\/readme.com\/resources\/wp-content\/uploads\/2023\/05\/1p-banner-1360x500-1.png\",\"datePublished\":\"2023-05-04T15:53:29+00:00\",\"dateModified\":\"2025-12-17T01:54:37+00:00\",\"author\":{\"@id\":\"https:\/\/readme.com\/resources\/#\/schema\/person\/5ff0ec37fac9e314594c7a5564ee24ad\"},\"breadcrumb\":{\"@id\":\"https:\/\/readme.com\/resources\/1password-shell-plugin#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/readme.com\/resources\/1password-shell-plugin\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/readme.com\/resources\/1password-shell-plugin#primaryimage\",\"url\":\"https:\/\/readme.com\/resources\/wp-content\/uploads\/2023\/05\/1p-banner-1360x500-1.png\",\"contentUrl\":\"https:\/\/readme.com\/resources\/wp-content\/uploads\/2023\/05\/1p-banner-1360x500-1.png\",\"width\":2000,\"height\":735},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/readme.com\/resources\/1password-shell-plugin#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/readme.com\/resources\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Authenticating Into ReadMe\u2019s CLI With 1Password and Your Fingerprint \u261d\ufe0f\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/readme.com\/resources\/#website\",\"url\":\"https:\/\/readme.com\/resources\/\",\"name\":\"ReadMe: Resource Library\",\"description\":\"Making API documentation better for everyone\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/readme.com\/resources\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/readme.com\/resources\/#\/schema\/person\/5ff0ec37fac9e314594c7a5564ee24ad\",\"name\":\"Kanad Gupta\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/readme.com\/resources\/#\/schema\/person\/image\/f411bab14c6f25f8d94c6658c39badd3\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/e1918540f557e223e19f33cf4db88f78bee3594cbcc066d92c4b609b68123058?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/e1918540f557e223e19f33cf4db88f78bee3594cbcc066d92c4b609b68123058?s=96&d=mm&r=g\",\"caption\":\"Kanad Gupta\"},\"description\":\"Joining us remotely from Minneapolis, Kanad forms the newly-minted Minnesota branch of the ReadMe team! We love Minnesota. Kanad just bought a bike and is loving riding around Minneapolis, but he\u2019s less enthused by the whole peddling aspect of it. While biking around MPLS, Kanad is probably listening to Janelle Mon\u00e1e\u2014his Spotify artist of the decade.\",\"url\":\"https:\/\/readme.com\/resources\/author\/kanad\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Authenticating Into ReadMe\u2019s CLI With 1Password and Your Fingerprint \u261d\ufe0f - ReadMe: Resource Library","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/readme.com\/resources\/1password-shell-plugin","og_locale":"en_US","og_type":"article","og_title":"Authenticating Into ReadMe\u2019s CLI With 1Password and Your Fingerprint \u261d\ufe0f - ReadMe: Resource Library","og_description":"Long-time followers of the ReadMe blog know I have been absolutely shameless in my love for 1Password. It&#8217;s a great password manager that we use here at ReadMe to securely store shared logins, API keys, and more. Staying secure online is increasingly difficult these days, and we\u2019ve been able to safely rely on 1Password for [&hellip;]","og_url":"https:\/\/readme.com\/resources\/1password-shell-plugin","og_site_name":"ReadMe: Resource Library","article_published_time":"2023-05-04T15:53:29+00:00","article_modified_time":"2025-12-17T01:54:37+00:00","og_image":[{"width":2000,"height":735,"url":"https:\/\/readme.com\/resources\/wp-content\/uploads\/2023\/05\/1p-banner-1360x500-1.png","type":"image\/png"}],"author":"Kanad Gupta","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Kanad Gupta","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/readme.com\/resources\/1password-shell-plugin","url":"https:\/\/readme.com\/resources\/1password-shell-plugin","name":"Authenticating Into ReadMe\u2019s CLI With 1Password and Your Fingerprint \u261d\ufe0f - ReadMe: Resource Library","isPartOf":{"@id":"https:\/\/readme.com\/resources\/#website"},"primaryImageOfPage":{"@id":"https:\/\/readme.com\/resources\/1password-shell-plugin#primaryimage"},"image":{"@id":"https:\/\/readme.com\/resources\/1password-shell-plugin#primaryimage"},"thumbnailUrl":"https:\/\/readme.com\/resources\/wp-content\/uploads\/2023\/05\/1p-banner-1360x500-1.png","datePublished":"2023-05-04T15:53:29+00:00","dateModified":"2025-12-17T01:54:37+00:00","author":{"@id":"https:\/\/readme.com\/resources\/#\/schema\/person\/5ff0ec37fac9e314594c7a5564ee24ad"},"breadcrumb":{"@id":"https:\/\/readme.com\/resources\/1password-shell-plugin#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/readme.com\/resources\/1password-shell-plugin"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/readme.com\/resources\/1password-shell-plugin#primaryimage","url":"https:\/\/readme.com\/resources\/wp-content\/uploads\/2023\/05\/1p-banner-1360x500-1.png","contentUrl":"https:\/\/readme.com\/resources\/wp-content\/uploads\/2023\/05\/1p-banner-1360x500-1.png","width":2000,"height":735},{"@type":"BreadcrumbList","@id":"https:\/\/readme.com\/resources\/1password-shell-plugin#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/readme.com\/resources\/"},{"@type":"ListItem","position":2,"name":"Authenticating Into ReadMe\u2019s CLI With 1Password and Your Fingerprint \u261d\ufe0f"}]},{"@type":"WebSite","@id":"https:\/\/readme.com\/resources\/#website","url":"https:\/\/readme.com\/resources\/","name":"ReadMe: Resource Library","description":"Making API documentation better for everyone","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/readme.com\/resources\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/readme.com\/resources\/#\/schema\/person\/5ff0ec37fac9e314594c7a5564ee24ad","name":"Kanad Gupta","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/readme.com\/resources\/#\/schema\/person\/image\/f411bab14c6f25f8d94c6658c39badd3","url":"https:\/\/secure.gravatar.com\/avatar\/e1918540f557e223e19f33cf4db88f78bee3594cbcc066d92c4b609b68123058?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/e1918540f557e223e19f33cf4db88f78bee3594cbcc066d92c4b609b68123058?s=96&d=mm&r=g","caption":"Kanad Gupta"},"description":"Joining us remotely from Minneapolis, Kanad forms the newly-minted Minnesota branch of the ReadMe team! We love Minnesota. Kanad just bought a bike and is loving riding around Minneapolis, but he\u2019s less enthused by the whole peddling aspect of it. While biking around MPLS, Kanad is probably listening to Janelle Mon\u00e1e\u2014his Spotify artist of the decade.","url":"https:\/\/readme.com\/resources\/author\/kanad"}]}},"authors":[{"term_id":49,"user_id":6,"is_guest":0,"slug":"kanad","display_name":"Kanad Gupta","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/e1918540f557e223e19f33cf4db88f78bee3594cbcc066d92c4b609b68123058?s=96&d=mm&r=g","first_name":"Kanad","last_name":"Gupta","position":"Developer Advocate & API Engineer","slogan":"Developer Advocate &amp; API Engineer (he\/him)","description":"Joining us remotely from Minneapolis, Kanad forms the newly-minted Minnesota branch of the ReadMe team! We love Minnesota.\r\n\r\nKanad just bought a bike and is loving riding around Minneapolis, but he\u2019s less enthused by the whole peddling aspect of it. While biking around MPLS, Kanad is probably listening to Janelle Mon\u00e1e\u2014his Spotify artist of the decade."}],"_links":{"self":[{"href":"https:\/\/readme.com\/resources\/wp-json\/wp\/v2\/posts\/2330","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/readme.com\/resources\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/readme.com\/resources\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/readme.com\/resources\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/readme.com\/resources\/wp-json\/wp\/v2\/comments?post=2330"}],"version-history":[{"count":0,"href":"https:\/\/readme.com\/resources\/wp-json\/wp\/v2\/posts\/2330\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/readme.com\/resources\/wp-json\/wp\/v2\/media\/2320"}],"wp:attachment":[{"href":"https:\/\/readme.com\/resources\/wp-json\/wp\/v2\/media?parent=2330"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/readme.com\/resources\/wp-json\/wp\/v2\/categories?post=2330"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/readme.com\/resources\/wp-json\/wp\/v2\/tags?post=2330"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/readme.com\/resources\/wp-json\/wp\/v2\/ppma_author?post=2330"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}