yespapa init
Initialize YesPaPa on a new machine.
--host-name <name>— Custom name for this host (default: system hostname)
- Generates a 160-bit TOTP seed
- Sets a master key (min 8 characters)
- Optionally pairs with the YesPaPa mobile app via remote server
- Displays a QR code for your authenticator app
- Verifies TOTP code (3 attempts)
- Creates
~/.yespapa/directory with SQLite database - Injects shell interceptors into
.zshrc/.bashrc - Seeds default deny-list rules (10 patterns)
- Starts the daemon in the background
- Remote server type —
supabase(default) orselfhosted. Chooseselfhostedif you are running your own backend that implements the YesPaPa protocol. - Remote server URL — The URL of the remote server. Defaults can be overridden with the
YESPAPA_DEFAULT_REMOTE_URLenvironment variable. - Remote server key — The anonymous/public key for the remote server. Defaults can be overridden with the
YESPAPA_DEFAULT_REMOTE_KEYenvironment variable.
- Connect and authenticate with the remote server
- Register this host
- Display a standard
otpauth://QR code (scannable by any TOTP app) - Display a pairing QR code / deep link for the YesPaPa mobile app (
yespapa://pair?...) - Store remote config in the local database
yespapa status
Show the current state of YesPaPa.
- Host name
- Daemon status (running/stopped, PID)
- Socket status (active/not found)
- Interceptor status (installed/not installed)
- Remote server status (configured/offline)
- Pending commands count
- Active auto-bypasses count
- Recent commands (last 5)
yespapa rules
Manage interception rules.
yespapa rules list
yespapa rules add
--pattern <glob>— Glob pattern to match commands (e.g.,rm -rf *,docker rm *)--type <deny|allow>— Whether to intercept (deny) or skip (allow)--bundle <name>— Category name (destructive, git-rewrite, privilege, network, process)
yespapa rules remove
yespapa bypass
Manage auto-bypass (grace periods).
yespapa bypass activate
--scope <scope>—allor a bundle name (destructive, git-rewrite, privilege, network, process)--duration <duration>—1h,24h, or7d
yespapa bypass list
yespapa bypass revoke
--id is omitted.
yespapa test
Send a test command to verify mobile app connectivity.
yespapa config
Manage YesPaPa configuration. Changes require TOTP or master key authentication.
yespapa config list
yespapa config get
yespapa config set
| Key | Default | Description |
|---|---|---|
allow_password_bypass | true | Allow master key as TOTP bypass for command approval |
default_timeout | 120 | Approval timeout in seconds (0 = wait forever) |
allow_sudo_bypass | true | Auto-approve sudo commands (false = require TOTP) |
allow_remote_exec | false | Enable yespapa exec for programmatic access |
yespapa exec
Execute a command through the YesPaPa gateway programmatically.
yespapa config set allow_remote_exec true.
Options:
--justification <reason>— Reason for running this command (displayed to approver)--timeout <seconds>— Timeout in seconds (0 = wait forever, default: 0)
yespapa approve
Approve a pending command by ID.
yespapa uninstall
Remove YesPaPa from this machine.
- Shell interceptors from profile files
- Daemon process
~/.yespapa/directory and database- Unix socket
Environment Variables
| Variable | Description |
|---|---|
YESPAPA_DEBUG | Legacy — JSON events are now always emitted on stderr |
YESPAPA_DEFAULT_REMOTE_URL | Override the default remote server URL (used during yespapa init) |
YESPAPA_DEFAULT_REMOTE_KEY | Override the default remote server key (used during yespapa init) |
REMOTE_URL | Remote server URL (set during init) |
REMOTE_KEY | Remote server anonymous key (set during init) |