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

@bumpyclock/tasque

v0.4.0

Published

Simple local-first task tracker. Git-friendly. No DB.

Readme

tasque

Local-first task tracker for coding agents.

  • JSONL source of truth
  • Repo-local storage in .tasque/
  • No DB/service
  • Durable restart + replay

Quickstart

cargo run -- init --no-wizard
cargo run -- create "First task" --kind task -p 1
cargo run -- list
cargo run -- ready --json

Version

cargo run -- --version

Build

cargo build --release

Binary output:

  • Linux/macOS: target/release/tsq
  • Windows: target/release/tsq.exe

Test + Lint + Format

cargo fmt --check
cargo clippy --all-targets --all-features -- -D warnings
cargo test --quiet

CI

GitHub Actions CI (.github/workflows/ci.yml) runs:

  1. cargo fmt --check
  2. cargo clippy --all-targets --all-features -- -D warnings
  3. cargo test --quiet

All steps must pass before merging.

Release Workflows

  • Release Please (.github/workflows/release-please.yml)
    • Runs Rust quality checks
    • Opens/updates release PRs using Rust release type
  • Release From Cargo (.github/workflows/release-from-package.yml)
    • Manual release creation from Cargo.toml version
    • Optional version input must match Cargo version
  • Release (.github/workflows/release.yml)
    • On published GitHub release, builds matrix binaries (Linux/macOS/Windows)
    • Uploads release artifacts + checksums

Storage Layout

Repo-local .tasque/:

  • events.jsonl: canonical append-only event log
  • state.json: derived projection cache (rebuildable, gitignored)
  • snapshots/: periodic checkpoints (gitignored by default)
  • specs/<task-id>/spec.md: canonical markdown specs attached to tasks
  • config.json: config (snapshot_every default 200)
  • .lock: ephemeral write lock
  • .gitignore: local-only artifacts (state.json, .lock, snapshots/, temp files)

Recommended commit policy:

  • Commit .tasque/events.jsonl and .tasque/config.json
  • Do not commit .tasque/state.json

Command List

Global options:

  • --json: JSON envelope output
  • --exact-id: disable partial ID resolution

Commands:

  • tsq init
  • tsq init --install-skill|--uninstall-skill [--skill-targets ...]
  • tsq create [<title>] [--child <title> ...] [--kind ...] [-p ...] [--parent <id>] [--external-ref <ref>] [--discovered-from <id>] [--planning <needs_planning|planned>] [--needs-planning] [--ensure] [--id <tsq-xxxxxxxx>] [--body-file <path|->]
  • tsq show <id>
  • tsq list [--status ...] [--assignee ...] [--external-ref <ref>] [--discovered-from <id>] [--kind ...] [--planning <needs_planning|planned>] [--dep-type <blocks|starts_after>] [--dep-direction <in|out|any>] [--tree]
  • tsq ready [--lane <planning|coding>]
  • tsq watch [--once] [--interval <seconds>] [--status <csv>] [--assignee <name>] [--tree]
  • tsq stale [--days <n>] [--status <status>] [--assignee <name>] [--limit <n>]
  • tsq doctor
  • tsq update <id> [--title ...] [--status ...] [--priority ...] [--external-ref <ref>] [--clear-external-ref] [--discovered-from <id>] [--clear-discovered-from] [--planning <needs_planning|planned>]
  • tsq update <id> --claim [--assignee <a>] [--require-spec]
  • tsq orphans
  • tsq spec attach <id> [source] [--file <path> | --stdin | --text <markdown>]
  • tsq spec check <id>
  • tsq dep add <child> <blocker> [--type <blocks|starts_after>]
  • tsq dep tree <id> [--direction <up|down|both>] [--depth <n>]
  • tsq dep remove <child> <blocker> [--type <blocks|starts_after>]
  • tsq link add <src> <dst> --type <relates_to|replies_to|duplicates|supersedes>
  • tsq link remove <src> <dst> --type <relates_to|replies_to|duplicates|supersedes>
  • tsq duplicate <id> --of <canonical-id> [--reason <text>]
  • tsq duplicates [--limit <n>]
  • tsq merge <source-id...> --into <target-id> [--reason <text>] [--force] [--dry-run]
  • tsq supersede <old-id> --with <new-id> [--reason <text>]
  • tsq note add <id> <text>
  • tsq note list <id>
  • tsq label add <id> <label>
  • tsq label remove <id> <label>
  • tsq label list
  • tsq history <id> [--limit <n>] [--type <event-type>] [--actor <name>] [--since <iso>]