{"id":25723474,"url":"https://github.com/sealambda/revenuecat-cli","last_synced_at":"2026-02-11T03:05:09.778Z","repository":{"id":275968521,"uuid":"925146470","full_name":"sealambda/revenuecat-cli","owner":"sealambda","description":"Unofficial RevenueCat CLI for weird but necessary use cases","archived":false,"fork":false,"pushed_at":"2025-02-07T07:39:10.000Z","size":86,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-09-23T13:09:00.587Z","etag":null,"topics":["cli","python","revenuecat"],"latest_commit_sha":null,"homepage":"https://sealambda.com/","language":"Python","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/sealambda.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","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,"zenodo":null}},"created_at":"2025-01-31T10:17:32.000Z","updated_at":"2025-02-07T09:28:05.000Z","dependencies_parsed_at":"2025-02-05T15:36:25.046Z","dependency_job_id":"798898b8-d380-406e-aa67-a26b48f9c96b","html_url":"https://github.com/sealambda/revenuecat-cli","commit_stats":null,"previous_names":["sealambda/revenuecat-cli"],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/sealambda/revenuecat-cli","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sealambda%2Frevenuecat-cli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sealambda%2Frevenuecat-cli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sealambda%2Frevenuecat-cli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sealambda%2Frevenuecat-cli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sealambda","download_url":"https://codeload.github.com/sealambda/revenuecat-cli/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sealambda%2Frevenuecat-cli/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29326078,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-11T02:08:56.257Z","status":"ssl_error","status_checked_at":"2026-02-11T02:08:51.338Z","response_time":97,"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":["cli","python","revenuecat"],"created_at":"2025-02-25T20:36:27.424Z","updated_at":"2026-02-11T03:05:09.759Z","avatar_url":"https://github.com/sealambda.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003erevcat\u003c/h1\u003e\n\u003ch3 align=\"center\"\u003eUnofficial RevenueCat CLI for weird but necessary use cases\u003c/h2\u003e\n\n\u003cp align=\"center\"\u003e\n    \u003ca  href=\"https://pypi.org/project/revcat/\"\u003e\n        \u003cimg alt=\"CI\" src=\"https://img.shields.io/pypi/v/revcat.svg?style=flat-round\u0026logo=pypi\u0026logoColor=white\"\u003e\n    \u003c/a\u003e\n\u003c/p\u003e\n\n**revcat** lets you interact with the RevenueCat API from the command line, but that’s not really the main reason it exists.\n\nYou could do that with curl or any other HTTP client—if you enjoy writing long, unreadable commands and questioning your life choices.\n\nThe real reason for revcat is to handle the weird but necessary use cases that RevenueCat doesn’t support out of the box. One of those?\nGranting entitlements to a huge list of users via a CSV file.\n\nIn our case, we wanted to grant an early-adopter entitlement to users who signed up before we introduced the paywall. The idea was simple:\nthey had been using certain features for free, and even though some of those features later became PRO, we wanted to let them keep access\nas a thank-you for being there from the start—and let’s be honest, also to prevent a huge spike in our churn rate 🙂.\n\n## ⚙️ Installation\n\n[We recommend](https://sealambda.com/blog/hygienic-python-in-2025) [uv](https://github.com/astral-sh/uv) to run the CLI.\n\n```bash\n# to run the CLI straight away\nuvx revcat --help\n\n# or if you prefer to install it\nuv tool install revcat\n```\n\nYou may of course also use `pip` to install the CLI - or `pipx` if you prefer to install it in an isolated environment.\n\n```bash\npipx install revcat\n\n# ...or if you like to live on the edge\npip install revcat\n```\n\n## 🔨 Usage\n\n```bash\nexport REVENUECAT_API_KEY=\u003capi-key\u003e\nrevcat v1 entitlements grant --user-id \u003cuser-id\u003e --entitlement-id \u003centitlement-id\u003e\n```\n\n## 💻 Contributing\n\nIf you want to contribute to the project, please read the [CONTRIBUTING.md](./CONTRIBUTING.md) file.\n\nIt contains information on how to set up your development environment, submit issues, and create pull requests.\n\n## 📜 License\n\nThis project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsealambda%2Frevenuecat-cli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsealambda%2Frevenuecat-cli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsealambda%2Frevenuecat-cli/lists"}