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

@just-easy-tasks/jet

v1.0.6

Published

Command line task management for Just Easy Tasks

Readme

JET CLI

Manage Just Easy Tasks from the command line.

JET is API-first, and the CLI mirrors that shape while keeping common task workflows short for humans and predictable for agents.

Install

npm install -g @just-easy-tasks/jet
jet --help

For local development:

bun install
bun run dev -- --help
bun run check

The published package requires Node.js 22 or newer. Bun is used for development, tests, builds, and release checks.

Configure

jet config set api-key jet_your_secret_here
jet config set output json
jet use workspace acme
jet use project JET
jet doctor
jet task list

The CLI uses https://justeasytasks.com by default.

When the same setting is provided in multiple places, later sources override earlier ones:

  1. Built-in defaults.
  2. User config: %APPDATA%/jet/config.json on Windows, otherwise $XDG_CONFIG_HOME/jet/config.json or ~/.config/jet/config.json.
  3. Local project config found by walking up to .jet/config.json.
  4. Environment variables: JET_API_URL, JET_API_KEY, JET_WORKSPACE, JET_PROJECT, JET_OUTPUT.
  5. CLI flags: --api-url, --api-key, --workspace, --project, --json.

API keys are stored as plaintext when saved with jet config set api-key. Use environment variables or your platform secret manager if local plaintext storage is not acceptable.

Client Cache

The CLI caches selected GET responses for stable metadata such as workspaces, projects, statuses, labels, boards, task types, priorities, and short-lived task resolution. The cache is scoped by API URL and a SHA-256 fingerprint of the API key, so entries are not shared across servers or API keys. Raw API keys are never stored in the cache.

By default the cache is enabled. To bypass it:

jet --refresh project list   # fetch fresh data and update the cache
jet --no-cache project list  # skip cache reads and writes
JET_CACHE=off jet task get JET-123
jet config set cache off

Manage cached data:

jet cache status
jet cache clear
jet cache clear --all
jet cache prune

jet cache clear removes entries for the current API URL and API key. Use --all to remove every local cache entry.

Commands

Core commands:

jet context
jet doctor

Workspace and project commands:

jet workspace list
jet workspace get acme
jet workspace create acme "Acme"
jet workspace member list
jet workspace invite create [email protected]
jet project list
jet project create JET "Just Easy Tasks"

Task workflows:

jet task list
jet task list login --status open
jet task create "Fix login" --status open --priority high --label bug
jet task get JET-123
jet task update JET-123 --status in-progress --assignee <user-id>
jet task done JET-123
jet task delete JET-123 --force

Task targets can be JET-123, acme/JET-123, a numeric task number when a default project is configured, or a title fragment resolved by the API.

Project metadata:

jet status list
jet status create done Done --category done --rank 100
jet label create bug Bug --color red
jet type create task Task
jet priority create high High --rank 100

Comments, links, references, and boards:

jet comment add JET-123 "I can reproduce this."
jet comment update JET-123 <comment-id> "Updated note"
jet link create JET-123 JET-124 --type blocks
jet reference create JET-123 https://example.com --title "Spec"
jet board create active "Active work" --filters '{"statusKey":"open"}'

Destructive commands prompt by default. Use --force for scripts. Use --no-input to make the CLI fail instead of prompting.

Agent Usage

Every command supports global --json for machine-readable output:

jet --json task get JET-123
jet --json task list --status open

Run doctor before an agent changes work:

jet doctor --json

It checks API URL, API key auth, workspace access, project access, and whether JSON output is active. Failed checks include recovery guidance that an agent can follow or report.

Errors in JSON mode include an error code and message; API errors also include HTTP status and backend detail.

For non-interactive agents, prefer:

jet --json --no-input task list
jet --json --no-input task delete JET-123 --force

API Compatibility

The CLI is generated against openapi.json in this repository and the checked-in types in src/generated/schema.d.ts. Regenerate types from a running API:

JET_OPENAPI_URL=http://127.0.0.1:8000/api/openapi.json bun run generate:api

Or from a pinned file:

JET_OPENAPI_FILE=openapi.json bun run generate:api

CI runs bun run check:schema to catch stale generated types.

Development And Release

bun run typecheck
bun test
bun run check:schema
bun run build
bun run smoke:package
bun run smoke:api
bun run check
bun run pack:check

smoke:api is optional unless JET_SMOKE_API_URL and JET_SMOKE_API_KEY are set. When JET_SMOKE_WORKSPACE and JET_SMOKE_PROJECT are also set, it checks project-scoped task, status, label, and board endpoints.

Set JET_SMOKE_WRITE=1 with a staging workspace and project to run the full agent proof workflow: create temporary tasks, comment, attach a reference, link tasks, resolve/search, mark done when possible, and clean up the temporary tasks.