{"id":13830324,"url":"https://github.com/Jopyth/MMM-Trello","last_synced_at":"2025-07-09T11:32:47.724Z","repository":{"id":54922862,"uuid":"62953906","full_name":"Jopyth/MMM-Trello","owner":"Jopyth","description":"This an extension for the MagicMirror. It provides a very simple Trello integration, by displaying cards in a list.","archived":false,"fork":false,"pushed_at":"2023-06-05T12:41:47.000Z","size":57,"stargazers_count":53,"open_issues_count":25,"forks_count":25,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-08-05T10:11:22.638Z","etag":null,"topics":["magic-mirror-modules","magicmirror","trello","trello-api"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Jopyth.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-07-09T14:45:22.000Z","updated_at":"2024-06-03T20:08:04.000Z","dependencies_parsed_at":"2022-08-14T06:40:43.471Z","dependency_job_id":null,"html_url":"https://github.com/Jopyth/MMM-Trello","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jopyth%2FMMM-Trello","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jopyth%2FMMM-Trello/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jopyth%2FMMM-Trello/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jopyth%2FMMM-Trello/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Jopyth","download_url":"https://codeload.github.com/Jopyth/MMM-Trello/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225539375,"owners_count":17485314,"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","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":["magic-mirror-modules","magicmirror","trello","trello-api"],"created_at":"2024-08-04T10:00:58.654Z","updated_at":"2024-11-20T11:30:39.926Z","avatar_url":"https://github.com/Jopyth.png","language":"JavaScript","funding_links":[],"categories":["Productivity"],"sub_categories":[],"readme":"# Module: Trello\nThe `Trello` module displays all cards in a specific [Trello](https://trello.com/) list, in a style similar to the [Newsfeed](https://github.com/MichMich/MagicMirror/tree/master/modules/default/newsfeed) (showing one card at a time).\nApplications can be: displaying a TODO list, showing notes, or important information which needs to be shared between roommates.\n\n![Your card on trello.com](/.github/trellocard.png?raw=true)\n![Your card on the mirror](/.github/mirrorcard.png?raw=true)\n\n## Installation\n\n  1\\. Execute the following commands from your `MagicMirror/modules` folder:\n```bash\ngit clone https://github.com/Jopyth/MMM-Trello.git # clone this repository\ncd MMM-Trello # navigate into the folder\nnpm install # install dependencies\n```\n  2\\. Add the module to your `config/config.js` file (see below for details).\n\n## Using the module\n\nTo use this module you will need a trello API Key, an access token, and your list identifier.\n\nGet your required API Key and Token [here](https://trello.com/app-key), or see 'Configuration Options' for more details.\nAlso find your list id as described [here](https://developers.trello.com/get-started/start-building#create) below *Finding a List ID*.\n\nThen, add it to the modules array in the `config/config.js` file:\n````javascript\n    {\n        module: 'MMM-Trello',\n        position: 'bottom_center', // This can be any of the regions, best results in center regions.\n        config: {\n            // See 'Configuration options' for more information.\n            api_key: \"INSERT_YOUR_API_KEY\",\n            token: \"INSERT_YOUR_TOKEN\",\n            list: \"INSERT_YOUR_LIST_ID\"\n        }\n    },\n````\n\n## Configuration options\n\nThe following properties can be configured:\n\n\n\u003ctable width=\"100%\"\u003e\n\t\u003c!-- why, markdown... --\u003e\n\t\u003cthead\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003cth\u003eOption\u003c/th\u003e\n\t\t\t\u003cth width=\"100%\"\u003eDescription\u003c/th\u003e\n\t\t\u003c/tr\u003e\n\t\u003cthead\u003e\n\t\u003ctbody\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003eapi_key\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003eYour trello API key, get it \u003ca href=\"https://trello.com/app-key\"\u003ehere\u003c/a\u003e.\n\t\t\t\t\u003cbr\u003e \u003cbr\u003e This value is \u003cb\u003eREQUIRED\u003c/b\u003e\n\t\t\t\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003etoken\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003eYour trello token, get it via this link (replace \u003ccode\u003eAPI_KEY\u003c/code\u003e with your API key!): \u003ccode\u003ehttps://trello.com/1/authorize?expiration=never\u0026scope=read\u0026response_type=token\u0026name=Server%20Token\u0026key=API_KEY\u003c/code\u003e.\n\t\t\t\t\u003cbr\u003e \u003cbr\u003e This value is \u003cb\u003eREQUIRED\u003c/b\u003e\n\t\t\t\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003elist\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003eThe id of the list you want to display, check out the section \u003ca href=\"#finding-a-list-id\"\u003eFinding a List ID\u003c/a\u003e.\n\t\t\t\t\u003cbr\u003e \u003cbr\u003e This value is \u003cb\u003eREQUIRED\u003c/b\u003e\n\t\t\t\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003ereloadInterval\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003eHow often does the content need to be fetched (in ms)?\u003cbr\u003e\n\t\t\t\t\u003cbr\u003e\u003cb\u003ePossible values:\u003c/b\u003e any \u003ccode\u003eint\u003c/code\u003e or \u003ccode\u003efloat\u003c/code\u003e\n\t\t\t\t\u003cbr\u003e\u003cb\u003eDefault value:\u003c/b\u003e \u003ccode\u003e5 * 60 * 1000\u003c/code\u003e (every 10 minutes)\n\t\t\t\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003eupdateInterval\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003eHow long should a card be displayed, before switching to the next one (in ms)?\u003cbr\u003e\n\t\t\t\t\u003cbr\u003e\u003cb\u003ePossible values:\u003c/b\u003e any \u003ccode\u003eint\u003c/code\u003e or \u003ccode\u003efloat\u003c/code\u003e\n\t\t\t\t\u003cbr\u003e\u003cb\u003eDefault value:\u003c/b\u003e \u003ccode\u003e10 * 1000\u003c/code\u003e (every 10 seconds)\n\t\t\t\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003eanimationSpeed\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003eDuration of the fade in and fade out effect in ms.\u003cbr\u003e\n\t\t\t\t\u003cbr\u003e\u003cb\u003ePossible values:\u003c/b\u003e any \u003ccode\u003eint\u003c/code\u003e or \u003ccode\u003efloat\u003c/code\u003e\n\t\t\t\t\u003cbr\u003e\u003cb\u003eDefault value:\u003c/b\u003e \u003ccode\u003e2.5 * 1000\u003c/code\u003e (2.5 seconds)\n\t\t\t\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003eshowTitle\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003eWhether to show the title of the card.\u003cbr\u003e\n\t\t\t\t\u003cbr\u003e\u003cb\u003ePossible values:\u003c/b\u003e \u003ccode\u003etrue\u003c/code\u003e or \u003ccode\u003efalse\u003c/code\u003e\n\t\t\t\t\u003cbr\u003e\u003cb\u003eDefault value:\u003c/b\u003e \u003ccode\u003etrue\u003c/code\u003e\n\t\t\t\u003c/td\u003e\n\t\t\u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e\u003ccode\u003eshowDescription\u003c/code\u003e\u003c/td\u003e\n      \u003ctd\u003eWhether to show the description of the card.\u003cbr\u003e\n        \u003cbr\u003e\u003cb\u003ePossible values:\u003c/b\u003e \u003ccode\u003etrue\u003c/code\u003e or \u003ccode\u003efalse\u003c/code\u003e\n        \u003cbr\u003e\u003cb\u003eDefault value:\u003c/b\u003e \u003ccode\u003etrue\u003c/code\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003eisCompleted\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003eIf list symbolizes a set of completed tasks then\u003cbr\u003eenabling this option will strike-out titles.\u003cbr\u003e\n\t\t\t\t\u003cbr\u003e\u003cb\u003ePossible values:\u003c/b\u003e \u003ccode\u003etrue\u003c/code\u003e or \u003ccode\u003efalse\u003c/code\u003e\n\t\t\t\t\u003cbr\u003e\u003cb\u003eDefault value:\u003c/b\u003e \u003ccode\u003efalse\u003c/code\u003e\n\t\t\t\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003eshowLineBreaks\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003eDisplay line breaks in the description? Needs more space if true.\u003cbr\u003e\n\t\t\t\t\u003cbr\u003e\u003cb\u003ePossible values:\u003c/b\u003e \u003ccode\u003etrue\u003c/code\u003e or \u003ccode\u003efalse\u003c/code\u003e\n\t\t\t\t\u003cbr\u003e\u003cb\u003eDefault value:\u003c/b\u003e \u003ccode\u003efalse\u003c/code\u003e\n\t\t\t\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003eshowDueDate\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003eWhether to show the due date of cards, if they have one.\u003cbr\u003e\n\t\t\t\t\u003cbr\u003e\u003cb\u003ePossible values:\u003c/b\u003e \u003ccode\u003etrue\u003c/code\u003e or \u003ccode\u003efalse\u003c/code\u003e\n\t\t\t\t\u003cbr\u003e\u003cb\u003eDefault value:\u003c/b\u003e \u003ccode\u003etrue\u003c/code\u003e\n\t\t\t\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003eshowChecklists\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003eWhether to show checklists of cards.\u003cbr\u003e\n\t\t\t\t\u003cbr\u003e\u003cb\u003ePossible values:\u003c/b\u003e \u003ccode\u003etrue\u003c/code\u003e or \u003ccode\u003efalse\u003c/code\u003e\n\t\t\t\t\u003cbr\u003e\u003cb\u003eDefault value:\u003c/b\u003e \u003ccode\u003etrue\u003c/code\u003e\n\t\t\t\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003eshowChecklistTitle\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003eWhether to show the title of each checklist before the actual check list.\u003cbr\u003e\n\t\t\t\t\u003cbr\u003e\u003cb\u003ePossible values:\u003c/b\u003e \u003ccode\u003etrue\u003c/code\u003e or \u003ccode\u003efalse\u003c/code\u003e\n\t\t\t\t\u003cbr\u003e\u003cb\u003eDefault value:\u003c/b\u003e \u003ccode\u003efalse\u003c/code\u003e\n\t\t\t\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003ewholeList\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003eFor Trello list containing only simple title only cards, it may be more appropriate to see the full list of cards rather than one at a time.  Setting \u003ccode\u003ewholeList\u003c/code\u003e to \u003ccode\u003etrue\u003c/code\u003e will show all cards in the list at the same time.  This will be ugly for complex cards.\u003cbr\u003e\n\t\t\t\t\u003cbr\u003e\u003cb\u003ePossible values:\u003c/b\u003e \u003ccode\u003etrue\u003c/code\u003e or \u003ccode\u003efalse\u003c/code\u003e\n\t\t\t\t\u003cbr\u003e\u003cb\u003eDefault value:\u003c/b\u003e \u003ccode\u003efalse\u003c/code\u003e\n\t\t\t\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\u003c/tbody\u003e\n\u003c/table\u003e\n\n## Finding a List ID\n\nCopied from the [Trello API docs](https://developers.trello.com/get-started/start-building):\n\n\u003e One of the trickier parts of using the Trello API for simple use cases is finding a List ID that belongs to a user. There are a few ways of doing this depending on your skillsets. One such way is to use the Chrome Dev Tools to watch network traffic from the official client.\n\u003e\n\u003e To try to make this easy, we'll be dumping the JSON from a known Card. Open the official Trello web client and find a Card from a list that you want to use as your target.\n\u003e\n\u003e It should have a short URL that looks like\n\u003e\n\u003e https://trello.com/c/DcqBrqdx/1-target-card\n\u003e Take that URL and add .json to the end as follows:\n\u003e\n\u003e https://trello.com/c/DcqBrqdx/1-target-card.json\n\u003e Within the raw JSON dump you get when pulling up this new URL, you will see a field called **idList**.\n\nMake sure you get the id after **idList** (use the search function of your browser - usually accessible with CTRL + F).\nThe first **id** in the *.json* is not the id of the list you are searching for, it is the id of the card.\n\n## FAQ:\n\n### I have a weird error, what should I do?\n\nPlease check below if this is a known error, if not, feel free to post in the [Troubleshooting Section](https://forum.magicmirror.builders/category/29/troubleshooting) of the Forum.\n\n|Error|Possible Solution|\n|-----|-----|\n| Error 404(Not Found): model not found | This can happen when you accidentally take the wrong id. Go through **Finding a list id** [here](#finding-a-list-id) again. Make sure to look for the cryptic number after **idList**, and do not take the first id (that is the card id) in the *.json*.  |\n| Error 400(api_key is empty) | Enter your api_key (see Configuration Options). |\n| Error 400(Bad Request) invalid id | Your list id is not correct. Maybe you forgot a symbol? |\n| Error 401(Unauthorized) unauthorized board permission requested | Something is wrong with your token (see [Configuration Options](#configuration-options)). |\n\nThe MIT License (MIT)\n=====================\n\nCopyright © 2016 Joseph Bethge\n\nPermission is hereby granted, free of charge, to any person\nobtaining a copy of this software and associated documentation\nfiles (the “Software”), to deal in the Software without\nrestriction, including without limitation the rights to use,\ncopy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the\nSoftware is furnished to do so, subject to the following\nconditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\n**The software is provided “as is”, without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose and noninfringement. In no event shall the authors or copyright holders be liable for any claim, damages or other liability, whether in an action of contract, tort or otherwise, arising from, out of or in connection with the software or the use or other dealings in the software.**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FJopyth%2FMMM-Trello","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FJopyth%2FMMM-Trello","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FJopyth%2FMMM-Trello/lists"}