Asia/Shanghai
ProjectsJuly 31, 2026

JumpOTP

image
JumpOTP is a small open-source CLI for authorized interactive SSH sessions that request TOTP. It waits for a narrowly configured prompt, asks an already authenticated Bitwarden Password Manager CLI for the current code, and submits that code at most once per connection. It does not replace OpenSSH configuration, manage vault login or unlock state, export TOTP seeds, or take ownership of ControlMaster lifetime. SSH access through a bastion can be secure and still be repetitive. Copying a six-digit code by hand adds friction, while broad terminal automation adds risk. JumpOTP narrows the automated step to one configured prompt and one write, then leaves the session to the user.
  • connect PROFILE/TARGET starts one direct interactive session.
  • workspace PROFILE opens configured aliases in a dedicated tmux server and reattaches on the next run.
Both modes support ssh and optional sshm launchers. Workspace stop affects only the selected JumpOTP profile and never kills the default tmux server.
  • Fetch TOTP only after a complete configured prompt matches.
  • Submit automatically no more than once per connection.
  • Store no TOTP seed and put no code in argv, environment variables, logs, files, clipboard, or tmux buffers.
  • Explain retrieval failure, restore normal echo, and allow visible manual digits by default.
  • Keep OpenSSH host-key verification and SSH aliases authoritative.
Bash
npm install -g jumpotp
jumpotp config init
jumpotp config validate
JumpOTP 是一个面向授权交互式 SSH/JumpServer 会话的开源 CLI。它只在严格匹配到配置的 TOTP 提示后,向当前已经登录或解锁的 Bitwarden Password Manager CLI 请求验证码,并且每条连接最多自动提交一次。 它不接管 OpenSSH 配置,不负责密码库登录或解锁,不导出 TOTP 种子,也不控制 ControlMaster 的生命周期。 经过堡垒机的 SSH 访问可以很安全,但重复抄写六位验证码仍然有摩擦。把整个终端交给宽泛自动化又会扩大风险。JumpOTP 只自动处理一个严格提示和一次写入,随后把会话完整交还给用户。
  • connect PROFILE/TARGET 启动一次交互式直连。
  • workspace PROFILE 在专用 tmux server 中打开配置的 SSH alias,再次运行同一命令即可重新接入。
两种模式都支持 ssh 和可选的 sshm launcher。停止 workspace 只影响指定的 JumpOTP profile,不会杀掉默认 tmux server。
  • 只有完整匹配配置提示后才取 TOTP。
  • 每条连接最多自动提交一次。
  • 不保存 TOTP 种子,不把验证码写入 argv、环境变量、日志、文件、剪贴板或 tmux buffer。
  • 取码失败时说明原因、恢复正常回显,并默认允许可见手输数字。
  • OpenSSH 主机密钥校验与 SSH alias 始终保持权威。
Bash
npm install -g jumpotp
jumpotp config init
jumpotp config validate

Related projects

Codex Doubao Pets

Codex Doubao Pets

六个可以直接安装到 Codex Desktop 的豆包桌宠。用真实角色图完成选择,用一条 npm 命令完成安装。
grill-loop

grill-loop

让循环跟着工作走的轻量 Agent Skill。显式调用、按需串联 grilling、deep-grill、OpenSpec 与相关专家能力,不增加固定阶段、hooks 或第二套状态。
Slash Saver

Slash Saver

一个只为物理斜杠键做一件事的原生 macOS 工具:在原始按键进入当前应用前,切到用户指定的 ASCII 输入源。
deep-grill

deep-grill

让 Agent 先拷问自己的 Agent Skill。自主调查方案每条分支、反驳自己的答案,只把真正主观的分歧一次性汇总给用户确认,确认前不动手实现。
Mingjian AI Services

Mingjian AI Services

A focused collaboration entry for teams moving from AI ideas to working products, Agent systems, and operable business workflows.
opencode-sub2api-haiku-fix

opencode-sub2api-haiku-fix

A focused OpenCode plugin that fixes Claude Haiku extra-usage failures through Sub2API while preserving thinking and leaving Sub2API, OpenCode, and OMO untouched.
opencode-metrics

opencode-metrics

OpenCode TUI 的分会话侧边栏指标插件。按 sessionID 记录速度、TTFT、token、缓存、计时,只显示你当前 attach 的会话,而不是 serve 模式下的全局汇总。
opencode-plugin-fixes

opencode-plugin-fixes

Archived OpenCode guardrail experiment. The final source tree covers four narrow tool-call repairs; no npm package was ever published.
opencode-vibe-island-plugin

opencode-vibe-island-plugin

让 Vibe Island 在装了 oh-my-openagent 时仍然把 OpenCode 会话当成 OpenCode。修好 source 误标和 Ghostty 点击跳转。
OpenCode Themes

OpenCode Themes

Terminal-inspired dark themes for Obsidian, Typora, and Ghostty, all synced to the official OpenCode TUI palette.
wechat-mp-publisher

wechat-mp-publisher

从个人公众号 Skill 到可公开安装的 npm 包:本地校验与沙箱预览在前,用户确认后只创建草稿。
SIGINT

SIGINT

已归档的内容情报实验:曾把小红书/抖音采集、AI 分析、n8n 编排与实时仪表盘接成一条完整链路。
MdictLive

MdictLive

Modern web reader for MDict dictionaries with React 19 SPA, dark mode, and faithful rendering.
SiliconLM

SiliconLM

Local LLM dashboard for Apple Silicon Macs, currently preserved without an active local deployment.
mdx2apple

mdx2apple

Convert MDict (.mdx/.mdd) dictionaries to macOS Apple Dictionary format with one command.