P
passy-ai/psh-now
Human approval for AI agents: one HTTP call or one MCP tool, one person answers on their phone, one boolean…
在 GitHub 查看 ↗链接已于 2026-11-12 核查 · HTTP 200 · 打开的是厂商自己的官网
安装与配置
客户端配置(取自该仓库的安装命令)
{
"mcpServers": {
"passy-ai-psh-now": {
"command": "npx",
"args": ["skills"]
}
}
}解析自我们于 2026-11-10 抓取的该仓库 README;我们未执行过。
command/args 来自仓库写明的安装命令;不确定时请以该项目 README 为准。
VS Code(.vscode/mcp.json —— 键名是 servers)
{
"servers": {
"passy-ai-psh-now": {
"command": "npx",
"args": ["skills"]
}
}
}VS Code 顶层键是 <code>servers</code>,其余与上面那份相同。
Claude Code(命令行)
claude mcp add --transport stdio passy-ai-psh-now -- npx skills
Claude Code 不收 JSON 文件,用这条命令直接加。
配置项的键名以你的客户端为准:客户端与 CLI
- ★ 数取值
- 0 ★ · passy-ai/psh-now · 取自 GitHub 搜索 API · (2026-11-13 20:00:50 核对)
- 来源明细
- 从该仓库的 GitHub 页面直接读取 · 条目类型:开源项目
- 收录与活跃
- 收录于 2026-11-11 · 最近见到 2026-11-14 · 共见到 4 次 · 被 1 个来源列出
- 评分构成
- 综合分 103 · 1 个来源 · repo
- 安装
npx skills
常见问题(答案都来自我们的记录)
怎么安装?
该仓库给出的安装命令是
npx skills。我们的记录里它是仓库自己提供的;不保证在你的客户端上直接可用。它适合谁 / 用来做什么?
我们把它归在这些标签下: 开源项目。标签来自条目自身,不是我们强加的分类。
谁维护它、还在更新吗?
仓库
passy-ai/psh-now;我们收录于 2026-11-11;最近见到 2026-11-14。这里没有"官方认证"或"质量评级"——我们只记录来源与时间。# psh.now
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
Human approval for AI agents: one host, one key, one boolean.
An agent that needs a decision sends a short title and message to psh.now and blocks. You
tap Approve or Deny from one page, or answer in your own words, and the agent continues
with the result. It exists because agents stall in terminals nobody is watching.
Works with any agent that can run a shell command or make an HTTP request. No SDK, no MCP.
One page for every agent and every machine, including sandboxes you cannot attach to.
Self hostable: MIT licensed, two containers, three environment variables.
┌────────────┐ blocking POST / ┌────────────────┐ WebSocket ┌─────────┐
│ AI agent │ ───────────────────────► │ psh.now gateway │ ─────────────► │ phone │
│ (terminal) │ │ (Elysia + │ │ (PWA) │
│ │ ◄─────────────────────── │ Postgres) │ ◄───────────── │ │
└────────────┘ { approved: true } └────────────────┘ decision └─────────┘
The request is a title and a message, not only a shell command: a command to run, an action to
take, or a question to answer.
Where to go next
| I want to | Read |
| install it and answer my first request | Quick start |
| run it on my own server | docs/self-hosting.md or /self-hosting on any instance |
| understand the flow end to end | docs/how-it-works.md |
| call the API directly | HTTP API |
| paste a prompt into an agent | docs/prompt-templates.md |
| report a vulnerability | SECURITY.md |
| contribute | CONTRIBUTING.md |
## Stack
| Layer | Choice |
| Runtime | Bun |
| HTTP / WS | Elysia |
| Database | PostgreSQL + Drizzle ORM |
| Realtime | WebSockets + Postgres LISTEN/NOTIFY (multi-node fan-out) |
| Frontend | Zero-build PWA (vanilla ES modules + service worker) |
## Quick start
bash
# 1. install
bun install
# 2. configure
cp .env.example .env # then set DATABASE_URL / PUBLIC_BASE_URL
createdb psh.now # if it doesn't exist
# 3. migrate
bun run migrate
# 4. run the gateway
bun run dev # http://localhost:3000
Then, in the project you want to protect:
bash
bun /path/to/psh/cli/psh.ts init
This creates a workspace, prints your API key, renders a pairing QR code, and
writes a managed rule block into ./agents.md. Scan the QR with your phone to
open the PWA, tap Pair this device, and you're live.
### Or create a channel in the browser
Open /setup (e.g. ). It creates a workspace,
shows the API key once, and renders the pairing QR. Pairing a device lands on
the dashboard, which immediately sends a test approval so you can confirm
alerts and the full approve/deny loop without a terminal. The dashboard's
Send a test approval button repeats it anytime, and Invite mints fresh
pairing codes from any already-paired device.
### Manual check
bash
# commands, actions, and questions all use the same call
psh ask "Drop the users table and reseed?" --title "Database reset"
### Claude Code hook
Register the hook once in .claude/settings.json:
json
"hooks": {
"PreToolUse": [
"matcher": "Bash",
"hooks": [{ "type": "command", "command": "psh hook" }]
psh hook reads Claude's PreToolUse JSON on stdin and writes the
decision contract on stdout (permissionDecision: "allow" | "deny"). Every
Bash command waits for your phone. Non-Bash tools pass straight through. Set
PSH_SKIP_PATTERN to a regex to auto-allow read-only commands:
An agent that needs a decision sends a short title and message to psh.now and blocks. You
tap Approve or Deny from one page, or answer in your own words, and the agent continues
with the result. It exists because agents stall in terminals nobody is watching.
Works with any agent that can run a shell command or make an HTTP request. No SDK, no MCP.
One page for every agent and every machine, including sandboxes you cannot attach to.
Self hostable: MIT licensed, two containers, three environment variables.
┌────────────┐ blocking POST / ┌────────────────┐ WebSocket ┌─────────┐
│ AI agent │ ───────────────────────► │ psh.now gateway │ ─────────────► │ phone │
│ (terminal) │ │ (Elysia + │ │ (PWA) │
│ │ ◄─────────────────────── │ Postgres) │ ◄───────────── │ │
└────────────┘ { approved: true } └────────────────┘ decision └─────────┘
The request is a title and a message, not only a shell command: a command to run, an action to
take, or a question to answer.
Where to go next
| I want to | Read |
| install it and answer my first request | Quick start |
| run it on my own server | docs/self-hosting.md or /self-hosting on any instance |
| understand the flow end to end | docs/how-it-works.md |
| call the API directly | HTTP API |
| paste a prompt into an agent | docs/prompt-templates.md |
| report a vulnerability | SECURITY.md |
| contribute | CONTRIBUTING.md |
## Stack
| Layer | Choice |
| Runtime | Bun |
| HTTP / WS | Elysia |
| Database | PostgreSQL + Drizzle ORM |
| Realtime | WebSockets + Postgres LISTEN/NOTIFY (multi-node fan-out) |
| Frontend | Zero-build PWA (vanilla ES modules + service worker) |
## Quick start
bash
# 1. install
bun install
# 2. configure
cp .env.example .env # then set DATABASE_URL / PUBLIC_BASE_URL
createdb psh.now # if it doesn't exist
# 3. migrate
bun run migrate
# 4. run the gateway
bun run dev # http://localhost:3000
Then, in the project you want to protect:
bash
bun /path/to/psh/cli/psh.ts init
This creates a workspace, prints your API key, renders a pairing QR code, and
writes a managed rule block into ./agents.md. Scan the QR with your phone to
open the PWA, tap Pair this device, and you're live.
### Or create a channel in the browser
Open /setup (e.g. ). It creates a workspace,
shows the API key once, and renders the pairing QR. Pairing a device lands on
the dashboard, which immediately sends a test approval so you can confirm
alerts and the full approve/deny loop without a terminal. The dashboard's
Send a test approval button repeats it anytime, and Invite mints fresh
pairing codes from any already-paired device.
### Manual check
bash
# commands, actions, and questions all use the same call
psh ask "Drop the users table and reseed?" --title "Database reset"
### Claude Code hook
Register the hook once in .claude/settings.json:
json
"hooks": {
"PreToolUse": [
"matcher": "Bash",
"hooks": [{ "type": "command", "command": "psh hook" }]
psh hook reads Claude's PreToolUse JSON on stdin and writes the
decision contract on stdout (permissionDecision: "allow" | "deny"). Every
Bash command waits for your phone. Non-Bash tools pass straight through. Set
PSH_SKIP_PATTERN to a regex to auto-allow read-only commands:
收录徽章(可选)
想把收录标记放进 README 就复制这行,可选,不影响收录。
[](https://anclum.com/zh/s/passy-ai-psh-now/)
- 来源
- github · https://github.com/passy-ai/psh-now
- 按领域浏览
- 开源项目
- 收录于
- 今天
同类推荐
所属领域与标签
每个标签都能点进去看同类的全部条目。数字是当前库里的真实条数。