smon
smon is the auto-approval helper — a session monitor that watches sessions and can approve routine permission prompts and notify a manager on events, so you don't have to answer every prompt by hand.
In a TDA setup, smon is usually managed automatically by the manager session. You rarely need to run it directly — this page documents the commands for when you do.
Commands
watch
Watch one or more sessions and notify a manager on events, optionally auto-approving routine prompts.
smon watch <sessions...> [options]
Arguments:
<sessions...>- Session names or patterns (supports*wildcard)
Common options:
-d, --daemon- Run in the background (daemon mode)-n, --notify <session>- Manager session to notify (auto-detected fromIST_SESSIONwhen available)-i, --interval <ms>- Polling interval in milliseconds (default:1500)-s, --strategy <type>- Entry level:gate-only,gate-then-bot(recommended), orbot-first--allow <patterns...>- Runtime auto-approve regex patterns (merged with~/.ist/smon/allow-patterns.json)-v, --verbose- Verbose output--dry-run- Show what would be done without acting
Additional advanced options (bot profile/CLI, circuit-breaker thresholds, idle notifications, server selection) are available via smon watch --help.
Examples:
# Watch a worker in the background
smon watch worker1 -d
# Watch all workers matching a pattern and notify the manager
smon watch 'myapp-*' -d --notify myapp-mgr
list
List available sessions.
smon list
# alias: smon ls
prompt
Print a session's current screen (raw prompt text) to stdout.
smon prompt <session>
status
Show running smon instances.
smon status
stop
Stop smon instances (scoped to the current session by default).
smon stop [target] [options]
Arguments:
target- PID or session name to stop
Options:
-a, --all- Stop all instances for the current session--all-global- Stop all instances globally (dangerous — affects other sessions)
reconnect
Reconnect smon instances to the detection server (scoped to the current session by default).
smon reconnect [pid]
pass
Manage smon's approval rulebook (~/.ist/smon/passbook.json): entries that pass, hold or block a request, per scope.
smon pass add <match> # smon approves matching requests
smon pass hold <match> # always escalate to a human
smon pass block <match> # escalate as a refusal, with a warning
smon pass list # list entries
smon pass remove <target> # remove an entry by id or exact match text
smon pass explain --session <name> -- <command...> # which entries apply to a command
<match> is one of re:<regex>, cmd:<program>[ <subcommand>], script:</abs/path>, url:<url>, domain:<host> or tool:websearch. Choose who an entry applies to with --scope (fleet, profile:<p>, session:<name|glob>, crew:<manager>; in a manager session the default is that manager's crew). See smon pass add --help.
smon allow and smon rules are deprecated. They still work, forward to smon pass and print a warning.
config
Manage smon configuration (~/.ist/smon/config.json).
smon config set <key> <value>
smon config get <key>
smon config list
See Also
detector-agent- Session detection backend- TDA Pattern - How monitoring fits into manager/worker workflows