Independent by design · no pay-to-rank placements  · How we evaluate tools →
Anclum Submit
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…

Before you install: no copy-paste command · license MIT · link reachable

First step: d '{"title":"Reinstall deps","message":"rm -rf node_modules && npm install --force"}'

View on GitHub ↗Link checked 2026-11-12 · HTTP 200 · opens the vendor's own site
Install & config
Client config (built from the install command this repo gives)
{
  "mcpServers": {
    "passy-ai-psh-now": {
      "command": "npx",
      "args": ["skills"]
    }
  }
}

Parsed from the README we fetched on 2026-11-10; we have not executed it.

command/args come from the install command the repository states. When it is ambiguous, the project README wins.
VS Code (.vscode/mcp.json - the key is servers)
{
  "servers": {
    "passy-ai-psh-now": {
      "command": "npx",
      "args": ["skills"]
    }
  }
}
Same server, but VS Code keeps it under <code>servers</code>.
Claude Code (command line)
claude mcp add --transport stdio passy-ai-psh-now -- npx skills
Claude Code does not read a config file; add the server with this command.
Key names differ by client: Clients & CLI
Star count
0 ★ · passy-ai/psh-now · read from the GitHub search API · (checked 2026-11-13 20:00:50)
Source
read directly from its GitHub page · type: open-source project
Harvest history
first seen 2026-11-11 · last seen 2026-11-14 · seen 4× · listed by 1 sources
Score
score 103 · 1 sources · repo
Install
npx skills
FAQ (answers come from our records)
How do I install it?
The repository provides this install command: npx skills. It comes from the repository itself; we cannot guarantee it runs as-is in your client.
Who is it for?
We filed it under these tags: 开源项目. The tags come from the entry itself, not a taxonomy we imposed.
Who maintains it?
repository passy-ai/psh-now;first catalogued 2026-11-11;last seen 2026-11-14。There is no official certification or quality rating here — we record sources and dates only.

# 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:
Listed badge (optional)
Copy this line into the README if you want the listing mark. Optional, and it does not affect being listed.
[![Listed on Anclum](https://anclum.com/badge/listed.svg)](https://anclum.com/en/s/passy-ai-psh-now/)
Source
github · https://github.com/passy-ai/psh-now
Browse by field
Open source
added
today

More like this

All 1,671 →

Filed under

Every tag opens the full list for that filter. Counts are the live catalogue figures.

Browse all fields →

← Back to index