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

@quangnv13/nonstop

v1.0.23

Published

nonstop Telegram terminal control CLI

Readme

TypeScript License: MIT Platform

nonstop 是一个用于控制本地由 Telegram 驱动的 PTY 运行环境的终端控制中心和后台运行程序。它提供了一个强大的根级别 CLI/TUI,用于系统管理、配置调整、工作区映射和操作系统启动项集成,同时 Telegram 机器人可以安全地管理后台 PTY 会话(PowerShell, Bash 等)。


📖 目录


🌟 核心功能

  • 💻 沉浸式 TUI 控制中心 — 直接在命令行界面管理运行环境进程、检查日志、注册工作区并编辑配置。
  • 🤖 Telegram PTY 终端 — 从 Telegram 远程执行和控制实时的交互式 Shell 会话(PowerShell、Bash、Codex、Antigravity 或 Claude)。
  • ⚙️ 在线配置引擎 — 通过全新的 /config 在线 Telegram 菜单或直接在 CLI 中动态修改环境设置。
  • 📂 智能工作区 — 轻点几下即可在您机器上的不同工作目录之间进行导航 and 切换。
  • 🔄 优化的输出流 — 具有可配置输出间隔(OUTPUT_INTERVAL)和交互触发刷新延迟(ACTION_INTERVAL)的先进批量交付机制,确保 Telegram 内的终端日志流畅且不触发 API 限制。
  • 🚀 原生系统自启动 — 易于配置的在操作系统启动时作为后台服务运行的功能(支持 Windows 和 Linux)。
  • 🔄 无缝的远程/本地切换 — 直接从您的电脑终端继续后台 PTY 会话。在本地活动交互期间,Telegram 输出同步会自动暂停以防止触发 rate limit,然后当您分离时(通过 Ctrl+B 然后按 D)立即向 Telegram 推送会话的最终总结快照。
  • ⚠️ 危险命令保护 — 拦截匹配自定义危险模式列表的命令,并在执行前提示确认(通过 Telegram 内联按钮),以防止意外损坏系统。
  • 🌐 多语言支持 — 完整本地化,支持英文 (en)、越南文 (vi) 和中文 (zh)。
  • 🛡️ 强化的安全性 — 严格的令牌验证和授权检查,限制仅能由配置的管理员账户进行控制。

⚙️ 架构与数据流

graph TD
    TelegramUser[📱 Telegram 客户端] <-->|安全 API 消息| TelegramServer[☁️ Telegram Bot API]
    TelegramServer <-->|Grammy 框架| BotRuntime[🤖 机器人运行环境进程]
    
    subgraph 本地服务器环境
        BotRuntime <-->|node-pty| PTY[💻 PTY 会话 <br> PowerShell / Bash / Codex]
        BotRuntime <-->|管理 / 查询| RuntimeState[📁 data/ & .env]
        
        TUI[💻 Nonstop TUI 控制中心] <-->|读 / 写| RuntimeState
        TUI <-->|控制守护进程| BotRuntime
    end

🚀 快速开始

1. 安装

环境要求: Node.js >= 22.13.0

使用 npm 全局安装该包:

npm install -g @quangnv13/nonstop

2. 创建 Telegram 机器人

要运行 nonstop,您必须获取一个 Telegram 机器人令牌。以下是使用 @BotFather 创建机器人的方法:

  1. 打开 Telegram 并搜索 @BotFather(确保它带有蓝色的已验证勾选标记)。
  2. 开始对话并点击 Start(或发送 /start 命令)。
  3. 发送 /newbot 命令来初始化机器人创建过程。
  4. 为您的机器人选择一个友好的名字(例如:My Nonstop Controller)。
  5. 为您的机器人选择一个唯一的用户名,该用户名必须以 bot 结尾(例如:my_nonstop_bot)。
  6. 创建完成后,@BotFather 将回复您的 HTTP API 访问令牌(例如:123456789:ABCdefGhIJKlmNoPQRsTUVwxyZ)。复制该令牌并妥善保管,切勿公开!

3. 运行与设置

导航到您想要存储配置的目录并运行:

nonstop

[!NOTE] 首次启动时,如果缺失 .env 配置文件,nonstop 将在您的终端中自动启动设置向导以进行配置:

  • Telegram Bot Token:您从 BotFather 复制的令牌。
  • Allowed Admin Username:您的 Telegram 用户名(以 @ 开头),以防止未经授权的访问。
  • Client Name:用于标识此服务器的名称。
  • Language:选择英语 (en)、越南语 (vi) 或中文 (zh)。
  • Startup Mode:选择是否在系统引导时运行。

🕹️ 使用指南

[!IMPORTANT] 首次启动时不会自动生成任何工作区。 要开始在任何文件夹中工作,您必须首先配置/创建一个映射到该文件夹的工作区(通过本地 TUI 控制中心或 Telegram 机器人的 📁 Workspaces 菜单)。

1. 本地 TUI 控制中心

只需在终端中运行 nonstop 即可打开管理仪表板。在这里,您可以:

  • 启动 / 停止 后台机器人运行环境。
  • 配置工作区:管理允许启动终端会话的目录。
  • 连接 to 活动会话:直接在您电脑的终端中查看和接管后台 Shell 会话(例如从 Telegram 启动的会话)。
  • 自启动设置:设置应用程序在系统启动时自动运行。
  • 查看日志:实时监控机器人日志和输出。

2. Telegram 机器人交互

一旦机器人运行环境处于活动状态,您可以通过以下 Telegram 界面命令进行交互:

📜 命令

  • /start — 调出主要交互式菜单。
  • /status — 查看当前运行环境健康状态(活动工作区、运行中的会话、预设)。
  • /config — 动态编辑应用程序参数。
  • /send <command> — 直接向活动会话发送原始输入。
  • /help — 显示机器人命令和帮助文本。

⚡ 管理 PTY Shell 会话

  1. 从主菜单中选择 ⚡ Session
  2. 选择一个环境预设(例如 PowerShellBashCodexAntigravityClaude)以启动会话。
  3. 会话运行后,开启输入模式 (Input Mode)
  4. 您发送给机器人的任何普通文本消息(不以 / 开头)都将直接注入到您的 Shell 中。
  5. 使用内联控制按钮发送按键输入:
    • ⛔ Esc — 发送 Escape 键以中断/取消进程。
    • ⏎ Enter — 发送回车。
    • ▲ Up / ▼ Down — 导航命令历史记录。
    • 🔄 Refresh — 请求更新终端屏幕。

    [!NOTE] 按控制键(EscEnterUpDown)或点击 Refresh 将在短暂的交互式延迟(通过 ACTION_INTERVAL 配置,默认 5 秒)后触发快速输出交付,并绕过标准的重复输出过滤器以确保更新成功送达。

📂 目录工作区

  • 从主菜单中选择 📁 Workspaces 可查看已配置的文件夹。
  • 选择一个工作区会将其设置为您下一个 PTY 会话的工作目录。

⚙️ 动态配置

  • 点击 ⚙️ Settings 或发送 /config
  • 点击任何设置按钮(例如 Token, Admin, Interval 等),并通过发送新消息来应用新值,更改将立即生效。
  • 如果您修改了 Telegram Bot Token,机器人将自动reload并安全地重新启动自身。

3. 远程/本地切换

nonstop 允许您在 Telegram 应用和本地电脑终端之间无缝切换控制:

  1. 在 Telegram 上启动会话:像往常一样从 Telegram 机器人运行一个会话(例如,选择 ⚡ Session -> PowerShell)。
  2. 在本地接管
    • 打开您电脑的终端并运行:
      nonstop
    • 在 TUI 中,选择 List active sessions(已生成的会话列表)。
    • 选择您想要连接的活动会话。
    • 现在您已直接连接。本地键入或运行的任何命令都将在同一个后台 PTY 进程中执行。
    • 注意:当您在本地连接时,向 Telegram 同步新输出的进程会自动暂停,以避免超出 Telegram API 的限制。
  3. 分离并返回 Telegram
    • 要从本地终端断开连接而不停止进程,请按 Ctrl+B 然后按 D(类似于 tmux 中的 detach)。
    • nonstop 将分离,会话将继续在后台运行。
    • 分离后,会话终端屏幕的最终总结快照将自动发送到 Telegram,以便您查看最新状态。
    • 您现在可以恢复通过 Telegram 机器人与会话进行交互。

🎛️ 配置说明

配置通过运行 CLI 的文件夹中的 .env 进行管理。模板作为 .env.example 自动生成:

TELEGRAM_BOT_TOKEN=your_telegram_bot_token
ADMIN_USERNAME=@your_telegram_username
TELEGRAM_USERNAME=@your_telegram_username
CLIENT_NAME=nonstop-local
APP_LANGUAGE=en
STARTUP_MODE=disabled
OUTPUT_INTERVAL=20000
ACTION_INTERVAL=5000
DANGEROUS_COMMAND_CONFIRM=rm -rf /,rm -rf,rm -fr,sudo,del /s,rd /s,rmdir /s,format,shutdown,reboot,poweroff,init 0,dd if=,mkfs,fdisk

# CLI 覆盖配置 (可选)
CODEX_CMD=codex
CODEX_ARGS=[]
ANTIGRAVITY_CMD=agy
ANTIGRAVITY_ARGS=[]
CLAUDE_CMD=claude
CLAUDE_ARGS=[]

🛡️ 安全最佳实践

[!WARNING] 由于 nonstop 会通过 Telegram 远程暴露您的机器 Shell 环境,请务必遵守以下安全预防措施:

  1. 保管好您的 Token:切勿提交您的 .env 或共享您的 TELEGRAM_BOT_TOKEN
  2. 仔细检查管理员用户名:确保 ADMIN_USERNAME 拼写正确(包含 @ 前缀),以防止未经授权的访问。
  3. 最小权限原则:除非绝对需要,否则应避免在具有高度特权的账户(如 Administrator 或 root)下运行 nonstop 进程。

📄 许可证

本项目采用 MIT 许可证授权 - 详情见 LICENSE 文件。