npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

trello-tasker

v0.3.2

Published

A full-screen terminal UI for Trello — focus on today's cards, comment, edit, move, and create, all from the keyboard.

Readme

trello-tasker

A full-screen terminal UI for Trello, built with Ink. Pull every card from every board into one place, focus on what's due today, and comment / edit / move / create cards without leaving the keyboard.

╭─ trello-tasker · You ──────────────────────────────────────────────────────╮
│ VIEWS                  │ Today's Focus (3)                                   │
│ · ★ Today (#today)   3 │ ❯ ◉ Fix login bug        ▪▪  Work    Doing  ◷ May28 │
│   ◉ Assigned to me   5 │   ◉ Review PR #42         ▪   Work    Todo   ◷ 14:00 │
│   ≡ All cards          │ ─ description ───────────────────────────────────── │
│ BOARDS                 │   The login flow breaks when the session cookie …   │
│ · All boards           │ ─ comments ───────────────────────────────────────  │
│   Work               4 │   @you  looking into this now                       │
╰────────────────────────┴─────────────────────────────────────────────────────╯
 focus · all boards   [tab] pane  [j/k] move  [t] focus  [c] comment  [q] quit

Features

  • One view of everything — all boards, lists, cards, and members are pulled locally, then filtered client-side (no per-action round-trips for navigation).
  • Custom viewsToday's Focus (label-driven), Assigned to me, and All cards.
  • See what others are doing — filter by any member.
  • Grouped, collapsible views — a single board groups cards by list; the All cards view groups across boards as board → list. Cards keep their Trello priority order (pos); boards and lists are collapsible (z / Z) and the collapsed state is remembered across restarts. (Focus / Mine across boards stay a flat list sorted by due date.)
  • Edit in place — toggle the focus label, mark a card done (d, per-board Done list), assign board members, manage checklists, add comments, edit descriptions (multi-line editor), move and reorder cards, and create cards.
  • Point and click — click a view, board, or card to select it (mouse on by default; --no-mouse to keep native text selection).
  • Always fresh — the dashboard re-syncs with Trello in the background (every 30 s by default), so changes made on trello.com, on mobile, or by teammates show up on their own. r still forces an immediate reload.
  • MCP servertrello-tasker mcp serves the full Trello toolset over stdio, so AI agents (Claude Code, Claude Desktop, …) can read and write your boards. See MCP server.
  • Themes — six built-in color themes (default, dracula, nord, gruvbox, solarized, mono), switchable live with T.

Install

Requires Node.js ≥ 18.

# from a clone of this repo
npm install
npm run build
npm install -g .        # installs the `trello-tasker` binary globally

Or run without installing globally:

npm run build && node dist/cli.js

To put it on another machine, either publish to npm (see below) or copy a tarball:

npm pack                # produces trello-tasker-x.y.z.tgz
# on the other machine:
npm install -g ./trello-tasker-x.y.z.tgz

Authenticate

trello-tasker login

It walks you through two steps:

  1. Create a Power-Up at https://trello.com/power-ups/admin and copy its API key.
  2. Open the authorization URL it prints, click Allow, and paste the token.

Credentials are stored at ~/.config/trello-tasker/config.json (mode 600). You can also supply them via the TRELLO_API_KEY / TRELLO_TOKEN environment variables. Repeat login on each computer.

Usage

trello-tasker                      # launch the dashboard
trello-tasker --board Work         # open focused on a board
trello-tasker config --focus-label priority   # change the focus label
trello-tasker config --refresh 60  # background-sync every 60 s (0 = off)
trello-tasker whoami               # show the authenticated user
trello-tasker mcp                  # serve the Trello tools over MCP/stdio
trello-tasker logout               # remove stored credentials

Keys

| Key | Action | |-----|--------| | tab / shift+tab | move between panes (views · boards · cards) | | j / k or / | move selection | | click | select a view, board, or card; click a list/board header to collapse or expand it | | 1 / 2 / 3 | Today / Assigned to me / All cards | | f | filter by member | | t | toggle the focus label on the selected card | | d | move the card to its board's Done list (see below) | | D | set which list is the Done list for the board | | a | assign / unassign board members | | l | view / edit checklists (toggle items, add items, new list, delete) | | c | add a comment | | e | edit the description (multi-line; Ctrl+D save, Esc cancel) | | m | move the card to another list (also clears the focus label) | | J / K | reorder the card down / up within its list (board view) | | n | create a new card (tab to add a description, Ctrl+D to save) | | z / Z | collapse/expand the selected list / all lists | | T | change color theme (live preview) | | r | refresh from Trello | | ? | help · q quit |

Marking cards done

Each board can have a designated Done list. Press d on a card to move it there in one keystroke (this also clears the focus label, so it drops out of Today's Focus). The first time you press d on a board, you're prompted to choose which list is "Done"; the choice is remembered per board. Press D any time to change it. The Done list is flagged with a ✓done marker in the card view.

Mouse

Clicking is on by default — click a view or board in the sidebar, or a card in the list, to select it. If you'd rather keep your terminal's native text selection (mouse reporting intercepts it), disable it with --no-mouse or trello-tasker config --no-mouse.

Clicking needs a terminal that supports xterm mouse reporting. Most do — iTerm2, Terminal.app, VS Code, Alacritty, kitty, WezTerm, and Windows Terminal (PowerShell or WSL). The one place it won't work is the legacy Windows console (the old standalone conhost window); use Windows Terminal there. Either way, every action also has a key binding, so the keyboard works everywhere.

Configuration

~/.config/trello-tasker/config.json:

| Field | Meaning | Default | |-------|---------|---------| | apiKey, token | Trello credentials | — | | focusLabel | label name that drives Today's Focus | today | | defaultBoardId | board to open on first | — | | proxy | HTTP(S) proxy URL for hosts without direct egress | — | | theme | color theme: default, dracula, nord, gruvbox, solarized, mono | default | | refreshSeconds | background sync interval in seconds (0 disables) | 30 | | doneLists | per-board Done list ({ "<boardId>": "<listId>" }); set in-app with D | — | | mouse | enable mouse clicks (--no-mouse to disable) | true |

Press T in the app to switch themes with live preview, or set one with trello-tasker config --theme dracula.

Behind a proxy

On a host with no direct internet egress (e.g. a corporate VPC), point it at your proxy — Node's fetch ignores HTTP(S)_PROXY on its own, so set it explicitly:

export HTTPS_PROXY=http://proxy.corp:8080      # honored automatically, or…
trello-tasker config --proxy http://proxy.corp:8080   # persist it in config

If the proxy intercepts TLS with a private CA, also export NODE_EXTRA_CA_CERTS=/path/to/corp-ca.pem.

Collapsed-list state lives separately in ~/.config/trello-tasker/state.json. Config paths can be overridden with TRELLO_TASKER_CONFIG and TRELLO_TASKER_STATE.

MCP server

trello-tasker mcp speaks the Model Context Protocol over stdio and exposes the full Trello surface the TUI uses — 26 tools covering boards, lists, cards, members, labels, comments, and checklists:

| Kind | Tools | |------|-------| | Read | whoami, list_boards, list_lists, list_all_lists, list_cards, search_list_cards, list_board_members, list_labels, get_card_comments, get_card_actions, get_card_checklists | | Write | create_card, update_card, move_card, set_card_position, add_comment, add_member_to_card, remove_member_from_card, add_label_to_card, remove_label_from_card, create_label | | Checklists | create_checklist, delete_checklist, add_check_item, delete_check_item, set_check_item_state |

It reuses the same credentials as the TUI (trello-tasker login, or the TRELLO_API_KEY / TRELLO_TOKEN environment variables), so there is no extra setup.

Add it to an mcp.json (Claude Code project .mcp.json, Cursor, etc.):

{
  "mcpServers": {
    "trello": {
      "command": "trello-tasker",
      "args": ["mcp"]
    }
  }
}

If it isn't installed globally, point at the built bundle instead:

{
  "mcpServers": {
    "trello": {
      "command": "node",
      "args": ["/absolute/path/to/trello_tasker/dist/cli.js", "mcp"]
    }
  }
}

With the Claude Code CLI it's one line:

claude mcp add trello -- trello-tasker mcp

While an agent edits your boards through MCP, the running TUI picks the changes up on its next background sync.

Develop

npm run dev          # run from source (tsx)
npm run typecheck    # tsc --noEmit
npm run smoke        # headless render of the dashboard with mock data
npm run smoke:mcp    # MCP server round-trip against the mock client
npm run mcp          # run the MCP server from source (tsx)
npm run build        # bundle to dist/ (tsup)

Publish (optional)

npm login
npm publish          # runs the build via prepublishOnly
# then on any machine:
npm install -g trello-tasker

License

MIT