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

@agentsoft/agent-term

v1.0.0

Published

Shared long-running terminals for AI coding agents

Readme

@agentsoft/agent-term

Shared long-running terminals for AI coding agents.

When one AI agent session starts a dev server, watcher, or build process, no other session can see its output or send it input. agent-term fixes this by routing persistent processes through shared tmux sessions that any agent session can access.

How it works

agent-term installs a SKILL.md file into each detected agent's skill directory. The agent reads that skill at startup and auto-activates it when a task involves starting or managing a persistent process — a dev server, file watcher, tunnel, queue worker, or similar. The skill tells the agent which agent-term commands are available and when to use them. Short one-shot commands are not affected.

Agent integration

Claude Code

agent-term init installs SKILL.md at ~/.claude/skills/agent-term/SKILL.md. The skill auto-activates when you ask the agent to start a persistent process.

Codex CLI

agent-term init installs SKILL.md at $CODEX_HOME/skills/agent-term/SKILL.md (fallback: ~/.codex/skills/agent-term/SKILL.md). The skill auto-activates when you ask the agent to start a persistent process.

Gemini CLI

agent-term init installs SKILL.md at ~/.gemini/skills/agent-term/SKILL.md. The skill auto-activates when you ask the agent to start a persistent process.

Supported agents

| Agent | Status | |-------|--------| | Claude Code | Fully supported | | Gemini CLI | Fully supported | | Codex CLI | Fully supported |

Prerequisites

  • Node.js 18+
  • tmux installed:
    • macOS: brew install tmux
    • Linux: sudo apt install tmux

Installation

npm install -g @agentsoft/agent-term

Setup

agent-term init

This will:

  1. Check that tmux is installed
  2. Auto-detect installed AI agents on your machine
  3. Install the agent-term skill for the agents you select

For scripted/CI setups:

agent-term init --non-interactive --agents claude-code,gemini-cli

Usage

Automatic (via skill)

Once set up, the agent reaches for agent-term when you ask it to start or manage a persistent process. No pattern configuration needed.

Manual

# Start a shared terminal
agent-term start --name frontend -- pnpm dev

# List active terminals
agent-term list

# Read output (last 100 lines)
agent-term logs frontend

# Read more output
agent-term logs frontend --lines 500

# Send input to a terminal
agent-term send frontend "rs"          # restart
agent-term send frontend "C-c"         # Ctrl+C (tmux key syntax)

# Check terminal status
agent-term status frontend

# Restart a terminal (kill + re-run same command)
agent-term restart frontend

# Kill a terminal
agent-term kill frontend

How terminals are named

Commands are auto-named: pnpm dev becomes pnpm-dev, docker compose up becomes docker-compose-up. A random suffix is appended for uniqueness (e.g., pnpm-dev-a3f0). Use --name to override:

agent-term start --name frontend -- pnpm --filter app dev

Architecture

  • All terminals run on a dedicated tmux server (tmux -L agent-term), fully isolated from your own tmux sessions
  • Session names are prefixed with at- (e.g., at-frontend)
  • Each supported agent has an adapter that handles skill installation and legacy migration
  • Graceful fallback: if tmux or agent-term fails, the agent falls back to running the command directly

Migrating from 0.x

Run agent-term init. It will detect any existing agent-term hook entries in your agent config files and remove them automatically, then install the skill. The hook subcommand is removed in 1.0.0.

Platform support

  • macOS — full support
  • Linux — full support
  • Windows — not supported (WSL works as Linux)

License

MIT