{"id":45778696,"url":"https://github.com/jonathanvanschenck/taskwarrior-telegram-bot","last_synced_at":"2026-02-26T10:52:11.647Z","repository":{"id":337928948,"uuid":"1155597031","full_name":"jonathanvanschenck/taskwarrior-telegram-bot","owner":"jonathanvanschenck","description":"A telegram bot for all your taskwarrior needs","archived":false,"fork":false,"pushed_at":"2026-02-12T06:05:58.000Z","size":40,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-02-12T11:32:26.715Z","etag":null,"topics":["taskwarrior","taskwarrior2","taskwarrior3","telegraf","telegram"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"isc","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jonathanvanschenck.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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-11T17:30:22.000Z","updated_at":"2026-02-12T06:01:10.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/jonathanvanschenck/taskwarrior-telegram-bot","commit_stats":null,"previous_names":["jonathanvanschenck/taskwarrior-telegram-bot"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/jonathanvanschenck/taskwarrior-telegram-bot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonathanvanschenck%2Ftaskwarrior-telegram-bot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonathanvanschenck%2Ftaskwarrior-telegram-bot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonathanvanschenck%2Ftaskwarrior-telegram-bot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonathanvanschenck%2Ftaskwarrior-telegram-bot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jonathanvanschenck","download_url":"https://codeload.github.com/jonathanvanschenck/taskwarrior-telegram-bot/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonathanvanschenck%2Ftaskwarrior-telegram-bot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29856759,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-26T08:51:08.701Z","status":"ssl_error","status_checked_at":"2026-02-26T08:50:19.607Z","response_time":89,"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":["taskwarrior","taskwarrior2","taskwarrior3","telegraf","telegram"],"created_at":"2026-02-26T10:52:10.638Z","updated_at":"2026-02-26T10:52:11.635Z","avatar_url":"https://github.com/jonathanvanschenck.png","language":"JavaScript","readme":"# Taskwarrior Telegram Bot\n\nA Telegram bot that provides a chat interface to [Taskwarrior](https://taskwarrior.org/), the command-line task management tool.\n\n\n[![GitHub Release](https://img.shields.io/github/v/release/jonathanvanschenck/taskwarrior-telegram-bot)](https://github.com/jonathanvanschenck/taskwarrior-telegram-bot/releases)\n[![License: ISC](https://img.shields.io/badge/License-ISC-blue.svg)](LICENSE)\n\n## Note from the author\nI really just made this for myself, to get push notifications and easy task creation on mobile, but hopefully you will find it useful too!\n\nThis bot is still in early development and may have bugs or incomplete features. Use at your own risk, and feel free to contribute or report issues! Additionally, many features are still being worked on, so breaking changes may occur in the future.\n\nAdditionally, I primarily use Taskwarrior 3, but I hope to maintain some compatibility with Taskwarrior 2 as well. If you encounter any issues specific to one version, please let me know.\n\n## Features\n\n| Command | Description |\n|---|---|\n| `/start` | Register with the bot and receive a welcome message |\n| `/stop` | Unregister from the bot and stop receiving messages |\n| `/help` | Show available commands |\n| `/version` | Show bot and Taskwarrior versions |\n| `/list [filter]` | List tasks (with optional filter) |\n| `/info \u003cid\u003e` | Show detailed task info |\n| `/add \u003cdescription\u003e` | Add a new task |\n| `/modify \u003cid\u003e \u003cmods\u003e` | Modify an existing task |\n| `/annotate \u003cid\u003e \u003ctext\u003e` | Add an annotation to a task |\n| `/begin \u003cid\u003e` | Start a task |\n| `/end \u003cid\u003e` | Stop a task |\n| `/done \u003cid\u003e` | Mark a task as done |\n| `/delete \u003cid\u003e` | Delete a task |\n\n## Setup\n\n### Environment Variables\n\n| Variable | Required | Description |\n|---|---|---|\n| `TELEGRAM_BOT_TOKEN` | Yes | Telegram bot API token |\n| `TELEGRAM_CHAT_ID` | No | Restrict bot to a specific chat. This is *highly* suggested, otherwise anyone can edit your tasks |\n| `TELEGRAM_USER_ID` | No | Restrict bot to a specific user |\n| `DB_DATA` | No | Path to directory for sqlite database, default is `$HOME/.ttb` (you can use ':memory:' to run in RAM, or set to empty string to turn the db off completely) |\n| `TW_BIN` | No | Path to `task` binary, default is `task` |\n| `TW_TASKRC` | No | Path to `.taskrc`, default is `$HOME/.task` |\n| `TW_TASKDATA` | No | Path to task data directory, default is `$HOME/.taskrc` |\n| `CRON_DATA` | No | Path to the diretory for the cron files (`*.json`) defualt is `$HOME/.ttb` |\n\n### Telegram Setup\n\n1. Create a new bot using [@BotFather](https://t.me/BotFather) and get the API token.\n2. (Highly recommended) Get your user ID using a bot like [@JsonDumpBot](https://t.me/JsonDumpBot).\n3. Set your environment variables, including `TELEGRAM_BOT_TOKEN`, `TELEGRAM_CHAT_ID`, and/or `TELEGRAM_USER_ID` to restrict access to the bot.\n4. Create a chat with your bot (or use an existing group chat) and send the `/start` command to register with the bot.\n\n### Cron\nThe bot can run scheduled commands using (Vixie) cron scheduling. To enable this feature, put a `cron.json` (well, any json file, actually) in the `CRON_DATA` directory with the following format:\n```js\n[\n    {\n        \"schedule\": \"*/5 * * * * *\", // \u003c- Vixie cron format with seconds field\n        \"command\": {\n            \"type\": \"list\",  // \u003c- any method of the Taskwarrior class can be used here\n            \"args\": [\"project:Work +mytag\"] // \u003c- array of arguments to pass to the method\n        }\n    }\n]\n```\n\n### Docker\n\nPre-built images are available on GHCR for both Taskwarrior 2 and 3, on `amd64` and `arm64`:\n\n```bash\n# Taskwarrior 2\ndocker run -d \\\n  -e TELEGRAM_BOT_TOKEN=your-token \\\n  -e TELEGRAM_CHAT_ID=your-chat-id \\\n  -e DB_DATA=/data/ttb \\\n  -e CRON_DATA=/data/ttb \\\n  -e TW_TASKRC=/data/taskrc \\\n  -e TW_TASKDATA=/data/taskdata \\\n  -v /path/to/taskdata:/data/taskdata \\\n  -v /path/to/taskrc:/data/taskrc \\\n  -v /path/to/backup:/data/ttb \\\n  ghcr.io/jonathanvanschenck/taskwarrior-telegram-bot:tw2-latest\n\n# Taskwarrior 3\ndocker run -d \\\n  -e TELEGRAM_BOT_TOKEN=your-token \\\n  -e TELEGRAM_CHAT_ID=your-chat-id \\\n  -e DB_DATA=/data/ttb \\\n  -e CRON_DATA=/data/ttb \\\n  -e TW_TASKRC=/data/taskrc \\\n  -e TW_TASKDATA=/data/taskdata \\\n  -v /path/to/taskdata:/data/taskdata \\\n  -v /path/to/taskrc:/data/taskrc \\\n  -v /path/to/backup:/data/ttb \\\n  ghcr.io/jonathanvanschenck/taskwarrior-telegram-bot:tw3-latest\n```\n\n### Docker Compose\n\n```yaml\nservices:\n  bot:\n    image: ghcr.io/jonathanvanschenck/taskwarrior-telegram-bot:tw3-latest\n    volumes:\n      - /path/to/taskdata:/data/taskdata\n      - /path/to/taskrc:/data/taskrc\n      - ./cron:/data/ttb # \u003c- put your cron json files in this directory\n      - ./backup:/data/db # \u003c- this is where the sqlite db will be stored, if you choose to use it\n    environment:\n      - CRON_DATA=/data/ttb\n      - DB_DATA=/data/db\n      - TW_TASKDATA=/data/taskdata\n      - TW_TASKRC=/data/taskrc\n      - TELEGRAM_BOT_TOKEN=your-token\n      - TELEGRAM_CHAT_ID=your-chat-id\n```\n\n## Development\n\n### Local Run\n\n```bash\ncp example.env .env  # then fill in your bot token\nnpm install\nnode index.js\n```\n\n### Dev Compose\n\n```bash\n# Taskwarrior 2\nnpm run build:dev:tw2\nnpm run start:dev:tw2\n\n# Taskwarrior 3\nnpm run build:dev:tw3\nnpm run start:dev:tw3\n```\n\n## License\n\n[ISC](LICENSE)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjonathanvanschenck%2Ftaskwarrior-telegram-bot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjonathanvanschenck%2Ftaskwarrior-telegram-bot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjonathanvanschenck%2Ftaskwarrior-telegram-bot/lists"}