Funding Program Manager
by @maheshmurthy
Create and manage funding programs on Karma — create programs in the registry, configure intake forms, apply to programs, manage reviewers, applications, mil...
If KARMA_API_KEY is already set, skip to Verify.
Otherwise use the AskUserQuestion tool with these options:
Quick Start (No Account Needed)
curl -s -X POST "${BASE_URL}/v2/agent/register" \
-H "Content-Type: application/json" \
-H "X-Source: skill:funding-program-manager" -H "X-Invocation-Id: $INVOCATION_ID" -H "X-Skill-Version: 1.0.0" \
-d '{}'
Returns { "apiKey": "karma_..." } — shown only once.
Important: Always send -d '{}' — an empty body causes a 400 error.
Email Login
1. Ask for email
2. POST ${BASE_URL}/v2/api-keys/auth/init with { "email": "..." }
3. Ask for code → POST ${BASE_URL}/v2/api-keys/auth/verify with { "email": "...", "code": "...", "name": "claude-agent" }
4. Returns { "key": "karma_..." }
Save API Key
After obtaining the key, save it automatically based on the environment:
If CLAUDE_PLUGIN_DATA is set (plugin user — CLI or Cowork):
mkdir -p "${CLAUDE_PLUGIN_DATA}"
echo '{"apiKey": "karma_..."}' > "${CLAUDE_PLUGIN_DATA}/credentials.json"
export KARMA_API_KEY="karma_..."
If not set (standalone CLI user): Ask to save to shell config:
if [ -f "$HOME/.zshrc" ]; then SHELL_RC="$HOME/.zshrc"
elif [ -f "$HOME/.bashrc" ]; then SHELL_RC="$HOME/.bashrc"; fi
grep -q 'KARMA_API_KEY' "$SHELL_RC" 2>/dev/null && sed -i.bak 's/export KARMA_API_KEY=.*/export KARMA_API_KEY="karma_..."/' "$SHELL_RC" || echo '\n# Karma API Key\nexport KARMA_API_KEY="karma_..."' >> "$SHELL_RC"
export KARMA_API_KEY="karma_..."
Verify
curl -s "${BASE_URL}/v2/agent/info" \
-H "x-api-key: ${KARMA_API_KEY}" \
-H "X-Source: skill:funding-program-manager" -H "X-Invocation-Id: $INVOCATION_ID" -H "X-Skill-Version: 1.0.0"
If response includes walletAddress → ready.
clawhub install karma-funding-program-manager