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

@taskwright/cli

v0.1.6

Published

Taskwright CLI — runs the local daemon that orchestrates Claude Code, Codex, Gemini, and Cursor agent CLIs.

Readme

@taskwright/cli

The Taskwright command-line tool. Runs a local daemon that orchestrates Claude Code, Codex CLI, Gemini CLI, and Cursor Agent — running them durably in the background, on a schedule, with policy guardrails and silent failover when one provider rate-limits.

BYO-subscription. Taskwright never pays for inference. Your Claude Max, ChatGPT Plus, Gemini Advanced, and Cursor accounts stay yours, and so do their token budgets. We orchestrate the agent CLIs you already have installed.

Install

npm i -g @taskwright/cli

Requires Node.js ≥ 22. Works on macOS, Linux, and Windows 10+.

Quick start

# 1. Initialize the data directory and config
taskwright init

# 2. Authenticate against the cloud (opens your browser)
taskwright login

# 3. Start the daemon in the foreground
taskwright start

That's it. Once the daemon is running, head to taskwright.dev, define an outcome, and watch your agent run — stdout streams to your dashboard in real time.

Commands

| Command | Description | | ------------------ | ------------------------------------------------------------ | | taskwright init | Seed the data directory (~/.taskwright) and config file | | taskwright login | Device-code OAuth flow — opens browser, mints daemon API key | | taskwright logout| Revoke the daemon API key locally | | taskwright start | Run the daemon in the foreground (PID lock, SIGTERM-safe) | | taskwright stop | Graceful shutdown of a running daemon | | taskwright status| Print PID + lastSeen state |

Run taskwright --help for full flag details, or taskwright <cmd> --help.

How it works

+---------------------+         +----------------------+
|   Web dashboard     |  HTTPS  |   Taskwright cloud   |
|  (taskwright.dev)   |◀───────▶|  (Vercel + Postgres) |
+---------------------+         +----------+-----------+
                                           │ HTTPS / Bearer auth
                                           ▼
                                  +----------------+
                                  |  taskwright    |  <- this CLI
                                  |  (your laptop) |
                                  +-------+--------+
                                          │ child_process.spawn
                       ┌──────────────────┼─────────────────────┐
                       ▼                  ▼                     ▼
                  Claude Code         Codex CLI            Gemini CLI
                  (your sub)         (your sub)           (your sub)
  • Daemon (this CLI) runs locally, polls the cloud for assigned jobs every 60 seconds, and spawns the agent CLI of your choice as a child process.
  • Cloud is a Next.js app that holds the source of truth: outcomes, jobs, schedules, run history. It assigns jobs to your daemon and receives streamed events back.
  • Code never leaves your machine. Only run metadata (timestamps, exit codes, stdout chunks for the dashboard) is synced over the wire.

Data directory

By default, Taskwright stores config, credentials, and run history under:

  • macOS / Linux: ~/.taskwright/
  • Windows: %USERPROFILE%\.taskwright\

Override with --data-dir <path> on any command, or set TASKWRIGHT_DATA_DIR.

Layout:

~/.taskwright/
├── config.json          # api-url, log level, etc.
├── credentials.json     # daemon API key (chmod 600 on POSIX)
├── daemon.db            # SQLite store (jobs, runs, events)
├── .pid                 # PID lock for the running daemon
└── logs/
    └── daemon-2026-04-26.log

Logging in / out

$ taskwright login
Visit: https://taskwright.dev/cli-auth?code=ABCD-1234
(waiting for approval…)
✔ Logged in as [email protected]

$ taskwright logout
✔ Credentials cleared

Configuration

~/.taskwright/config.json:

{
  "apiUrl": "https://taskwright.dev",
  "logLevel": "info",
  "concurrency": 1
}

Each value can be overridden by a flag (--api-url, --log-level, etc.).

Supported agent CLIs

The daemon spawns whichever of these you have installed and authenticated:

  • Claude Code — claude (Anthropic)
  • Codex CLI — codex (OpenAI)
  • Gemini CLI — gemini (Google)
  • Cursor Agent — cursor-agent

If none are installed, taskwright start will warn you and skip job assignment until at least one is available.

Troubleshooting

  • Not logged in — run taskwright login.
  • PID file already exists — another daemon is running, or a previous process didn't shut down cleanly. taskwright stop will clean up.
  • Codex on Windows fails to spawn — see the Windows shell-fix doc.

License

MIT — see LICENSE.