From claude-team-toolkit
Trello cards/boards/lists via REST API. Use when user mentions Trello or pastes a trello.com/c/ URL. Multi-account via TRELLO_PROFILE.
npx claudepluginhub tuannv14/claude-team-toolkit --plugin claude-team-toolkitThis skill is limited to using the following tools:
Direct curl + jq against `https://api.trello.com/1/`. Multi-profile via INI.
Prevents silent decimal mismatch bugs in EVM ERC-20 tokens via runtime decimals lookup, chain-aware caching, bridged-token handling, and normalization. For DeFi bots, dashboards using Python/Web3, TypeScript/ethers, Solidity.
Share bugs, ideas, or general feedback.
Direct curl + jq against https://api.trello.com/1/. Multi-profile via INI.
Arguments: $ARGUMENTS. Profile resolution: --profile → TRELLO_PROFILE →
~/.trello/active_profile → [default].
Deps: curl (built-in), jq (choco/scoop/brew install jq).
~/.trello/credentials (mode 600):
[default]
key = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
token = ATTAxxxxxxxxxxxxxxxxxxxxxxxxxxxx
[work]
key = ...
token = ATTA...
Get creds: API key at https://trello.com/app-key → click "Token" → "Allow".
Security: these grant full account access. chmod 600. Never commit.
Skill never prints full token — masks as ****<last4>.
source "$HOME/.claude-team-toolkit/lib/credentials.sh"
ctt_load_creds trello "$PROFILE"
AUTH="key=$CTT_KEY&token=$CTT_TOKEN"
CURL="curl -s --ssl-no-revoke" # --ssl-no-revoke for Windows; harmless elsewhere
300 req / 10s per key. 100 req / 10s per token. Don't loop without sleep.
configure — interactive setupPrompt for profile name + key + token (hidden via read -s). Validate by
calling members/me. Save to creds file (mode 600). Show username +
****<last4> of token.
profile list|use|current|remove — see lib/credentials.shcard <id-or-url> — fetch full card detailAccept raw ID (IdEn7G4l) or URL (https://trello.com/c/IdEn7G4l[/slug]).
ID=$(echo "$ARG" | sed -E 's|.*/c/([^/]+).*|\1|')
$CURL "https://api.trello.com/1/cards/$ID?$AUTH&fields=all&attachments=true&checklists=all&members=true&actions=commentCard&actions_limit=50&list=true&board=true"
Parse with jq → format: title, board.list, status, due, members, labels,
description (markdown), checklists with [x]/[ ], attachments, comments
(actions[] where type=commentCard), shortUrl.
boards — user's boards$CURL "https://api.trello.com/1/members/me/boards?$AUTH&fields=name,url,closed" \
| jq -r '.[] | select(.closed==false) | "\(.id)\t\(.name)\t\(.url)"'
lists <boardId> / cards <listId>$CURL "https://api.trello.com/1/boards/$BOARD_ID/lists?$AUTH&fields=name,closed" \
| jq -r '.[] | select(.closed==false) | "\(.id)\t\(.name)"'
$CURL "https://api.trello.com/1/lists/$LIST_ID/cards?$AUTH&fields=name,desc,due,shortUrl" \
| jq -r '.[] | "\(.id)\t\(.name)\t\(.shortUrl)"'
create <listId> <title> [description]$CURL -X POST "https://api.trello.com/1/cards?$AUTH" \
--data-urlencode "idList=$LIST_ID" \
--data-urlencode "name=$TITLE" \
--data-urlencode "desc=$DESC"
move <cardId> <listId> / comment <cardId> <text> / archive <cardId>$CURL -X PUT "https://api.trello.com/1/cards/$CARD_ID?$AUTH" --data-urlencode "idList=$LIST_ID"
$CURL -X POST "https://api.trello.com/1/cards/$CARD_ID/actions/comments?$AUTH" --data-urlencode "text=$TEXT"
$CURL -X PUT "https://api.trello.com/1/cards/$CARD_ID?$AUTH" -d "closed=true"
search <query>$CURL "https://api.trello.com/1/search?$AUTH&modelTypes=cards&card_fields=name,shortUrl,idBoard,idList&query=$(printf %s "$QUERY" | jq -sRr @uri)" \
| jq -r '.cards[] | "\(.id)\t\(.name)\t\(.shortUrl)"'
--data-urlencode for user-supplied strings. Never raw
interpolate into URL or -d.actions[]. Reverse for chronological./c/<id> and /c/<id>/<slug> resolve
via the same endpoint.~/.trello/credentials.