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

@rivus/agent-task-loop

v0.9.0

Published

Run AI coding agents through task execution, review, rework, and pull request handoff.

Readme

Agent Task Loop CLI

Agent Task Loop is a local CLI for running AI coding agent task delivery workflows.

It connects your task trackers (a Feishu Base table today, GitHub Issues optionally) to local coding agents, then drives a task through execution, review, rework, branch publishing, and Pull Request handoff. Tasks stay owned by their source — the CLI and TUI are an integration layer, not a system of record — so writes route back to the backend each task came from.

Local CLI

Install dependencies from the monorepo root:

pnpm install

Then run the local CLI:

npx --no-install @rivus/agent-task-loop --help

From npm, run:

npx @rivus/agent-task-loop --help

Use --no-install when you want to force the repo-local binary:

npx --no-install @rivus/agent-task-loop --help

Commands

  • npx agent-task-loop sync
  • npx agent-task-loop schema
  • npx agent-task-loop schema --apply
  • npx agent-task-loop start --task TASK-101
  • npx agent-task-loop watch --task TASK-101
  • npx agent-task-loop resume --task TASK-101
  • npx agent-task-loop complete --task TASK-101

Summary commands support --json for scripts and agents:

npx agent-task-loop sync --json
npx agent-task-loop schema --json
npx agent-task-loop schema --apply --json
npx agent-task-loop cleanup --task TASK-101 --json
npx agent-task-loop complete --task TASK-101 --json

Complete Flow

complete closes a task that is already in 待发布 or 待验收.

The flow is:

  1. Reuse the task workspace branch and commit state.
  2. Commit any pending workspace changes with an AI-generated commit message.
  3. Push the remote branch and verify the remote head.
  4. Create or reuse a GitHub Pull Request with gh.
  5. Update the Pull Request body with a generated delivery summary.
  6. Write branch, commit, Pull Request, and completion metadata back to the task table.
  7. Move the task to 已完成.

Local Requirements

  • Node.js 20+
  • pnpm
  • GitHub CLI (gh) authenticated for Pull Request creation (and as the GitHub-Issues token source)
  • lark-cli — only when using a Feishu task source
  • Locally executable coding agents such as claude, codex, coco, or glm

Config

Config is JSON only and resolved from exactly three places, in order:

  1. --config <path> (explicit)
  2. AGENT_TASK_LOOP_CONFIG environment variable
  3. ~/.agent-task-loop/config.json (the global config; the default)

There is no per-directory task.config.* discovery. The fastest way to create the global config is:

npx agent-task-loop init

init asks which task source(s) to use — GitHub Issues, Feishu Base, or both — and writes ~/.agent-task-loop/config.json. Fill in projects and repositories afterward. See config.example.json for the full shape.

To add sources to an existing config (init refuses to overwrite), use the source command instead of hand-editing:

agent-task-loop source list                                   # show sources + default
agent-task-loop source add --type github --owner you --repo your-repo
agent-task-loop source add --type github --owner you --repo another-repo  # appends to repositories[]
agent-task-loop source add --type feishu --token <base> --table <tableId>
agent-task-loop source remove github:you/your-repo

source add merges into the config without touching unrelated blocks (adding a second GitHub repo appends to repositories[]); source remove keeps at least one source. Run with no flags in a terminal for interactive prompts.

Task sources

Configure at least one of feishu / githubIssues:

  • GitHub-only — set githubIssues (owner, repo, optional defaultAgent), omit feishu. The token is resolved from githubIssues.token, then GITHUB_TOKEN, then gh auth token — so a gh-authenticated machine needs no token in config. Tasks created from the TUI become GitHub issues (the issue number/URL link back to the task).

    Multiple repositories — instead of a single owner/repo, list several under repositories; each becomes its own github:<owner>/<repo> source and shows up as a separate option in the TUI's create-form source selector. A top-level token / defaultAgent applies to all; a repo may override defaultAgent:

    {
      "githubIssues": {
        "defaultAgent": "codex",
        "repositories": [
          { "owner": "your-org", "repo": "service-a" },
          { "owner": "your-org", "repo": "service-b", "defaultAgent": "claude" }
        ]
      }
    }

    Which issues become tasks — to avoid adopting every issue in a repo, an issue is treated as a task only when it opts in: it carries the hidden <!-- task-id: ... --> marker (issues created through this tool) or an agent:<name> label (the way you hand off an existing issue). Issues with neither are ignored.

  • Feishu-only — set feishu (baseToken, tableId), omit githubIssues.

  • Both — tasks are read from both; writes route back to each task's owning backend, defaulting new creates to Feishu.

Manage tasks in the TUI

npx agent-task-loop tui

Press n to open the new-task form. With more than one configured source a selector lets you choose where to publish. When a claude agent is configured, press Ctrl+R on the form to have the AI refine the description before publishing.

When the board spans more than one source (e.g. several GitHub repos), each row shows a compact source tag (the repo short name) and the detail pane shows the full github:<owner>/<repo>. Press s to open the source filter — a multi-select popup (Space toggles, a all, Enter applies) to focus on one or more repos; the active selection appears as a src:… chip in the header. The / text filter also matches source/repository.

Initialize Task Table Schema (Feishu only)

Feishu task tables need a schema; GitHub Issues do not (schema prints a notice and exits when no Feishu source is configured).

Check fields:

npx agent-task-loop schema

Create missing fields:

npx agent-task-loop schema --apply