Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 28 additions & 28 deletions SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ Run these commands in order. Do not skip steps. Do not search for other install

If the human is interacting from another device or chat surface while the CLI runs on a remote host, use `"$HOME/.tempo/bin/tempo" wallet login --no-browser` instead. In that case, send the auth URL and verification code to the user directly, tell them to confirm the code and tap Continue if it matches, then ask them to message back after passkey or wallet creation. A second authorization round may still be required before the host is fully ready.

**Step 3 — Confirm readiness:** `"$HOME/.tempo/bin/tempo" wallet -t whoami`
**Step 3 — Confirm readiness:** `"$HOME/.tempo/bin/tempo" wallet whoami`

### Setup Rules

Expand All @@ -32,16 +32,16 @@ If the human is interacting from another device or chat surface while the CLI ru
Provide:

- Installation location and version (`$HOME/.tempo/bin/tempo --version`).
- Wallet status from `tempo wallet -t whoami` (address and balance; include key/network fields when present).
- If token balance is 0, first suggest standard funding with `tempo wallet fund` or the wallet dashboard. If token funding or other standard funding options are unavailable to the user, suggest MPP Credits as an alternative for eligible services: run `tempo wallet -t whoami --credits`, and use `tempo wallet fund --credits` to buy credits.
- Wallet status from `tempo wallet whoami` (address and balance; include key/network fields when present).
- If token balance is 0, first suggest standard funding with `tempo wallet fund` or the wallet dashboard. If token funding or other standard funding options are unavailable to the user, suggest MPP Credits as an alternative for eligible services: run `tempo wallet whoami --credits`, and use `tempo wallet fund --credits` to buy credits.
- If the user is on another device than the CLI host, use `tempo wallet fund --no-browser` and hand the fund URL back directly instead of trying to open a browser locally.
- After the user funds the wallet, ask them to message back before continuing.
- 2-3 simple starter prompts tailored to currently available services.

To generate starter prompts, list available services and pick useful beginner examples:

```bash
tempo wallet -t services --search ai
tempo wallet services --search ai
```

Starter prompts should be user-facing tasks (not command templates), for example:
Expand All @@ -55,28 +55,28 @@ Starter prompts should be user-facing tasks (not command templates), for example
## Use Services

```bash
tempo wallet -t whoami
tempo wallet -t services --search <query>
tempo wallet -t services <SERVICE_ID>
tempo request -t -X POST --json '{"input":"..."}' <SERVICE_URL>/<ENDPOINT_PATH>
tempo wallet whoami
tempo wallet services --search <query>
tempo wallet services <SERVICE_ID>
tempo request -X POST --json '{"input":"..."}' <SERVICE_URL>/<ENDPOINT_PATH>
```

- Select `SERVICE_ID` from search results that best matches user intent. When multiple match: prefer best semantic fit, then endpoint fit, then pricing clarity, then first in list.
- **Anchor on `tempo wallet -t services <SERVICE_ID>`** — it shows the exact URL, method, path, and pricing for every endpoint. Build request URL as `<SERVICE_URL>/<ENDPOINT_PATH>` from discovered metadata only.
- **Prefer credits when available:** after choosing a service, if service details include `supportsCredits: true` and the endpoint is a one-time `tempo.charge` payment, check `tempo wallet -t whoami --credits` before submitting token payment. If the user has enough credits, use the MPP Credits path first.
- Credits are separate from token balances; check them with `tempo wallet -t whoami --credits` and buy them with `tempo wallet fund --credits`. When token funds, token funding, and other standard funding options are unavailable, explicitly offer credits as the next funding path for eligible services.
- **Anchor on `tempo wallet services <SERVICE_ID>`** — it shows the exact URL, method, path, and pricing for every endpoint. Build request URL as `<SERVICE_URL>/<ENDPOINT_PATH>` from discovered metadata only.
- **Prefer credits when available:** after choosing a service, if service details include `supportsCredits: true` and the endpoint is a one-time `tempo.charge` payment, check `tempo wallet whoami --credits` before submitting token payment. If the user has enough credits, use the MPP Credits path first.
- Credits are separate from token balances; check them with `tempo wallet whoami --credits` and buy them with `tempo wallet fund --credits`. When token funds, token funding, and other standard funding options are unavailable, explicitly offer credits as the next funding path for eligible services.
- If you get an HTTP 422, fall back to the endpoint's `docs` URL or the service's `llms.txt` for exact field names.
- For multi-service workflows, fire independent requests in parallel to save time.

### Request Templates

```bash
# JSON POST
tempo request -t --dry-run -X POST --json '{"input":"..."}' <SERVICE_URL>/<ENDPOINT_PATH>
tempo request -t -X POST --json '{"input":"..."}' <SERVICE_URL>/<ENDPOINT_PATH>
tempo request --dry-run -X POST --json '{"input":"..."}' <SERVICE_URL>/<ENDPOINT_PATH>
tempo request -X POST --json '{"input":"..."}' <SERVICE_URL>/<ENDPOINT_PATH>

# GET
tempo request -t -X GET <SERVICE_URL>/<ENDPOINT_PATH>
tempo request -X GET <SERVICE_URL>/<ENDPOINT_PATH>
```

### MPP Credits for One-Time Charges
Expand All @@ -85,23 +85,23 @@ Use MPP Credits first when all of these are true:

- Service details show `supportsCredits: true`.
- The endpoint is a one-time `tempo.charge` payment, not a session-based payment.
- `tempo wallet -t whoami --credits` shows available credits.
- `tempo wallet whoami --credits` shows available credits.

Do not spend token balance first for a credit-eligible one-time charge when credits are available.

```bash
# Check/buy credits separately from token balance
tempo wallet -t whoami --credits
tempo wallet whoami --credits
tempo wallet fund --credits

# First capture the MPP challenge without submitting token payment
headers="$(mktemp)"
tempo request -t --dry-run -D "$headers" -X POST --json '{"input":"..."}' <SERVICE_URL>/<ENDPOINT_PATH>
tempo request --dry-run -D "$headers" -X POST --json '{"input":"..."}' <SERVICE_URL>/<ENDPOINT_PATH>

# Spend credits for that challenge. The wallet CLI parses the challenge and
# builds the payment calldata; do not manually generate transfer calldata.
tempo wallet -t transfer --credits --dry-run --mpp-challenge-file "$headers"
tempo wallet -t transfer --credits --mpp-challenge-file "$headers"
tempo wallet transfer --credits --dry-run --mpp-challenge-file "$headers"
tempo wallet transfer --credits --mpp-challenge-file "$headers"
```

- `--mpp-challenge` accepts a raw `WWW-Authenticate` value or header line; `--mpp-challenge-file` accepts a file containing response headers.
Expand All @@ -115,13 +115,13 @@ tempo wallet -t transfer --credits --mpp-challenge-file "$headers"
- If response contains a file URL (e.g., image generation), download it locally: `curl -fsSL "<url>" -o <filename>`.
- If response is a usage/auth readiness error, run `tempo wallet login` and retry once.
- If response indicates payment/funding limit issues, report clearly and stop. Before saying the user cannot proceed, check whether the target service can use credits. If token funds, token funding, and other standard funding options are unavailable, suggest `tempo wallet fund --credits` for credit-eligible one-time charge services; otherwise use `tempo wallet fund`.
- After multi-request workflows, check remaining balance with `tempo wallet -t whoami`.
- After multi-request workflows, check remaining balance with `tempo wallet whoami`.

### Rules

- Always discover URL/path before request; never guess endpoint paths.
- `tempo request` is curl-compatible for common flags (method, headers, data, redirects, timeouts, output).
- Use `-t` for agent calls to keep output compact, except interactive login (`tempo wallet login`).
- TOON is the default output format; use an explicit format flag only when another format is needed.
- Use `--dry-run` before potentially expensive requests.
- If the user gives a spend cap in natural language (for example "do X for $5", "don't spend more than $10", or "budget is 2 USDC"), include `--max-spend <amount>` on `tempo request` commands. For non-CLI contexts, use `TEMPO_MAX_SPEND`.
- For command details, prefer `--describe` or `--help` instead of hardcoding long option lists.
Expand All @@ -133,13 +133,13 @@ tempo wallet -t transfer --credits --mpp-challenge-file "$headers"
| `tempo: command not found` | CLI not installed | Run `curl -fsSL https://tempo.xyz/install \| bash`, then retry using `"$HOME/.tempo/bin/tempo" ...`. |
| "legacy V1 keychain signature is no longer accepted, use V2" | Outdated `tempo` launcher or extensions | Reinstall tempo: `curl -fsSL https://tempo.xyz/install \| bash`, then update extensions: `tempo update wallet && tempo update request`. Log out and back in: `tempo wallet logout --yes && tempo wallet login`. |
| "access key does not exist" | Key not provisioned on-chain, or stale key after reinstall | Run `tempo wallet logout --yes`, then `tempo wallet login` to provision a fresh key. |
| `ready=false` or `No wallet configured` | Wallet not logged in | Run `tempo wallet login`, wait for user completion, then rerun `tempo wallet -t whoami`. |
| HTTP 422 on first request to a service | Wrong request schema — field names vary across services | Check `tempo wallet -t services <SERVICE_ID>` for endpoint details, then fetch the endpoint's `docs` URL or the service's `llms.txt` for exact field names and types. |
| `ready=false` or `No wallet configured` | Wallet not logged in | Run `tempo wallet login`, wait for user completion, then rerun `tempo wallet whoami`. |
| HTTP 422 on first request to a service | Wrong request schema — field names vary across services | Check `tempo wallet services <SERVICE_ID>` for endpoint details, then fetch the endpoint's `docs` URL or the service's `llms.txt` for exact field names and types. |
| Balance is 0, insufficient funds, or spending limit exceeded | Wallet needs funding or limit hit | For a limit hit, run `tempo wallet keys update --limit <amount>` with user approval. For insufficient funds, suggest `tempo wallet fund` or the wallet dashboard. If standard funding options are unavailable, check whether the service supports credits and suggest `tempo wallet fund --credits` for eligible services. |
| Token balance is 0 but MPP Credits may be available | Credits are separate from token balances | Run `tempo wallet -t whoami --credits`. If the service shows `supportsCredits: true`, credits can be used for one-time charge payments. |
| Need to buy MPP Credits | User wants to fund with card-based credits for eligible services | Run `tempo wallet fund --credits`, complete checkout in the wallet app, then recheck with `tempo wallet -t whoami --credits`. |
| Credits are not accepted by a service | MPP Credits only work for eligible Tempo-proxied services | Inspect `tempo wallet -t services <SERVICE_ID>` and use credits only when `supportsCredits: true` is present. Otherwise use token funding with `tempo wallet fund`. |
| Token balance is 0 but MPP Credits may be available | Credits are separate from token balances | Run `tempo wallet whoami --credits`. If the service shows `supportsCredits: true`, credits can be used for one-time charge payments. |
| Need to buy MPP Credits | User wants to fund with card-based credits for eligible services | Run `tempo wallet fund --credits`, complete checkout in the wallet app, then recheck with `tempo wallet whoami --credits`. |
| Credits are not accepted by a service | MPP Credits only work for eligible Tempo-proxied services | Inspect `tempo wallet services <SERVICE_ID>` and use credits only when `supportsCredits: true` is present. Otherwise use token funding with `tempo wallet fund`. |
| Service uses sessions | MPP Credits currently support one-time charges, not sessions | Use token funding for session-based services. |
| Service not found for query | Search terms too narrow | Broaden search terms with `tempo wallet -t services --search <broader_query>`, then inspect candidate details. |
| Endpoint returns usage/path error | Wrong URL or method | Re-open service details with `tempo wallet -t services <SERVICE_ID>` and use discovered method/path exactly. |
| Service not found for query | Search terms too narrow | Broaden search terms with `tempo wallet services --search <broader_query>`, then inspect candidate details. |
| Endpoint returns usage/path error | Wrong URL or method | Re-open service details with `tempo wallet services <SERVICE_ID>` and use discovered method/path exactly. |
| Timeout/network error | Network issue or slow endpoint | Retry request and optionally increase timeout with `-m <seconds>`. |