v0.7.0 — Multimodal & Native Caching
Highlights
- Multimodal inputs — agents accept images, PDFs, and audio directly via
type: fileinagent.yaml. Three transports: upload to/api/files(source: "id"), inline base64 (source: "data"), or HTTPS URL (source: "url"). The SDK auto-uploadsBlob/File/Uint8Array. - Native prompt caching — 30-90% input-token savings on repeated system + tools content. Automatic across Anthropic, OpenAI, Google Gemini, xAI Grok, and Groq. No
agent.yamlchange required. Newusage.cache_read_tokensfield; cost-tracking accuracy ±5% of provider invoice. - Script dependency resolution — drop a
package.json(Node) orrequirements.txt/pyproject.toml(Python) at the bundle root. Skrun resolves deps on first run, caches at~/.skrun/deps/<hash>/for instant subsequent runs. Auto-detects pnpm/yarn/npm + uv/poetry lockfiles for reproducible installs. Newskrun cache list/clear. - Tool choice directives —
tool_choice: <tool-name>to force a specific tool,requiredto force any tool,noneto block, or per-toolrequired: true. Native translation across Anthropic, Gemini, OpenAI, xAI. - xAI Grok 4.3 as 6th first-class provider — set
XAI_API_KEY. Image input + text-only documents. $1.25/M input, $2.50/M output. - Cache cost-savings on the dashboard — "Cost saved" tile on home (sparkline), `saved $X.XX` on run-detail, "Cache savings 7d" on agent-detail.
- Per-version delete endpoint — `DELETE /api/agents/:ns/:name/versions/:version` removes a single bad version without nuking the whole agent. 409 `LAST_VERSION` if it would orphan.
Breaking
None.
Migration
- Supabase self-hosters: run migration `004_add_cache_to_runs.sql` from `packages/api/src/db/migrations/` to add the new `runs.usage_cache_*` columns. SQLite users: auto-applied on startup.
- Existing agents continue to work unchanged — all new features are opt-in via `agent.yaml`.
Stats
- 993 tests pass (was 522 at v0.6.0)
- 38/38 live tests (multi-provider, including cache hit verification)
- 6 first-class providers (was 5)
- OpenAPI 3.1 spec at 0.7.0
Install
```bash
npx @skrun-dev/cli@0.7.0 --version
or
npm i -g @skrun-dev/cli@0.7.0
```
Full changelog: CHANGELOG.md