{"id":31572132,"url":"https://github.com/seanpfeifer/coffeebeanbot","last_synced_at":"2025-10-05T13:48:57.473Z","repository":{"id":32508680,"uuid":"100975571","full_name":"seanpfeifer/coffeebeanbot","owner":"seanpfeifer","description":"A Discord bot created to help me through my day. Its current focus is to handle \"Pomodoro Technique\"-style timeboxing notification.","archived":false,"fork":false,"pushed_at":"2025-04-17T00:15:45.000Z","size":246,"stargazers_count":10,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-17T13:16:02.839Z","etag":null,"topics":["bot","discord","discord-bot","discordapp","go","golang","pomodoro","pomodoro-technique"],"latest_commit_sha":null,"homepage":"","language":"Go","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/seanpfeifer.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-08-21T17:15:54.000Z","updated_at":"2025-04-17T00:14:39.000Z","dependencies_parsed_at":"2022-08-07T17:31:58.688Z","dependency_job_id":"59eb8dc2-7b55-43f8-ba82-c2bedd1775a7","html_url":"https://github.com/seanpfeifer/coffeebeanbot","commit_stats":null,"previous_names":[],"tags_count":18,"template":false,"template_full_name":null,"purl":"pkg:github/seanpfeifer/coffeebeanbot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seanpfeifer%2Fcoffeebeanbot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seanpfeifer%2Fcoffeebeanbot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seanpfeifer%2Fcoffeebeanbot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seanpfeifer%2Fcoffeebeanbot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/seanpfeifer","download_url":"https://codeload.github.com/seanpfeifer/coffeebeanbot/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seanpfeifer%2Fcoffeebeanbot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278464271,"owners_count":25991177,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-05T02:00:06.059Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["bot","discord","discord-bot","discordapp","go","golang","pomodoro","pomodoro-technique"],"created_at":"2025-10-05T13:48:56.303Z","updated_at":"2025-10-05T13:48:57.465Z","avatar_url":"https://github.com/seanpfeifer.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CoffeeBeanBot\n\n[![Discord Invite](https://img.shields.io/badge/Invite%20Bot-Discord-blue.svg)](https://discord.com/api/oauth2/authorize?client_id=347286461252370432\u0026scope=bot%20applications.commands) [![GoDoc](https://godoc.org/github.com/seanpfeifer/coffeebeanbot?status.svg)](https://godoc.org/github.com/seanpfeifer/coffeebeanbot) [![Go Report Card](https://goreportcard.com/badge/github.com/seanpfeifer/coffeebeanbot)](https://goreportcard.com/report/github.com/seanpfeifer/coffeebeanbot) ![Build Status](https://github.com/seanpfeifer/coffeebeanbot/workflows/Tests/badge.svg)\n\n`coffeebeanbot` is a coffee bean inspired Discord bot created to help me through my day. Its current focus is to handle \"Pomodoro Technique\"-style timeboxing notification.\n\nIf you simply want to use the bot, and not run your own or customize it, you can [invite it to your Discord server using this link](https://discord.com/api/oauth2/authorize?client_id=347286461252370432\u0026scope=bot%20applications.commands).\n\n* `/pomstart`: Starts a pomodoro\n* `/pomcancel`: Cancels the pomodoro\n\n## Getting Started\n\n### Running using Docker\n\nFor Linux, assuming your `discord.toml` lives at `./secrets`:\n\n```sh\ndocker run -v $(pwd)/secrets:/secrets docker.pkg.github.com/seanpfeifer/coffeebeanbot/cbb:2.1.0\n```\n\nFor Windows PowerShell, assuming your `discord.toml` lives at `./secrets`:\n\n```powershell\ndocker run -v ${PWD}\\secrets:/secrets docker.pkg.github.com/seanpfeifer/coffeebeanbot/cbb:2.1.0\n```\n\nMetrics are disabled by default (see `Metrics` below). If you want your container to report to Stackdriver, you need to override the Docker container's parameters to add `-stackdriver`:\n\n```sh\ndocker run -v $(pwd)/secrets:/secrets docker.pkg.github.com/seanpfeifer/coffeebeanbot/cbb:2.1.0 -cfg /bot/cfg.toml -secrets /secrets/discord.toml -stackdriver\n```\n\n### Installation\n\nIf you simply want to build + install the `cbb` binary on your own, run the following:\n```sh\ngo get github.com/seanpfeifer/coffeebeanbot/cmd/cbb\n```\n\nRetrieve the package using:\n```sh\ngo get github.com/seanpfeifer/coffeebeanbot\n```\n\nBuild and install the `cbb` bot binary using:\n```sh\ngo install github.com/seanpfeifer/coffeebeanbot/cmd/cbb\n```\n\n### Configuration\n\nTwo files are used for configuration:\n\n* `cfg.toml` - general bot config\n* `discord.toml` - bot secrets that shouldn't be shared with others\n\nCreate a `cfg.toml` file that exists wherever you want to run the bot from.\n\nSample `cfg.toml`:\n```toml\nworkEndAudio =  \"audio/airhorn.dca\"\n```\n\nSample `discord.toml`:\n```toml\nauthToken = \"PASTE_AUTH_TOKEN_HERE\"\nappID = \"PASTE_APPLICATION_ID_HERE\"\n```\n\nThe `authToken` and `appID` values can be found at https://discordapp.com/developers/applications/me\n\n* Create your App and copy the `Application ID` into your `discord.toml`.\n* Click `Create a Bot User`.\n* Under \"App Bot User\" click \"click to reveal\" on `Token` and copy the value into your `discord.toml`.\n* Save Changes.\n* Ensure your bot's `Public Bot` setting is what you want it to be.\n\n### Usage\n\nRun the bot's `cbb` executable from the directory containing your `cfg.toml` and `./secrets/discord.toml`. See the output of `cbb -h` for details.\n\nInvite the bot to one of your servers via the URL `https://discordapp.com/api/oauth2/authorize?client_id=CLIENT_ID_HERE\u0026scope=bot%20applications.commands`, replacing `CLIENT_ID_HERE` with your client ID shown in your config.\n\nTo show the current list of commands (and your bot's invite button), use the bot's profile in Discord.\n\n### Metrics\n\nThe following aggregated metrics can be recorded so you can tell how your service is performing:\n\n* `connected_servers` - the current number of connected servers (Discord Guilds)\n* `pomodoros_running` - the current number of Pomodoros actively running\n* `pomodoros_started` - the count of Pomodoros started\n\nAggregated metrics for your running servers are only ever sent to either standard output, or to your Stackdriver if you have it configured. No personal information is ever sent from this service.\n\nTo enable sending metrics to stdout, use the command-line parameter `-stdoutMetrics`\n\nTo enable sending metrics to your configured Stackdriver, use the command-line parameter `-stackdriver`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fseanpfeifer%2Fcoffeebeanbot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fseanpfeifer%2Fcoffeebeanbot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fseanpfeifer%2Fcoffeebeanbot/lists"}