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

@4fu/pi-todo

v0.3.1

Published

Manage and plan multiple tasks and checklists in pi with session-aware progress tracking

Downloads

689

Readme

pi-todo

Manage and plan multiple tasks and checklists in pi. Tasks are stored in the current session, progress is recorded without changing the original text, and state follows pi's session branches.

Features

  • One native todo tool with five actions: create, list, add, complete, and cancel
  • Multiple free-form tasks and checklists
  • Exact text preservation, including whitespace and formatting
  • Session and /tree branch-aware persistence through tool-result events
  • A fixed recovery hint after compaction when unfinished tasks exist
  • A compact TUI widget showing up to three recently updated active tasks
  • A read-only /todos TUI view for full task and progress details

Tool

Create a task

{ "action": "create", "text": "Implement the feature:\n- storage\n- tool\n- tests" }

List unfinished tasks

{ "action": "list" }

The list ends with a one-line summary of completed tasks; cancelled tasks are excluded.

Pass an ID to inspect one task, including its complete progress history:

{ "action": "list", "id": "a13f92bc" }

Add progress

{ "action": "add", "id": "a13f92bc", "text": "Finished the state layer and tests." }

Complete a task

{ "action": "complete", "id": "a13f92bc" }

Cancel a task

{ "action": "cancel", "id": "a13f92bc" }

Cancelling abandons a task without marking it done. Cancelled tasks leave the active list, do not appear in the completed summary, and reject further progress. A completed task cannot be cancelled.

Task and progress text is stored exactly as received. The extension does not trim, normalize, parse, or rewrite it. Display-only previews may wrap or truncate without changing stored content.

TUI

When unfinished tasks exist, a widget above the editor shows up to three recently updated tasks and their latest progress. Run /todos for the read-only full view. The widget and command output are TUI-only and are not added to the model context.

Persistence and compaction

Mutation events are stored in todo tool-result details and replayed from the active session branch on startup and /tree navigation. No project or global task file is created.

After a compaction occurs while unfinished tasks exist, the extension appends this fixed line to subsequent system prompts:

There are unfinished tasks in todo. Use todo with action "list" to view them.

No task content is injected into the system prompt.

Installation

With pi:

pi install npm:@4fu/pi-todo

Or link the repository locally:

pi config set extensions./path/to/pi-todo

Development

Requires Node.js 22.19 or newer.

npm install
npm run typecheck
npm test

Pi loads src/index.ts directly; there is no build step.

License

MIT