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

techunter

v0.1.11

Published

AI-powered task distribution CLI for development teams

Readme

Techunter

An AI-powered task distribution CLI for development teams. Manage GitHub Issues through a conversational terminal interface.

    ╔═══════════════╗
◆═══╬   TECHUNTER   ╬═══▶   Techunter v0.1.6
    ╚═══════════════╝        GLM-5 · z-ai  ·  owner/repo

Table of Contents


Features

  • Conversational REPL — Describe what you need in plain English; the Agent calls the right tools automatically
  • GitHub Issues integration — Create, claim, submit, review, and close tasks; labels and assignees stay in sync
  • Automatic branch management — Claiming a task creates and pushes the corresponding Git branch
  • Smart task guides — Before you start, the Agent scans your codebase and posts a detailed implementation guide as an Issue comment
  • One-command delivery/submit lets the Agent review your changes against acceptance criteria, then commits and pushes
  • Review & accept flow/review lists in-review PRs; /accept merges and closes
  • Slash commands — Common actions don't need a description: just /pick, /new, /submit
  • Persistent conversation history — Full context is retained across turns in the same REPL session

Requirements

  • Node.js ≥ 18
  • A GitHub repository with Issues enabled
  • GitHub Personal Access Token or OAuth Device Flow authorization
  • An OpenAI-compatible API key (OpenRouter by default, or any custom provider)

Installation

npm install -g techunter

Install from source (for development):

git clone https://github.com/Zhang-Dongfang/Techunter.git
cd Techunter
npm install
npm run build
npm link          # registers the tch / techunter commands globally

Setup

Run the one-time setup wizard inside any directory that has a GitHub remote:

tch init

The wizard will ask for:

  1. GitHub authentication — Browser OAuth (recommended) or a Personal Access Token
    • PAT: create one at https://github.com/settings/tokens/new with repo and read:user scopes
  2. AI provider — OpenRouter (default) or a custom OpenAI-compatible endpoint
    • OpenRouter key: https://openrouter.ai/settings/keys
  3. GitHub repository — Auto-detected from your git remote, or enter manually

Config is stored at ~/.config/techunter/.


Usage

tch

Starts the conversational REPL. Type natural language or slash commands:

| Command | Alias | Description | |---|---|---| | /help | /h | Show all commands | | /refresh | /r | Refresh the task list | | /pick | /p | Browse and act on tasks interactively | | /new | /n | Create a new task | | /close | /d | Close (delete) a task | | /edit | /e | Edit the title or description of a task | | /submit | /s | Review changes, commit, and push | | /review | /rv | List tasks waiting for your approval | | /accept | /ac | Accept a reviewed task: merge PR and close issue | | /status | /me | Show tasks assigned to you | | /code | /c | Launch Claude Code for the current task branch | | /config | /cfg | Change settings (repo, API keys, etc.) | | /init | | Re-run the setup wizard for this repo |

Any other input is sent to the AI Agent, for example:

> claim task #12
> create a task to add pagination to the user list
> what tasks are available right now?
> deliver the current task

Task Lifecycle

Each GitHub Issue carries exactly one techunter:* label at a time:

techunter:available  →  techunter:claimed  →  techunter:in-review
     (green)                (yellow)               (blue)
                                                      ↓ rejected
                                           techunter:changes-needed
                                                     (red)

Labels are created automatically in your repository during tch init and when tasks are created.


Branch Naming

A branch is created automatically when you claim a task:

task-{issue_number}-{your-github-username}

Example: Issue #7 claimed by johndoetask-7-johndoe

Worker branches (for persistent personal workspaces) follow:

worker-{your-github-username}

AI Agent Tools

The Agent can call the following tools:

| Tool | Description | |---|---| | list_tasks | List all open tasks | | get_task | Get full details of a specific Issue | | create_task | Create a new GitHub Issue | | claim_task | Assign an Issue and create a local branch | | deliver_task | Push the branch, open a PR, mark as in-review | | close_task | Close a GitHub Issue | | post_comment | Post a Markdown comment on an Issue | | scan_project | Scan the project file tree and read key files | | read_file | Read the contents of a specific file | | run_command | Execute a shell command in the project root | | get_diff | Get the current Git diff | | stage_and_commit | Stage all changes, commit, and push | | ask_user | Ask the user a question (max 3 times per task) | | get_my_status | Show tasks assigned to the current user | | get_comments | Read the latest comments on an Issue (e.g. rejection feedback) | | reject_task | Reject an in-review task: post feedback and mark as changes-needed |


Development

npm run dev        # Run directly with tsx (no build step)
npm run build      # Compile to dist/index.js
npm run typecheck  # Type-check without emitting files

Architecture

tch
  └─ src/index.ts           Entry point, REPL, slash command dispatch
       └─ src/lib/agent.ts   AI tool-call loop
            ├─ src/lib/github.ts    Octokit — Issues, PRs, label management
            ├─ src/lib/git.ts       simple-git — branches, push, diff
            ├─ src/lib/project.ts   File tree + key file scanning (80 KB cap)
            └─ src/lib/config.ts    conf-based config store (~/.config/techunter/)

License

MIT