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

@namgold/task

v0.1.0

Published

Git-native, markdown-based task management CLI

Downloads

37

Readme

task

task is a local-first, Git-friendly CLI for managing work as markdown files inside the repository.

The markdown files are the source of truth. The CLI is only a helper for creating, listing, updating, validating, and searching tasks.

Task file format

Tasks live under .tasks/ by default. Each task is one markdown file with YAML frontmatter:

---
id: TASK-0001
title: Example task
type: Demo Type
status: Demo Todo
priority: Demo Medium
assignee:
owner:
branch:
pr:
created_at: 2026-05-31
updated_at: 2026-05-31
description:
summary: Short task summary.
---

# Problem

...

The body should stay human-readable and editable. The CLI preserves the markdown body when updating frontmatter.

.taskrc.yml

Repository-level configuration lives in .taskrc.yml.

The fields list is config-driven. Any field name you add there can be created, updated, filtered, and shown by the CLI.

tasks_dir: .tasks
fields:
  - id: $ID
  - status:
      options:
        - Demo Todo
        - Demo In Review
        - Demo Done
      default: Demo Todo
  - priority:
      default: Demo Medium
      options:
        - Demo Low
        - Demo Medium
        - Demo High
  - type:
      options:
        - Demo Bug
        - Demo Feature
        - Demo Chore
      default: Demo Feature
  - assignee
  - title:
      default: Idea Title
  - description
  - pr
  - created_at: $CREATED_AT
  - updated_at: $UPDATED_AT
  - summary
views:
  - Open Tasks:
      filter: 'status != "Demo Done"'
      columns: status, priority, summary, description
  - High Priority Demo:
      filter: '(status != "Demo Done" && priority == "Demo High")'
      sort:
        - priority: descending
        - status: ascending

Commands

task new --title "Demo task title" --type "Demo Feature" --priority "Demo High" --status "Demo Todo"
task list
task list 'status == "Demo Todo"'
task ls 'status != "Demo Done"'
task ls --view demo-open
task count
task count demo-open
task update TASK-0001 status="Demo In Review" assignee=demo-user
task show TASK-0001
task search demo
task validate
task view create demo-open 'status != "Demo Done"' --column status --column priority --sort priority:ascending --sort status:ascending
task view ls
task view rm demo-open

Selectable values are exact strings from .taskrc.yml. Quote values that contain spaces or shell-sensitive characters, as shown above.

Shell completion

The CLI can generate shell completion scripts for Bash, Fish, and Zsh. They suggest saved view names after task view and task count, plus --view values for task list / task ls.

When you install the package with npm i -g @namgold/task, it writes the Bash, Fish, and Zsh completion files into your user completion directories automatically.

The installed Bash, Fish, and Zsh files are updated automatically each time you reinstall or upgrade task with npm i -g @namgold/task.

Global install

Install the CLI locally from the repository with:

npm i -g @namgold/task

This is the preferred install path for using task as a command-line tool.

Linux executable

Build a single Linux executable with:

pnpm bundle:linux

The output is written to release/task-linux-x64.

This uses Node's single-executable application flow, so the binary is Linux-specific and should be built on Linux for the target environment.

macOS Silicon executable

Build a single macOS Apple Silicon executable with:

pnpm bundle:macos-silicon

The output is written to release/task-darwin-arm64.

This uses Node's single-executable application flow, so the binary is macOS-specific and should be built on macOS on Apple Silicon for the target environment.

AI agent integration

The ai/ directory contains ready-to-use guidance for AI assistants.

Claude Code — slash command

mkdir -p .claude/commands
cp ai/skill/SKILL.md .claude/commands/task.md

Registers /task as a custom slash command so Claude Code can create, update, search, and validate tasks in this project.

Codex

cp -r ai/skill/ "$CODEX_HOME/skills/task/"

MCP server (advanced)

ai/mcp/server.js exposes the task CLI as MCP tools (task.new, task.list, task.count, task.update, etc.). See ai/README.md for installation instructions.

Git workflow recommendation

  • Commit task files together with the related code changes.
  • One task should usually map to one branch or pull request.
  • Task status changes should show up in PR diffs.
  • Human decisions belong in markdown, not hidden in generated state.
  • Local or generated cache should not be committed.