Hooks
What vaaya runs automatically, and when. A hook is a command Claude Code fires at a fixed moment, without you asking for it.
> /plugin marketplace add vaaya-ai/vaaya-mcp > /plugin install vaaya@vaaya
Ships with vaaya. Installing the plugin gets these hooks.
What fires, and when
SessionStart
Fires once when a session begins, and again after a context compaction. It is where a plugin sets up its environment, or restores state the compaction dropped.
- Matches
startup|clear|compactbash "${CLAUDE_PLUGIN_ROOT}/hooks/session-start.sh"
Where it lives
- hooks/session-start.shRunsGitHub
Read the script
#!/usr/bin/env bash # SessionStart hook for the Vaaya plugin. # # Mirrors the superpowers plugin: read the forcing reminder from session-inject.md, # JSON-escape it with bash parameter substitution (no external deps like jq), and # print the structured `hookSpecificOutput.additionalContext` JSON that Claude Code # injects into the agent's context. This is the reliable channel — preferred over # raw stdout. set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" payload="$(cat "${SCRIPT_DIR}/session-inject.md")" # Escape a string for embedding inside a JSON string value. escape_json() { local s="$1" s="${s//\\/\\\\}" # backslash first s="${s//\"/\\\"}" # double quotes s="${s//$'\n'/\\n}" # newlines s="${s//$'\r'/\\r}" # carriage returns s="${s//$'\t'/\\t}" # tabs printf '%s' "$s" } escaped="$(escape_json "$payload")" printf '{"hookSpecificOutput":{"hookEventName":"SessionStart","additionalContext":"%s"}}\n' "$escaped"
Read the script before you install anything that runs on your machine. This is the one part of a plugin that acts without being asked.
MCP server for AI agent payments. An agent in Cursor, Claude Code, Claude Desktop, Codex, or any MCP host can call paid APIs (search, scraping, contact data, public records, compute, media, research) from one balance, with a spend ceiling it states on every
Repo: vaaya-ai/vaaya-mcp

