{"id":20237363,"url":"https://github.com/lostfictions/heathbot","last_synced_at":"2026-05-01T23:30:59.980Z","repository":{"id":51884407,"uuid":"115086813","full_name":"lostfictions/heathbot","owner":"lostfictions","description":"toots cliffs","archived":false,"fork":false,"pushed_at":"2024-11-17T21:27:00.000Z","size":327146,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-04-03T18:24:45.654Z","etag":null,"topics":["bluesky-bot","bot","botally","bsky","comics","mastodon","node","twitter-bot","typescript"],"latest_commit_sha":null,"homepage":"https://mastodon.social/@heathcliff","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lostfictions.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2017-12-22T06:58:11.000Z","updated_at":"2024-11-17T21:27:04.000Z","dependencies_parsed_at":"2025-06-10T12:08:49.471Z","dependency_job_id":"f30a68a7-7d4c-47b9-aca0-b983812ee7a6","html_url":"https://github.com/lostfictions/heathbot","commit_stats":{"total_commits":33,"total_committers":1,"mean_commits":33.0,"dds":0.0,"last_synced_commit":"9dad1cfb299c11fc9684a0d73e1d2dfabfe21402"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/lostfictions/heathbot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lostfictions%2Fheathbot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lostfictions%2Fheathbot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lostfictions%2Fheathbot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lostfictions%2Fheathbot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lostfictions","download_url":"https://codeload.github.com/lostfictions/heathbot/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lostfictions%2Fheathbot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31815080,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-14T18:05:02.291Z","status":"ssl_error","status_checked_at":"2026-04-14T18:05:01.765Z","response_time":153,"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":["bluesky-bot","bot","botally","bsky","comics","mastodon","node","twitter-bot","typescript"],"created_at":"2024-11-14T08:26:40.804Z","updated_at":"2026-05-01T23:30:59.952Z","avatar_url":"https://github.com/lostfictions.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"## heathbot\n\ntweets and toots Extremely Official Heathcliff Comics™.\n\nhttps://mastodon.social/@heathcliff\n\n~~https://twitter.com/its_heathcliff~~ no longer functional on twitter as of may 2023\n\nhttps://bsky.app/profile/heathbot.bsky.social\n\n![a mixed-up heathcliff comic](https://i.imgur.com/Sm4PpX6.png)\n\nthis is a ~~twitter and~~ mastodon and bsky bot written in [typescript](https://www.typescriptlang.org/) and running on [node.js](http://nodejs.org/).\n\nyou can run it on your computer or remix it into something new! you'll need node and git installed. (you'll also need [yarn v1](https://classic.yarnpkg.com). if you're on a recent version of node, just run [`corepack enable`](https://nodejs.org/api/corepack.html) and you'll be good to go.)\n\nthen run:\n\n```\ngit clone https://github.com/lostfictions/heathbot\ncd heathbot\nyarn install\n```\n\nto install the dependencies.\n\nyou'll also need some heathcliff comics to work with! you can find some on the internet. same them to a folder named `persist/heathcliff` in the repo directory. or place them anywhere els on your computer and set the `DATA_DIR` environment variable when running the bot to tell it where to look.\n\nwhen you're ready, run\n\n```\nyarn dev\n```\n\nto start generating some images locally. they'll be output to your system's temp directory, and the bot will print the file locations as it goes.\n\nin a server environment, this bot can be run with [docker](https://docs.docker.com/) for an easier time. (i recommend [dokku](http://dokku.viewdocs.io/dokku/) if you're looking for a nice way to develop and host bots on your own server.)\n\nthe bot needs environment variables if you want it to do stuff:\n\n- `MASTODON_TOKEN`: a Mastodon user API token\n\n- `MASTODON_SERVER`: the instance to which API calls should be made (usually\n  where the bot user lives.) (default: https://mastodon.social)\n\n- `BSKY_USERNAME`: your Bluesky username\n\n- `BSKY_PASSWORD`: your Bluesky app password\n\n- ~~`TWITTER_API_KEY`, `TWITTER_API_SECRET`, `TWITTER_ACCESS_TOKEN`, and\n  `TWITTER_ACCESS_SECRET`: you need all of these guys to make a tweet.~~ twitter\n  broke api usage in may 2023 and this code has been removed.\n\n- `DATA_DIR`: the directory to search for heathcliff comics. (default:\n  'persist')\n\nheathbot uses the [znv](https://github.com/lostfictions/znv/) library as well as [dotenv](https://github.com/motdotla/dotenv), so you can alternately stick any of the above environment variables in a file named `.env` in the project root. (it's gitignored, so there's no risk of accidentally committing private API tokens you put in there.)\n\n![another mixed-up heathcliff comic](https://i.imgur.com/J061W3c.png)\n\n###### [more bots?](https://github.com/lostfictions?tab=repositories\u0026q=botally)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flostfictions%2Fheathbot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flostfictions%2Fheathbot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flostfictions%2Fheathbot/lists"}