{"id":37078384,"url":"https://github.com/eggplants/simpleverse","last_synced_at":"2026-01-14T09:10:18.091Z","repository":{"id":37955470,"uuid":"407970324","full_name":"eggplants/simpleverse","owner":"eggplants","description":"API wrapper for versatileapi (https://versatileapi.herokuapp.com/api) in Python","archived":true,"fork":false,"pushed_at":"2023-01-31T17:23:22.000Z","size":99,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-01T20:19:57.165Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://pypi.org/project/simpleverse","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/eggplants.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-09-18T21:22:49.000Z","updated_at":"2023-02-13T09:36:16.000Z","dependencies_parsed_at":"2023-02-16T21:31:28.332Z","dependency_job_id":null,"html_url":"https://github.com/eggplants/simpleverse","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/eggplants/simpleverse","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eggplants%2Fsimpleverse","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eggplants%2Fsimpleverse/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eggplants%2Fsimpleverse/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eggplants%2Fsimpleverse/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eggplants","download_url":"https://codeload.github.com/eggplants/simpleverse/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eggplants%2Fsimpleverse/sbom","scorecard":{"id":368832,"data":{"date":"2025-08-11","repo":{"name":"github.com/eggplants/simpleverse","commit":"595dba713eab1942e872cf8a2efd8623f6d81bfb"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.8,"checks":[{"name":"Maintained","score":0,"reason":"project is archived","details":["Warn: Repository is archived."],"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":-1,"reason":"Found no human activity in the last 14 changesets","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":"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":"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":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/release.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":"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":"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":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"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/release.yml:42: update your workflow using https://app.stepsecurity.io/secureworkflow/eggplants/simpleverse/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:46: update your workflow using https://app.stepsecurity.io/secureworkflow/eggplants/simpleverse/release.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:60: update your workflow using https://app.stepsecurity.io/secureworkflow/eggplants/simpleverse/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:70: update your workflow using https://app.stepsecurity.io/secureworkflow/eggplants/simpleverse/release.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:71: update your workflow using https://app.stepsecurity.io/secureworkflow/eggplants/simpleverse/release.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:75: update your workflow using https://app.stepsecurity.io/secureworkflow/eggplants/simpleverse/release.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:82: update your workflow using https://app.stepsecurity.io/secureworkflow/eggplants/simpleverse/release.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:87: update your workflow using https://app.stepsecurity.io/secureworkflow/eggplants/simpleverse/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/eggplants/simpleverse/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/eggplants/simpleverse/release.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/eggplants/simpleverse/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:27: update your workflow using https://app.stepsecurity.io/secureworkflow/eggplants/simpleverse/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:30: update your workflow using https://app.stepsecurity.io/secureworkflow/eggplants/simpleverse/release.yml/main?enable=pin","Warn: containerImage not pinned by hash: Dockerfile:1: pin your Docker image by updating python:3 to python:3@sha256:819daf0e0d5e5bb88927aea18a9279f870f746c234d45468fd493ab618729866","Warn: pipCommand not pinned by hash: Dockerfile:3","Warn: pipCommand not pinned by hash: Dockerfile:5","Warn: pipCommand not pinned by hash: .github/workflows/release.yml:53","Warn: pipCommand not pinned by hash: .github/workflows/release.yml:54","Info:   0 out of   7 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   6 third-party GitHubAction dependencies pinned","Info:   0 out of   1 containerImage dependencies pinned","Info:   0 out of   4 pipCommand 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":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"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":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"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 'main'"],"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-18T12:30:28.587Z","repository_id":37955470,"created_at":"2025-08-18T12:30:28.587Z","updated_at":"2025-08-18T12:30:28.587Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28414795,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T08:38:59.149Z","status":"ssl_error","status_checked_at":"2026-01-14T08:38:43.588Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: 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":"2026-01-14T09:10:17.494Z","updated_at":"2026-01-14T09:10:18.086Z","avatar_url":"https://github.com/eggplants.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!-- markdownlint-disable MD033 --\u003e\n# simpleverse\n\n[![pre-commit.ci status](https://results.pre-commit.ci/badge/github/eggplants/simpleverse/main.svg)](https://results.pre-commit.ci/latest/github/eggplants/simpleverse/main) [![PyPI](https://img.shields.io/pypi/v/simpleverse?color=blue)](https://pypi.org/project/simpleverse) [![Maintainability](https://api.codeclimate.com/v1/badges/3dafcba23209bf5a4a04/maintainability)](https://codeclimate.com/github/eggplants/simpleverse/maintainability)\n\nAPI wrapper for [versatileapi](https://versatileapi.herokuapp.com/api) in Python\n\n## Install\n\n```bash\npip install simpleverse\n```\n\n## CLI\n\n\u003cdetails\u003e\n\u003csummary\u003eWorkaround for simpleverse's CLI\u003c/summary\u003e\n\n```shellsession\n$ simv -h\nusage: simv [-h]\n            {create_like,cl,create_user,cu,update_user,uu,get_like,gl,get_image,gi,get_post,gp,get_user,gu,submit_post,sp,submit_image,si,repl,rl}\n            ...\n\nSimple command for sending requests to versatileapi\n\npositional arguments:\n  {create_like,cl,create_user,cu,update_user,uu,get_like,gl,get_image,gi,get_post,gp,get_user,gu,submit_post,sp,submit_image,si,repl,rl}\n    create_like (cl)\n    create_user (cu)\n    update_user (uu)\n    get_like (gl)\n    get_image (gi)\n    get_post (gp)\n    get_user (gu)\n    submit_post (sp)\n    submit_image (si)\n    repl (rl)\n\noptional arguments:\n  -h, --help            show this help message and exit\n\n$ simv cu -n eggplants -d \"https://github.com/eggplants/simpleverseを書きました。\"\nb6e4ae19fc2c59ce55c726de44a40dc825faa04d\n\n$ simv gu -u b6e4ae19fc2c59ce55c726de44a40dc825faa04d\n{\n    'id': 'b6e4ae19fc2c59ce55c726de44a40dc825faa04d',\n    '_created_at': '2021-09-19T04:35:11.765+00:00',\n    '_updated_at': '2021-09-19T04:35:11.765+00:00',\n    '_user_id': 'b6e4ae19fc2c59ce55c726de44a40dc825faa04d',\n    'description': 'https://github.com/eggplants/simpleverseを書きました。',\n    'name': 'eggplants'\n}\n\n$ simv sp \"コレはテストです\"\n00210022-a452-4be7-a873-d369b1bf8d70\n\n$ simv gp -p 00210022-a452-4be7-a873-d369b1bf8d70\n{\n    'id': '00210022-a452-4be7-a873-d369b1bf8d70',\n    '_created_at': '2021-09-19T04:45:42.017+00:00',\n    '_updated_at': '2021-09-19T04:45:42.017+00:00',\n    '_user_id': 'b6e4ae19fc2c59ce55c726de44a40dc825faa04d',\n    'text': 'コレはテストです'\n}\n\n$ simv uu -n eggplants -d \"こんにちは。https://github.com/eggplants/simpleverseを書きました。\"\nb6e4ae19fc2c59ce55c726de44a40dc825faa04d\n\n$ simv gu -u b6e4ae19fc2c59ce55c726de44a40dc825faa04d\n{\n    'id': 'b6e4ae19fc2c59ce55c726de44a40dc825faa04d',\n    '_created_at': '2021-09-19T04:35:11.765+00:00',\n    '_updated_at': '2021-09-19T04:46:53.659+00:00',\n    '_user_id': 'b6e4ae19fc2c59ce55c726de44a40dc825faa04d',\n    'description': 'こんにちは。https://github.com/eggplants/simpleverseを書きました。',\n    'name': 'eggplants'\n}\n\n# All posts by a specific user\n$ simv gp | jq '.[]|select(._user_id==\"b6e4ae19fc2c59ce55c726de44a40dc825faa04d\")'\n{\n  \"_created_at\": \"2021-09-18T18:50:33.316+00:00\",\n  \"_updated_at\": \"2021-09-18T18:50:33.316+00:00\",\n  \"_user_id\": \"b6e4ae19fc2c59ce55c726de44a40dc825faa04d\",\n  \"id\": \"12d7d6c5-1412-4299-9fe0-4e11c5261aab\",\n  \"text\": \"test\"\n}\n{\n  \"_created_at\": \"2021-09-19T04:10:35.054+00:00\",\n  \"_updated_at\": \"2021-09-19T04:10:35.054+00:00\",\n  \"_user_id\": \"b6e4ae19fc2c59ce55c726de44a40dc825faa04d\",\n  \"id\": \"81dd0981-de48-47b6-bb81-2bc33579d0d1\",\n  \"text\": \"hello woooooooold!\"\n}\n{\n  \"_created_at\": \"2021-09-19T04:14:44.837+00:00\",\n  \"_updated_at\": \"2021-09-19T04:14:44.837+00:00\",\n  \"_user_id\": \"b6e4ae19fc2c59ce55c726de44a40dc825faa04d\",\n  \"id\": \"b281751f-03a9-47b0-ace1-2dc1be620a2a\",\n  \"text\": \"hello woooooooold!\\n(this post submitted by https://git.io/JzmhD)\"\n}\n{\n  \"_created_at\": \"2021-09-19T04:39:57.808+00:00\",\n  \"_updated_at\": \"2021-09-19T04:39:57.808+00:00\",\n  \"_user_id\": \"b6e4ae19fc2c59ce55c726de44a40dc825faa04d\",\n  \"id\": \"d2f875a4-540e-4332-ae4e-5ac80d435449\",\n  \"text\": \"a\"\n}\n{\n  \"_created_at\": \"2021-09-19T04:45:42.017+00:00\",\n  \"_updated_at\": \"2021-09-19T04:45:42.017+00:00\",\n  \"_user_id\": \"b6e4ae19fc2c59ce55c726de44a40dc825faa04d\",\n  \"id\": \"00210022-a452-4be7-a873-d369b1bf8d70\",\n  \"text\": \"コレはテストです\"\n}\n```\n\n\u003c/details\u003e\n\n## Library\n\n\u003cdetails\u003e\n\u003csummary\u003eClasses and its methods of simpleverse\u003c/summary\u003e\n\n```python\nfrom simpleverse import (\n    CreateLike,\n    CreateUser,\n    GetImageInfo,\n    GetLikeInfo,\n    GetPostInfo,\n    GetUserInfo,\n    SubmitImage,\n    SubmitPost,\n)\n\n\nclass CreateLike(BaseVerseRequests):\n    def create_like(self, post_id: str, like_count: int) -\u003e str: ...\n\nclass CreateUser(BaseVerseRequests):\n    def create_user(self, name: str, description: str) -\u003e str: ...\n    def update_user(self, name: str, description: str) -\u003e str: ...\n\nclass GetImageInfo(BaseVerseRequests):\n    def get_image_all(self) -\u003e List[ImageInfo]: ...\n    def get_image(self, image_id: str) -\u003e ImageInfo: ...\n    def get_image_OData(\n        self,\n        filter_: Optional[str] = ...,\n        order_by: Optional[str] = ...,\n        limit: Optional[int] = ...,\n        skip: Optional[int] = ...,\n    ) -\u003e List[ImageInfo]: ...\n\nclass GetLikeInfo(BaseVerseRequests):\n    def get_like_all(self) -\u003e List[LikeInfo]: ...\n    def get_like(self, post_id: str) -\u003e LikeInfo: ...\n    def get_like_OData(\n        self,\n        filter_: Optional[str] = ...,\n        order_by: Optional[str] = ...,\n        limit: Optional[int] = ...,\n        skip: Optional[int] = ...,\n    ) -\u003e List[LikeInfo]: ...\n\nclass GetPostInfo(BaseVerseRequests):\n    def get_post_all(self) -\u003e List[PostInfo]: ...\n    def get_post(self, post_id: str) -\u003e PostInfo: ...\n    def get_post_OData(\n        self,\n        filter_: Optional[str] = ...,\n        order_by: Optional[str] = ...,\n        limit: Optional[int] = ...,\n        skip: Optional[int] = ...,\n    ) -\u003e List[PostInfo]: ...\n\nclass GetUserInfo(BaseVerseRequests):\n    def get_user_all(self) -\u003e List[UserInfo]: ...\n    def get_user(self, user_id: str) -\u003e UserInfo: ...\n    def get_user_OData(\n        self,\n        filter_: Optional[str] = ...,\n        order_by: Optional[str] = ...,\n        limit: Optional[int] = ...,\n        skip: Optional[int] = ...,\n    ) -\u003e List[UserInfo]: ...\n\nclass SubmitImage(BaseVerseRequests):\n    def submit_image(self, image_data: str, post_id: str) -\u003e str: ...\n\nclass SubmitPost(BaseVerseRequests):\n    def submit_post(\n        self,\n        text: str,\n        rep_user_id: Optional[str] = ...,\n        rep_post_id: Optional[str] = ...,\n        test: bool = ...,\n    ) -\u003e str: ...\n```\n\n\u003c/details\u003e\n\n## Links\n\n### Docs\n\n- [HawkClaws/versatileapi](https://github.com/HawkClaws/versatileapi)\n  - API generator\n- [エンジニア・プログラマにしか使えない SNS を作ってみた話](https://qiita.com/HawkClaws/items/599d7666f55e79ef7f56)\n  - Author's article\n- [Swagger](https://editor.swagger.io/?url=https://gist.githubusercontent.com/YusukeIwaki/ce8a7250fb7e5279267c495324de19f7/raw/292eb24fb381c9af49fc42c901794ec2d98d134a/openapi.yml)\n  - Versatileapi's schema in Swagger\n\n### WebUI Clients (deploying somewhare)\n\n- [chamegashi/Engineer_SNS_Test_Site](https://chamegashi.github.io/Engineer_SNS_Test_Site/)\n  - Repo: \u003chttps://github.com/chamegashi/Engineer_SNS_Test_Site\u003e\n- [dala00/engineer-sns-client](http://engineer-sns-client.vercel.app/)\n  - Repo: \u003chttps://github.com/dala00/engineer-sns-client\u003e\n- [hir0o/sns-for-engineer](http://sns-for-engineer.vercel.app/)\n  - Repo: \u003chttps://github.com/hir0o/sns-for-engineer\u003e\n- [lightwill/sns](https://lightwill.tokyo/dev/sns/)\n  - Posts of spesific user: `https://lightwill.tokyo/dev/sns/?selectUserId={userid}`\n- [nison/json-sns-viewer](https://sns-viewer.nison.jp/)\n  - Repo: \u003chttps://github.com/nison-okrock/json-sns-viewer\u003e\n- [mehm8128/twitter-for-engineer](https://twitter-for-engineer-gs7w7u3rv-mehm8128.vercel.app/)\n  - Repo: \u003chttps://github.com/mehm8128/twitter-for-engineer\u003e\n- [standard-software/programmer-only-sns](https://standard-software.github.io/programmer-only-sns/)\n  - Repo: \u003chttps://github.com/standard-software/programmer-only-sns\u003e\n- [voidproc/engineer-sns-client](https://codesandbox.io/s/engineer-sns-client-l6n6j)\n  - Repo: \u003chttps://github.com/voidproc/engineer-sns-client\u003e\n- [yosket/engineer-sns](https://sofeap.vercel.app/)\n  - Repo: \u003chttps://github.com/yosket/engineer-sns\u003e\n  - Article: [『エンジニア・プログラマにしか使えない SNS を作ってみた話』のクライアントを作ってみた話](https://zenn.dev/yosket/articles/a4402ffa2a12e4)\n\n### CUI Clients\n\n- [daiji-tsutsui/Beelzebub](https://github.com/daiji-tsutsui/Beelzebub)\n  - Ruby\n- [elderica/esns](https://github.com/elderica/esns)\n  - Racket\n- [javaboy-github/only-programer-sns-client](https://github.com/javaboy-github/only-programer-sns-client)\n  - Golang\n- [nyanpyou106/versatileapisns_client](https://github.com/nyanpyou106/versatileapisns_client)\n  - Python\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feggplants%2Fsimpleverse","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feggplants%2Fsimpleverse","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feggplants%2Fsimpleverse/lists"}