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

@ikenga/skill-thunderbird

v0.2.0

Published

Thunderbird mail skill — read/search the local Thunderbird mbox store and save reply drafts to the IMAP server.

Readme

@ikenga/skill-thunderbird

Thunderbird mail skill for Ikenga — read/search the local Thunderbird mbox store, and save reply drafts to the IMAP server for the user to review and send.

Portable and project-agnostic: it discovers the profile from TBIRD_PROFILE (or the per-OS defaults) and resolves the mailbox password from the host secret store at run time. No hardcoded paths or account-specific credential names.

Install

npx skills add royalti-io/skill-thunderbird   # publish deferred (supervised)

Or via the Ikenga CLI once the 3-copy publish sync is wired (WP-14 pattern).

What it does

| Capability | Path | Description | |---|---|---| | Read | local mbox | Search and extract emails from the offline-store mbox files (by sender, date, subject; large-mailbox tail handling; MIME header decoding). Never modifies the store or syncs IMAP. | | Write drafts | IMAP APPEND | Place a drafted reply into the user's Drafts folder by appending it to the IMAP server with the \Draft flag — correctly threaded (In-Reply-To / References). This is the only write path. |

It does not send mail. The draft-write path goes to the server, never the local mbox — writing a draft into the local offline-store mbox does not work (Thunderbird displays the server view via the .msf index, so a local-only draft never appears and is dropped on compaction). See the skill body for the full mechanism.

Why a separate pkg from @ikenga/skill-mail

skill-mail is dispatch-only over ikenga.db (sqlite.tables, no net, no fs). This skill operates on the local OS mail store and the IMAP server, so it needs a different permission set — fs.read (profile mbox files), shell.execute (grep/stat/etc.), net (IMAP), and vault.keys (mailbox credentials). Keeping it separate preserves skill-mail's tight, sqlite-only contract.

Permissions

| Permission | Why | |---|---| | shell.execute | grep / stat / pgrep / tail / sed for mbox search; node / npx to run the IMAP-append draft helper. | | fs.read | Read-only access to the Thunderbird profile mbox files across the per-OS profile locations. | | fs.write | $pkg_data scratch for large-mailbox extraction only. | | net | IMAP/IMAPS connection for the draft APPEND. | | vault.keys | Mailbox IMAP credentials (*IMAP* key glob), resolved from the host vault at run time — never inlined. |

License

Apache-2.0 — see LICENSE (monorepo root).

Phase

Initial skeleton. Publish sync deferred (supervised) — held changeset + "private": true.