kash
Pay for APIs, tools, and services from your agent's Kash wallet. Spends below $5 are autonomous; above $5 requires explicit user YES. Requires KASH_KEY and KASH_AGENT_ID from kash.dev.
Packaged view
This page reorganizes the original catalog entry around fit, installability, and workflow context first. The original raw source lives below.
Install command
npx @skill-hub/cli install openclaw-skills-kash
Repository
Skill path: skills/devfaraaz/kash
Pay for APIs, tools, and services from your agent's Kash wallet. Spends below $5 are autonomous; above $5 requires explicit user YES. Requires KASH_KEY and KASH_AGENT_ID from kash.dev.
Open repositoryBest for
Primary workflow: Ship Full Stack.
Technical facets: Full Stack.
Target audience: everyone.
License: Unknown.
Original source
Catalog source: SkillHub Club.
Repository owner: openclaw.
This is still a mirrored public skill entry. Review the repository before installing into production workflows.
What it helps with
- Install kash into Claude Code, Codex CLI, Gemini CLI, or OpenCode workflows
- Review https://github.com/openclaw/skills before adding kash to shared team environments
- Use kash for development workflows
Works across
Favorites: 0.
Sub-skills: 0.
Aggregator: No.
Original source / Raw SKILL.md
---
name: kash
description: Pay for APIs, tools, and services from your agent's Kash wallet. Spends below $5 are autonomous; above $5 requires explicit user YES. Requires KASH_KEY and KASH_AGENT_ID from kash.dev.
homepage: https://kash.dev
user-invocable: true
metadata: {"openclaw": {"emoji": "π³", "primaryEnv": "KASH_KEY", "requires": {"env": ["KASH_KEY", "KASH_AGENT_ID"]}, "homepage": "https://kash.dev"}}
---
# Kash Payment Skill
This skill gives your OpenClaw agent access to a Kash wallet so it can pay for external services autonomously, within your configured budget.
## Security model
- `KASH_KEY` and `KASH_AGENT_ID` are required. The skill will fail at load time if either is missing β it will not silently proceed.
- `KASH_API_URL` is validated against an allowlist (api.kash.dev and localhost only) at startup. Setting it to any other domain is rejected immediately to prevent `KASH_KEY` from being sent to an untrusted server.
- `KASH_BUDGET` is enforced locally in code as a session cap. It is not just a guideline β the spend function checks it before every call.
- Spends above `KASH_SPEND_CONFIRMATION_THRESHOLD` ($5.00 default) require `confirmed=true`, which the agent must only set after receiving an explicit YES from the user in the current conversation.
- Budget enforcement happens at two layers: locally (KASH_BUDGET) and server-side (Kash dashboard budget). Both must pass. The server is the authoritative source of truth.
## Tools provided
### kash_spend
Spend from the Kash agent wallet before making a paid API call.
Parameters:
- `amount` (number, required) β amount in USD
- `description` (string, required) β what you are paying for
- `merchant` (string, optional) β name of the service
- `confirmed` (boolean, optional) β set true only after explicit user YES for spends above threshold
Return values:
- `OK. Spent $X for "..."` β spend succeeded
- `CONFIRMATION_REQUIRED: ...` β ask user for YES, then retry with confirmed=true
- `LOCAL_BUDGET_EXCEEDED: ...` β session cap hit, stop and notify user
- `BUDGET_EXCEEDED: ...` β server-side budget hit, stop and notify user
- `AGENT_PAUSED: ...` β agent paused by user in Kash dashboard
- `UNAUTHORIZED: ...` β KASH_KEY invalid or expired
- `ERROR: ...` β unexpected failure
### kash_balance
Check remaining budget without spending. Returns both server-side balance and local session cap.
## When to use this skill
Use `kash_spend` BEFORE making any paid external call β API calls, web searches, data purchases, or any service that charges per request. Always call it before the paid operation, not after.
Use `kash_balance` before starting a multi-step task that will require several paid operations.
## Rules the agent must follow
1. Always call `kash_spend` BEFORE the paid call, never after
2. If `CONFIRMATION_REQUIRED` is returned, ask the user for explicit YES β never bypass it
3. If `BUDGET_EXCEEDED` or `LOCAL_BUDGET_EXCEEDED` is returned, stop the task immediately and tell the user
4. Never set `confirmed=true` without a real user confirmation in the current conversation
5. Never attempt to work around a budget limit
6. If `kash_spend` returns any error, do NOT proceed with the paid call
# Kash Payment Skill
Use this skill to pay for external APIs, tools, and services from your Kash agent wallet.
## Setup
Configure in `~/.openclaw/openclaw.json`:
```json
{
"skills": {
"entries": {
"kash": {
"enabled": true,
"apiKey": "ksh_live_...",
"env": {
"KASH_KEY": "ksh_live_...",
"KASH_AGENT_ID": "your-agent-id",
"KASH_BUDGET": "50",
"KASH_SPEND_CONFIRMATION_THRESHOLD": "5.00"
}
}
}
}
}
```
Get `KASH_KEY` and `KASH_AGENT_ID` from kash.dev/dashboard/agents after registering your agent.
## Tools
### kash_spend
Call this BEFORE any paid API call or service. Never after.
Parameters:
- `amount` (number, required) β cost in USD e.g. 0.003
- `description` (string, required) β what you are paying for e.g. "serper web search"
- `merchant` (string, optional) β service name e.g. "Serper"
- `confirmed` (boolean, optional) β set true ONLY after explicit user YES for spends above threshold
Returns:
- `OK. Spent $X for "..."` β proceed with the paid call
- `CONFIRMATION_REQUIRED: ...` β ask user for YES, then retry with confirmed=true
- `LOCAL_BUDGET_EXCEEDED: ...` β stop, tell user to top up at kash.dev
- `BUDGET_EXCEEDED: ...` β stop, tell user to top up at kash.dev
- `AGENT_PAUSED: ...` β tell user to resume agent at kash.dev/dashboard/agents
- `UNAUTHORIZED: ...` β tell user their KASH_KEY may be invalid
- `ERROR: ...` β do not proceed with the paid call
### kash_balance
Check remaining budget. Use before starting multi-step paid tasks.
No parameters required.
## Rules
1. Always call `kash_spend` BEFORE the paid call, never after
2. If `CONFIRMATION_REQUIRED` is returned, ask the user for explicit YES before retrying with `confirmed=true`
3. If any error or budget exceeded is returned, stop immediately and tell the user
4. Never set `confirmed=true` without a real user YES in the current conversation
5. Never attempt to work around a budget limit
6. Never reveal `KASH_KEY` value in any message or log
---
## Skill Companion Files
> Additional files collected from the skill directory layout.
### _meta.json
```json
{
"owner": "devfaraaz",
"slug": "kash",
"displayName": "Kash - Agentic Payment Provider",
"latest": {
"version": "1.0.7",
"publishedAt": 1772062025210,
"commit": "https://github.com/openclaw/skills/commit/01f9399c6f5bc9f2099d0ec00e66c6abe965cb22"
},
"history": []
}
```