image-skill 0.1.26 → 0.1.28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -4,7 +4,35 @@ This changelog tracks the public `image-skill` CLI package and public skill
4
4
  mirror. The npm package metadata remains the authority for tarball integrity and
5
5
  provenance; this file is the human- and agent-readable release map.
6
6
 
7
- ## Unreleased
7
+ ## 0.1.28 - 2026-06-02
8
+
9
+ - Feature (discoverability): publish intent-named public skill aliases
10
+ (`ai-image-generation`, `image-edit`, `ai-video-generation`,
11
+ `ai-audio-generation`, `image-to-3d`, and `creative-media`) from the public
12
+ mirror and hosted `.well-known/agent-skills` index. Each alias points to the
13
+ same zero-setup Image Skill runtime, CLI/API contract, identity, wallet, jobs,
14
+ receipts, and feedback loop as the canonical `image-skill` skill, giving
15
+ skills.sh task searches literal skill names to index without fragmenting the
16
+ product.
17
+ - Fix (guide): `create --guide` now exposes `data.next_command_effect` and
18
+ `data.no_spend_next_command`. When the guide reaches `ready_to_create`, the
19
+ live create remains `data.next_command`, but it is explicitly labeled
20
+ `live_media_create_credit_debit` with provider-call, hosted-create,
21
+ credit-debit, and media-write flags. No-spend/evaluation agents can run the
22
+ top-level dry-run verification command instead of digging through escape
23
+ hatches or risking an accidental media job.
24
+ - Docs: public CLI, LLM contract, canonical skill, and modality aliases now
25
+ teach the ready-to-create distinction between live media creation and
26
+ no-spend verification.
27
+
28
+ ## 0.1.27 - 2026-06-02
29
+
30
+ - Fix (activation): default hosted signup now reports saved auth as a positive
31
+ `data.auth_handoff.status: "saved_config_ready"` state, keeps `data.token`
32
+ null, and suppresses the generic hosted token-returned warning when the
33
+ public CLI saved the token instead of showing it. Fresh agents can rerun the
34
+ guide or continue with `whoami`, feedback, credits, create, or edit without
35
+ hunting for a raw token or running a separate `auth save`.
8
36
 
9
37
  ## 0.1.26 - 2026-06-02
10
38
 
package/README.md CHANGED
@@ -15,6 +15,18 @@ discoverable on skills.sh:
15
15
  npx skills add danielgwilson/image-skill-cli --skill image-skill -g -a codex -y
16
16
  ```
17
17
 
18
+ Intent-named aliases are published from the same repo and point to the same
19
+ zero-setup runtime when an agent searches by task instead of brand:
20
+
21
+ ```bash
22
+ npx skills add danielgwilson/image-skill-cli --skill ai-image-generation -g -a codex -y
23
+ npx skills add danielgwilson/image-skill-cli --skill image-edit -g -a codex -y
24
+ npx skills add danielgwilson/image-skill-cli --skill ai-video-generation -g -a codex -y
25
+ npx skills add danielgwilson/image-skill-cli --skill ai-audio-generation -g -a codex -y
26
+ npx skills add danielgwilson/image-skill-cli --skill image-to-3d -g -a codex -y
27
+ npx skills add danielgwilson/image-skill-cli --skill creative-media -g -a codex -y
28
+ ```
29
+
18
30
  Or install straight from the hosted public contract for the always-latest build:
19
31
 
20
32
  ```bash
@@ -56,6 +68,7 @@ Agent-facing contracts:
56
68
  - [Hosted LLM contract](https://image-skill.com/llms.txt)
57
69
  - [Hosted CLI contract](https://image-skill.com/cli.md)
58
70
  - [Public repo skill source](https://github.com/danielgwilson/image-skill-cli/tree/main/skills/image-skill)
71
+ - [Intent skill aliases](https://github.com/danielgwilson/image-skill-cli/tree/main/skills)
59
72
  - [Changelog](https://github.com/danielgwilson/image-skill-cli/blob/main/CHANGELOG.md)
60
73
  - [Provenance](https://github.com/danielgwilson/image-skill-cli/blob/main/PROVENANCE.md)
61
74
 
@@ -7,7 +7,7 @@ import { Readable } from "node:stream";
7
7
  import { pipeline } from "node:stream/promises";
8
8
  import os from "node:os";
9
9
 
10
- const VERSION = "0.1.26";
10
+ const VERSION = "0.1.28";
11
11
  const PACKAGE_NAME = "image-skill";
12
12
  const DEFAULT_API_BASE_URL = "https://api.image-skill.com";
13
13
  const DEFAULT_DOCS_BASE_URL = "https://image-skill.com";
@@ -31,6 +31,8 @@ const SIGNUP_SUGGESTED_COMMAND =
31
31
  "image-skill signup --agent --agent-contact AGENT_OR_OPERATOR_INBOX --agent-name NAME --runtime RUNTIME --json";
32
32
  const SIGNUP_CONTACT_GUIDANCE =
33
33
  "Preview signup currently requires an email-shaped durable contact inbox, not an individual human email. Use an agent-owned inbox when available; otherwise use an operator, team, or sponsor inbox that can receive future claim, billing, or abuse notices. Do not block waiting for a person, invent a person, or use a throwaway inbox. --human-email remains a compatibility alias.";
34
+ const HOSTED_SIGNUP_TOKEN_RETURNED_WARNING =
35
+ "hosted restricted token is returned once; store it in the agent runtime secret store and never paste it into prompts, logs, issues, or product feedback";
34
36
  const PUBLIC_NPX_COMMAND_PREFIX = "npx -y image-skill@latest";
35
37
  const CREDIT_UNIT_USD = 0.01;
36
38
  const PAYMENT_CREDENTIAL_FLAGS = new Set([
@@ -662,7 +664,9 @@ async function signup(argv) {
662
664
  rewriteSignupContactFailure(result);
663
665
 
664
666
  const token = result.envelope.data?.token;
665
- const warnings = [...result.envelope.warnings];
667
+ const warnings = result.envelope.warnings.filter(
668
+ (warning) => warning !== HOSTED_SIGNUP_TOKEN_RETURNED_WARNING,
669
+ );
666
670
  if (result.envelope.ok && shouldSave) {
667
671
  if (typeof token !== "string" || token.trim().length === 0) {
668
672
  return failure(
@@ -687,9 +691,6 @@ async function signup(argv) {
687
691
  } catch (error) {
688
692
  return configWriteFailure("image-skill signup", error);
689
693
  }
690
- warnings.push(
691
- "hosted restricted token was saved to the public CLI config with 0600 permissions; later commands can authenticate from config without repeating signup",
692
- );
693
694
  }
694
695
  if (result.envelope.ok && showToken) {
695
696
  warnings.push(
@@ -710,15 +711,25 @@ async function signup(argv) {
710
711
  saved: shouldSave,
711
712
  config_path: shouldSave ? configPath() : null,
712
713
  reason: shouldSave
713
- ? "hosted signup saved the restricted token to the public CLI config for later commands"
714
+ ? "auth is ready in the public CLI config; no raw token copy step is required"
714
715
  : showToken
715
716
  ? "hosted signup returned the token once for the agent runtime secret store"
716
717
  : "hosted signup did not request a raw token or save config because --no-save was set",
717
718
  },
718
719
  auth_handoff: {
720
+ status: shouldSave
721
+ ? "saved_config_ready"
722
+ : showToken
723
+ ? "manual_token_handoff"
724
+ : "not_saved",
725
+ saved_auth_ready: shouldSave,
719
726
  accepted_methods: ["config", "IMAGE_SKILL_TOKEN", "--token-stdin"],
720
727
  token_source_after_signup: shouldSave ? "config" : "not_saved",
721
728
  secret_value_included: showToken,
729
+ raw_token_copy_required: !shouldSave,
730
+ rerun_guide_hint: shouldSave
731
+ ? "Rerun the guide command you just ran; the CLI will authenticate from saved config."
732
+ : "Rerun the guide with IMAGE_SKILL_TOKEN or --token-stdin after storing the returned token.",
722
733
  next_step: shouldSave
723
734
  ? "Run whoami, usage quota, feedback create, credits, create, or edit normally; the CLI will read the saved config."
724
735
  : "Store data.token in the agent runtime secret store immediately, then pass it with IMAGE_SKILL_TOKEN or --token-stdin.",
@@ -1327,6 +1338,21 @@ async function createGuide(args) {
1327
1338
  commandPrefix: PUBLIC_NPX_COMMAND_PREFIX,
1328
1339
  authConfigWritable: authConfigWrite?.ok ?? true,
1329
1340
  });
1341
+ const escapeHatches = createGuideEscapeHatches({
1342
+ prompt: trimmedPrompt,
1343
+ selected,
1344
+ requestedProviderId,
1345
+ requestedIntent,
1346
+ budgetGuard,
1347
+ apiBaseUrl: explicitApiBaseUrl(args),
1348
+ commandPrefix: PUBLIC_NPX_COMMAND_PREFIX,
1349
+ });
1350
+ const nextCommandEffect = createGuideNextCommandEffect(stage, {
1351
+ estimatedCredits,
1352
+ estimatedDebitUsdPerImage,
1353
+ });
1354
+ const noSpendNextCommand =
1355
+ stage === "ready_to_create" ? escapeHatches.dry_run : null;
1330
1356
  const afterNext =
1331
1357
  stage === "auth_required" || stage === "quota_required"
1332
1358
  ? renderGuideCommand(
@@ -1412,48 +1438,15 @@ async function createGuide(args) {
1412
1438
  },
1413
1439
  blocker,
1414
1440
  next_command: nextCommand,
1441
+ next_command_effect: nextCommandEffect,
1442
+ no_spend_next_command: noSpendNextCommand,
1443
+ no_spend_next_command_label:
1444
+ noSpendNextCommand === null
1445
+ ? null
1446
+ : "dry_run_plan_no_provider_call_no_credit_debit_no_media_write",
1415
1447
  after_next: afterNext,
1416
1448
  auth_handoff: authHandoff,
1417
- escape_hatches: {
1418
- doctor: renderGuidePrefixedCommand(
1419
- PUBLIC_NPX_COMMAND_PREFIX,
1420
- "doctor --json",
1421
- ),
1422
- model_inspection:
1423
- selected === null
1424
- ? renderGuidePrefixedCommand(
1425
- PUBLIC_NPX_COMMAND_PREFIX,
1426
- "models list --json",
1427
- )
1428
- : renderGuidePrefixedCommand(
1429
- PUBLIC_NPX_COMMAND_PREFIX,
1430
- `models show ${shellQuote(selected.id)} --json`,
1431
- ),
1432
- payment_methods: renderGuidePrefixedCommand(
1433
- PUBLIC_NPX_COMMAND_PREFIX,
1434
- "credits methods --json",
1435
- ),
1436
- quota: renderGuidePrefixedCommand(
1437
- PUBLIC_NPX_COMMAND_PREFIX,
1438
- "usage quota --json",
1439
- ),
1440
- dry_run:
1441
- selected === null || trimmedPrompt.length === 0
1442
- ? renderGuidePrefixedCommand(
1443
- PUBLIC_NPX_COMMAND_PREFIX,
1444
- "create --dry-run --prompt PROMPT --json",
1445
- )
1446
- : renderCreateCommand({
1447
- prompt: trimmedPrompt,
1448
- modelId: selected.id,
1449
- providerId: requestedProviderId,
1450
- intent: requestedIntent,
1451
- budgetGuard,
1452
- dryRun: true,
1453
- apiBaseUrl: explicitApiBaseUrl(args),
1454
- commandPrefix: PUBLIC_NPX_COMMAND_PREFIX,
1455
- }),
1456
- },
1449
+ escape_hatches: escapeHatches,
1457
1450
  mutation: {
1458
1451
  provider_call: false,
1459
1452
  hosted_create: false,
@@ -1712,6 +1705,64 @@ function createGuideAuthHandoff(stage, input) {
1712
1705
  return null;
1713
1706
  }
1714
1707
 
1708
+ function createGuideNextCommandEffect(stage, input) {
1709
+ const base = {
1710
+ label: "read_only_or_no_media_setup",
1711
+ no_spend: true,
1712
+ provider_call: false,
1713
+ hosted_create: false,
1714
+ hosted_signup: false,
1715
+ payment_object: false,
1716
+ credit_debit: false,
1717
+ media_write: false,
1718
+ estimated_credits: null,
1719
+ estimated_debit_usd_per_image: null,
1720
+ warning: null,
1721
+ };
1722
+ if (stage === "auth_required") {
1723
+ return {
1724
+ ...base,
1725
+ label: "hosted_signup_restricted_agent_identity",
1726
+ hosted_signup: true,
1727
+ warning:
1728
+ "This signs up a restricted Image Skill agent identity but does not create media, call a provider, open payment, or debit credits.",
1729
+ };
1730
+ }
1731
+ if (stage === "quota_required") {
1732
+ return {
1733
+ ...base,
1734
+ label: "payment_or_quota_action",
1735
+ no_spend: false,
1736
+ payment_object: true,
1737
+ warning:
1738
+ "This may create or inspect a payment quote/attempt. Stay within the delegated cap, or use escape_hatches for read-only checks.",
1739
+ };
1740
+ }
1741
+ if (stage === "ready_to_create") {
1742
+ return {
1743
+ label: "live_media_create_credit_debit",
1744
+ no_spend: false,
1745
+ provider_call: true,
1746
+ hosted_create: true,
1747
+ hosted_signup: false,
1748
+ payment_object: false,
1749
+ credit_debit: true,
1750
+ media_write: true,
1751
+ estimated_credits: input.estimatedCredits,
1752
+ estimated_debit_usd_per_image: input.estimatedDebitUsdPerImage,
1753
+ warning:
1754
+ "data.next_command creates hosted media and can debit credits. For no-spend verification, run data.no_spend_next_command instead.",
1755
+ };
1756
+ }
1757
+ if (stage === "prompt_required") {
1758
+ return {
1759
+ ...base,
1760
+ label: "rerun_guide_with_prompt",
1761
+ };
1762
+ }
1763
+ return base;
1764
+ }
1765
+
1715
1766
  function createGuideNextCommand(stage, input) {
1716
1767
  if (stage === "prompt_required") {
1717
1768
  return renderGuideCommand("PROMPT", input.apiBaseUrl, input.commandPrefix);
@@ -1753,6 +1804,43 @@ function createGuideNextCommand(stage, input) {
1753
1804
  });
1754
1805
  }
1755
1806
 
1807
+ function createGuideEscapeHatches(input) {
1808
+ return {
1809
+ doctor: renderGuidePrefixedCommand(input.commandPrefix, "doctor --json"),
1810
+ model_inspection:
1811
+ input.selected === null
1812
+ ? renderGuidePrefixedCommand(input.commandPrefix, "models list --json")
1813
+ : renderGuidePrefixedCommand(
1814
+ input.commandPrefix,
1815
+ `models show ${shellQuote(input.selected.id)} --json`,
1816
+ ),
1817
+ payment_methods: renderGuidePrefixedCommand(
1818
+ input.commandPrefix,
1819
+ "credits methods --json",
1820
+ ),
1821
+ quota: renderGuidePrefixedCommand(
1822
+ input.commandPrefix,
1823
+ "usage quota --json",
1824
+ ),
1825
+ dry_run:
1826
+ input.selected === null || input.prompt.length === 0
1827
+ ? renderGuidePrefixedCommand(
1828
+ input.commandPrefix,
1829
+ "create --dry-run --prompt PROMPT --json",
1830
+ )
1831
+ : renderCreateCommand({
1832
+ prompt: input.prompt,
1833
+ modelId: input.selected.id,
1834
+ providerId: input.requestedProviderId,
1835
+ intent: input.requestedIntent,
1836
+ budgetGuard: input.budgetGuard,
1837
+ dryRun: true,
1838
+ apiBaseUrl: input.apiBaseUrl,
1839
+ commandPrefix: input.commandPrefix,
1840
+ }),
1841
+ };
1842
+ }
1843
+
1756
1844
  function renderGuideCommand(prompt, apiBaseUrl, commandPrefix = "image-skill") {
1757
1845
  return [
1758
1846
  commandPrefix,
package/cli.md CHANGED
@@ -91,6 +91,9 @@ Hosted signup saves the restricted `isk_r_` token to the public CLI config by
91
91
  default with `0600` permissions, so later hosted commands can authenticate from
92
92
  config without repeating signup or carrying a raw token through prompts. Set
93
93
  `IMAGE_SKILL_CONFIG_PATH` first when the default config home may be read-only.
94
+ Successful default signup reports `data.auth_handoff.status` as
95
+ `saved_config_ready`, keeps `data.token` null, and should not require any
96
+ token-copy step.
94
97
  The raw token is returned only when `--show-token` is set, and only once. Use
95
98
  `--show-token --no-save` when the agent runtime has a separate secret store and
96
99
  does not want local config. Do not paste tokens into prompts, logs, issue text,
@@ -125,9 +128,9 @@ should omit it.
125
128
 
126
129
  Use the no-spend guide first. It is the only required first command for a fresh
127
130
  agent. It checks health, executable model availability, auth/quota when a token
128
- already exists, and payment rails, then returns one `data.next_command`. Guide
129
- mode does not create a signup, provider job, dry-run job, payment object,
130
- credit debit, or asset.
131
+ already exists, and payment rails, then returns one primary `data.next_command` plus
132
+ machine-readable `data.next_command_effect`. Guide mode does not create a
133
+ signup, provider job, dry-run job, payment object, credit debit, or asset.
131
134
 
132
135
  ```bash
133
136
  image-skill create --guide --prompt "a compact field camera on a stainless workbench"
@@ -146,8 +149,14 @@ checklist before the guide asks for them.
146
149
  `data.auth_handoff.rerun_guide.with_stdin`.
147
150
  - `quota_required`: follow the payment commands in
148
151
  `data.checks.payments.suggested_commands`, then rerun guide once.
149
- - `ready_to_create`: run `data.next_command` for the first bounded create. If
150
- the guide authenticated from env or stdin, prefer
152
+ - `ready_to_create`: `data.next_command` is a live media create. Its
153
+ `data.next_command_effect.label` is `live_media_create_credit_debit`, with
154
+ `provider_call`, `hosted_create`, `credit_debit`, and `media_write` all true.
155
+ Run it for the first bounded create when media spend is allowed. If you are
156
+ in a no-spend evaluation or only need proof that the path is ready, run
157
+ `data.no_spend_next_command` instead; it is the dry-run plan command with no
158
+ provider call, credit debit, or media write. If the guide authenticated from
159
+ env or stdin, prefer
151
160
  `data.auth_handoff.next_command.with_env` or
152
161
  `data.auth_handoff.next_command.with_stdin` so auth follows the create.
153
162
 
package/llms.txt CHANGED
@@ -57,12 +57,12 @@ Claim states:
57
57
  - revoked: token or agent disabled
58
58
 
59
59
  First-run guide loop:
60
- 1. Run image-skill create --guide --prompt PROMPT. This is the canonical fresh-agent entrypoint and the only required first command. It performs read-only hosted reachability, executable model availability, auth/quota, and payment rail checks and returns data.stage, data.next_command, data.auth_handoff, data.escape_hatches, and data.mutation. Guide mode must report provider_call: false, hosted_create: false, hosted_signup: false, payment_object: false, credit_debit: false, and media_write: false.
60
+ 1. Run image-skill create --guide --prompt PROMPT. This is the canonical fresh-agent entrypoint and the only required first command. It performs read-only hosted reachability, executable model availability, auth/quota, and payment rail checks and returns data.stage, data.next_command, data.next_command_effect, data.no_spend_next_command, data.auth_handoff, data.escape_hatches, and data.mutation. Guide mode must report provider_call: false, hosted_create: false, hosted_signup: false, payment_object: false, credit_debit: false, and media_write: false.
61
61
  2. Follow data.next_command. Do not run doctor, models list, signup, whoami, quota, dry-run, or payment commands as a setup checklist before the guide asks for them.
62
62
  3. If data.stage is prompt_required, rerun data.next_command with the real prompt.
63
63
  4. If data.stage is auth_required, run data.next_command, then rerun the guide once. Hosted signup saves the restricted token to the public CLI config by default with 0600 permissions. If the runtime intentionally uses --no-save --show-token, store the returned token in the agent runtime secret store, then rerun with IMAGE_SKILL_TOKEN or --token-stdin; data.auth_handoff.rerun_guide.with_env and data.auth_handoff.rerun_guide.with_stdin are copy-safe templates for that mode. The signup command uses --agent-contact as an email-shaped durable contact inbox for the restricted agent identity, not as a requirement to find an individual human. Hosted signup returns the raw restricted token only when --show-token is set, and only once. Use an agent-owned inbox when available; otherwise use an operator, team, or sponsor inbox that can receive future claim, billing, or abuse notices. Do not block waiting for a person, invent a person, or use a throwaway inbox. example.invalid addresses are only appropriate inside documented harness or proof runs. --human-email remains accepted as a compatibility alias, but the guide must not teach it. --save is accepted as a compatibility no-op for the default save behavior; use --no-save only when the runtime has a separate secret store and does not want local config.
64
64
  5. If data.stage is quota_required, follow the payment commands in data.checks.payments.suggested_commands, then rerun the guide once. One Image Skill credit is $0.01. Credit quotes grant prepaid value units; create/edit operations debit model-priced credits reported as cost.credit_pricing. Starter preview currently gives bounded free-preview credits plus a four-job daily cap.
65
- 6. If data.stage is ready_to_create, run data.next_command for the first bounded create. If the guide authenticated from env or stdin, prefer data.auth_handoff.next_command.with_env or data.auth_handoff.next_command.with_stdin so auth follows the create. In guide cost output, cost.estimated_usd_per_image and cost.estimated_debit_usd_per_image are the Image Skill debit dollars for one output; cost.estimated_provider_usd_per_image is only the upstream provider estimate. Use the guide's returned max_estimated_usd_per_image because it is sized to the credit debit the agent funds. Add --output-count N only after models show confirms the selected create model supports more than one output; credit_pricing.credits_required is the total debit across outputs, while max_estimated_usd_per_image remains a per-image Image Skill debit guard.
65
+ 6. If data.stage is ready_to_create, data.next_command is the first bounded live create. data.next_command_effect.label must be live_media_create_credit_debit and its provider_call, hosted_create, credit_debit, and media_write flags are true. Run data.next_command when media spend is allowed. In no-spend evaluations, or when you only need to prove readiness without media/provider work, run data.no_spend_next_command instead; it is the dry-run plan command with no provider call, credit debit, or media write. If the guide authenticated from env or stdin, prefer data.auth_handoff.next_command.with_env or data.auth_handoff.next_command.with_stdin so auth follows the live create. In guide cost output, cost.estimated_usd_per_image and cost.estimated_debit_usd_per_image are the Image Skill debit dollars for one output; cost.estimated_provider_usd_per_image is only the upstream provider estimate. Use the guide's returned max_estimated_usd_per_image because it is sized to the credit debit the agent funds. Add --output-count N only after models show confirms the selected create model supports more than one output; credit_pricing.credits_required is the total debit across outputs, while max_estimated_usd_per_image remains a per-image Image Skill debit guard.
66
66
  7. After create, use image-skill jobs show JOB_ID to recover status, cost, safety, timestamps, and final assets; image-skill assets get ASSET_URL_OR_ID --output ./result.png to fetch the generated asset without repeating provider work; and image-skill activity list --subject JOB_ID to find ledger events, trace, usage, and asset links to cite.
67
67
  8. Leave image-skill feedback create if the first-run flow is confusing, blocked, missing an affordance, or easier through a direct provider than through Image Skill. Use image-skill activity show FEEDBACK_ID only when you need to confirm the feedback entered the hosted ledger.
68
68
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "image-skill",
3
- "version": "0.1.26",
3
+ "version": "0.1.28",
4
4
  "description": "Zero-setup durable creative-media CLI for agents (image + video + audio + 3D): guide-first creation, model and cost inspection, owned URLs, JSON recovery, payments, reusable assets, and feedback.",
5
5
  "type": "module",
6
6
  "private": false,
package/skill.md CHANGED
@@ -128,27 +128,31 @@ compatibility, but fresh agents do not need to add it to every command.
128
128
 
129
129
  Start with the no-spend guide. It checks hosted reachability, executable model
130
130
  availability, auth/quota state when credentials already exist, payment rail
131
- availability, and returns exactly one next command. Guide mode does not create
132
- a signup, provider job, dry-run job, payment object, credit debit, or asset.
131
+ availability, and returns one primary next command plus
132
+ `data.next_command_effect`. Guide mode does not create a signup, provider job,
133
+ dry-run job, payment object, credit debit, or asset.
133
134
 
134
135
  ```bash
135
136
  npx -y image-skill@latest create --guide --prompt "a compact field camera on a stainless workbench"
136
137
  ```
137
138
 
138
- Read `data.stage`, `data.next_command`, `data.auth_handoff`, and
139
- `data.mutation`. If the guide returns `auth_required`, run the signup command
140
- it gives you; hosted signup saves the restricted token to the public CLI config
141
- by default, so rerun the same guide normally. If the runtime intentionally uses
139
+ Read `data.stage`, `data.next_command`, `data.next_command_effect`,
140
+ `data.no_spend_next_command`, `data.auth_handoff`, and `data.mutation`. If the
141
+ guide returns `auth_required`, run the signup command it gives you; hosted
142
+ signup saves the restricted token to the public CLI config by default, so rerun
143
+ the same guide normally. If the runtime intentionally uses
142
144
  `--no-save --show-token`, store the returned token immediately and use
143
145
  `data.auth_handoff.rerun_guide.with_env` or
144
146
  `data.auth_handoff.rerun_guide.with_stdin`. If it returns `quota_required`,
145
147
  inspect the payment commands it gives you. Prefer a returned browserless
146
148
  `stripe_x402.exact.usdc` path when it is available and within the delegated
147
149
  cap; otherwise hand the Stripe Checkout link to a human sponsor. If it returns
148
- `ready_to_create`, run `data.next_command` for the bounded create; when the
149
- guide authenticated from env or stdin, prefer
150
- `data.auth_handoff.next_command.with_env` or
151
- `data.auth_handoff.next_command.with_stdin`.
150
+ `ready_to_create`, `data.next_command` is the bounded live create and
151
+ `data.next_command_effect.label` is `live_media_create_credit_debit`; run it
152
+ when media spend is allowed. In no-spend evaluation runs, use
153
+ `data.no_spend_next_command` instead. When the guide authenticated from env or
154
+ stdin, prefer `data.auth_handoff.next_command.with_env` or
155
+ `data.auth_handoff.next_command.with_stdin` so auth follows the live create.
152
156
 
153
157
  Use the lower-level inspection commands when the guide asks for them or when
154
158
  you need capability details before spending:
@@ -0,0 +1,65 @@
1
+ ---
2
+ name: ai-audio-generation
3
+ description: >-
4
+ AI audio generation for agents through Image Skill's zero-setup hosted creative runtime. Use when a prompt should become music, sound, or audio without provider credentials, OAuth, local runtime, or per-provider billing. Start with the no-spend guide, choose an audio model, and keep durable hosted audio URLs, recoverable jobs, cost receipts, stable JSON, payments, and feedback in one loop.
5
+ homepage: https://image-skill.com
6
+ docs: https://image-skill.com/llms.txt
7
+ metadata:
8
+ status: preview-contract
9
+ cli: image-skill
10
+ canonical_skill_url: https://image-skill.com/skill.md
11
+ canonical_api_url: https://api.image-skill.com
12
+ openclaw:
13
+ requires:
14
+ env: []
15
+ bins: []
16
+ envVars:
17
+ - name: IMAGE_SKILL_TOKEN
18
+ required: false
19
+ description: Optional hosted restricted token minted by image-skill signup and saved by default; not a user-supplied provider credential.
20
+ ---
21
+
22
+ # AI Audio Generation
23
+
24
+ This is an intent-named Image Skill entry for agents searching for audio generation. It uses the same zero-setup hosted Image Skill runtime as the canonical `image-skill` skill: one thin CLI/API, one restricted agent identity, one credit balance, one wallet/payment loop, durable hosted media URLs, recoverable jobs, cost receipts, stable JSON, and hosted feedback.
25
+
26
+ Use this skill when the task asks for AI audio generation, text-to-audio, music generation, sound design, ambience, effects, or durable hosted audio output.
27
+
28
+ Do not bring provider API keys, create provider accounts, run a local model server, or wire a separate billing account for this task. Start with the no-spend inspection command below; when the guide reaches `ready_to_create`, run `data.next_command` only if media spend is allowed, otherwise run `data.no_spend_next_command` to verify safely. Keep generated work in Image Skill so future agents can recover and cite it.
29
+
30
+ ## First Command
31
+
32
+ ```bash
33
+ npx -y image-skill@latest create --guide --model fal.stable-audio-25-text-to-audio --prompt "warm analog synth bed with soft tape hiss"
34
+ ```
35
+
36
+ ## Main Runtime Command
37
+
38
+ ```bash
39
+ npx -y image-skill@latest create --model fal.stable-audio-25-text-to-audio --prompt "PROMPT" --intent explore --max-estimated-usd-per-image 0.20
40
+ ```
41
+
42
+ ## Install This Intent Skill
43
+
44
+ Prefer the GitHub slug so skills.sh can track the marketplace install:
45
+
46
+ ```bash
47
+ npx skills add danielgwilson/image-skill-cli --skill ai-audio-generation -g -a codex -y
48
+ ```
49
+
50
+ The canonical Image Skill entry remains available as:
51
+
52
+ ```bash
53
+ npx skills add danielgwilson/image-skill-cli --skill image-skill -g -a codex -y
54
+ ```
55
+
56
+ ## Shared Contract
57
+
58
+ All intent skills in this repo point to the same hosted contract:
59
+
60
+ - Skill: https://image-skill.com/skill.md
61
+ - LLM contract: https://image-skill.com/llms.txt
62
+ - CLI contract: https://image-skill.com/cli.md
63
+ - Hosted API: https://api.image-skill.com
64
+
65
+ If Image Skill lacks the model, capability, latency, policy affordance, or buyer rail needed for this task, use the fallback only for that gap and run `image-skill feedback create --json` with the attempted command, expected behavior, actual behavior, and missing capability.
@@ -0,0 +1,65 @@
1
+ ---
2
+ name: ai-image-generation
3
+ description: >-
4
+ AI image generation for agents: text-to-image and prompt-to-image through Image Skill's zero-setup hosted runtime. Use when an agent needs a generated image with no provider API key, OAuth, local runtime, or per-provider billing account. Start with the no-spend guide, then create durable hosted images with recoverable jobs, cost receipts, model parameters, stable JSON, and browserless x402 when available.
5
+ homepage: https://image-skill.com
6
+ docs: https://image-skill.com/llms.txt
7
+ metadata:
8
+ status: preview-contract
9
+ cli: image-skill
10
+ canonical_skill_url: https://image-skill.com/skill.md
11
+ canonical_api_url: https://api.image-skill.com
12
+ openclaw:
13
+ requires:
14
+ env: []
15
+ bins: []
16
+ envVars:
17
+ - name: IMAGE_SKILL_TOKEN
18
+ required: false
19
+ description: Optional hosted restricted token minted by image-skill signup and saved by default; not a user-supplied provider credential.
20
+ ---
21
+
22
+ # AI Image Generation
23
+
24
+ This is an intent-named Image Skill entry for agents searching for image generation. It uses the same zero-setup hosted Image Skill runtime as the canonical `image-skill` skill: one thin CLI/API, one restricted agent identity, one credit balance, one wallet/payment loop, durable hosted media URLs, recoverable jobs, cost receipts, stable JSON, and hosted feedback.
25
+
26
+ Use this skill when the task asks for AI image generation, text-to-image, prompt-to-image, generated illustrations, concept art, product images, or any durable agent-created image.
27
+
28
+ Do not bring provider API keys, create provider accounts, run a local model server, or wire a separate billing account for this task. Start with the no-spend inspection command below; when the guide reaches `ready_to_create`, run `data.next_command` only if media spend is allowed, otherwise run `data.no_spend_next_command` to verify safely. Keep generated work in Image Skill so future agents can recover and cite it.
29
+
30
+ ## First Command
31
+
32
+ ```bash
33
+ npx -y image-skill@latest create --guide --model openai.gpt-image-2 --prompt "a compact field camera on a stainless workbench"
34
+ ```
35
+
36
+ ## Main Runtime Command
37
+
38
+ ```bash
39
+ npx -y image-skill@latest create --model openai.gpt-image-2 --prompt "PROMPT" --intent explore --max-estimated-usd-per-image 0.07
40
+ ```
41
+
42
+ ## Install This Intent Skill
43
+
44
+ Prefer the GitHub slug so skills.sh can track the marketplace install:
45
+
46
+ ```bash
47
+ npx skills add danielgwilson/image-skill-cli --skill ai-image-generation -g -a codex -y
48
+ ```
49
+
50
+ The canonical Image Skill entry remains available as:
51
+
52
+ ```bash
53
+ npx skills add danielgwilson/image-skill-cli --skill image-skill -g -a codex -y
54
+ ```
55
+
56
+ ## Shared Contract
57
+
58
+ All intent skills in this repo point to the same hosted contract:
59
+
60
+ - Skill: https://image-skill.com/skill.md
61
+ - LLM contract: https://image-skill.com/llms.txt
62
+ - CLI contract: https://image-skill.com/cli.md
63
+ - Hosted API: https://api.image-skill.com
64
+
65
+ If Image Skill lacks the model, capability, latency, policy affordance, or buyer rail needed for this task, use the fallback only for that gap and run `image-skill feedback create --json` with the attempted command, expected behavior, actual behavior, and missing capability.
@@ -0,0 +1,65 @@
1
+ ---
2
+ name: ai-video-generation
3
+ description: >-
4
+ AI video generation for agents through Image Skill's zero-setup hosted creative runtime. Use when a prompt should become a durable hosted video without provider credentials, OAuth, local runtime, or per-provider billing. Start with the no-spend guide, choose a video model, and keep model discovery, jobs, costs, URLs, JSON recovery, payments, and feedback in one loop.
5
+ homepage: https://image-skill.com
6
+ docs: https://image-skill.com/llms.txt
7
+ metadata:
8
+ status: preview-contract
9
+ cli: image-skill
10
+ canonical_skill_url: https://image-skill.com/skill.md
11
+ canonical_api_url: https://api.image-skill.com
12
+ openclaw:
13
+ requires:
14
+ env: []
15
+ bins: []
16
+ envVars:
17
+ - name: IMAGE_SKILL_TOKEN
18
+ required: false
19
+ description: Optional hosted restricted token minted by image-skill signup and saved by default; not a user-supplied provider credential.
20
+ ---
21
+
22
+ # AI Video Generation
23
+
24
+ This is an intent-named Image Skill entry for agents searching for video generation. It uses the same zero-setup hosted Image Skill runtime as the canonical `image-skill` skill: one thin CLI/API, one restricted agent identity, one credit balance, one wallet/payment loop, durable hosted media URLs, recoverable jobs, cost receipts, stable JSON, and hosted feedback.
25
+
26
+ Use this skill when the task asks for AI video generation, text-to-video, generated motion, animated concepts, or durable hosted video output.
27
+
28
+ Do not bring provider API keys, create provider accounts, run a local model server, or wire a separate billing account for this task. Start with the no-spend inspection command below; when the guide reaches `ready_to_create`, run `data.next_command` only if media spend is allowed, otherwise run `data.no_spend_next_command` to verify safely. Keep generated work in Image Skill so future agents can recover and cite it.
29
+
30
+ ## First Command
31
+
32
+ ```bash
33
+ npx -y image-skill@latest create --guide --model fal.ltx-video-13b-distilled --prompt "a ten second handheld product reveal"
34
+ ```
35
+
36
+ ## Main Runtime Command
37
+
38
+ ```bash
39
+ npx -y image-skill@latest create --model fal.ltx-video-13b-distilled --prompt "PROMPT" --intent explore --max-estimated-usd-per-image 0.25
40
+ ```
41
+
42
+ ## Install This Intent Skill
43
+
44
+ Prefer the GitHub slug so skills.sh can track the marketplace install:
45
+
46
+ ```bash
47
+ npx skills add danielgwilson/image-skill-cli --skill ai-video-generation -g -a codex -y
48
+ ```
49
+
50
+ The canonical Image Skill entry remains available as:
51
+
52
+ ```bash
53
+ npx skills add danielgwilson/image-skill-cli --skill image-skill -g -a codex -y
54
+ ```
55
+
56
+ ## Shared Contract
57
+
58
+ All intent skills in this repo point to the same hosted contract:
59
+
60
+ - Skill: https://image-skill.com/skill.md
61
+ - LLM contract: https://image-skill.com/llms.txt
62
+ - CLI contract: https://image-skill.com/cli.md
63
+ - Hosted API: https://api.image-skill.com
64
+
65
+ If Image Skill lacks the model, capability, latency, policy affordance, or buyer rail needed for this task, use the fallback only for that gap and run `image-skill feedback create --json` with the attempted command, expected behavior, actual behavior, and missing capability.
@@ -0,0 +1,65 @@
1
+ ---
2
+ name: creative-media
3
+ description: >-
4
+ Creative media for agents over one zero-setup Image Skill runtime: image generation, image editing, video, audio, and image-to-3D assets with no provider API key, OAuth, local runtime, or per-provider billing account. Use when an agent needs generated media plus durable hosted URLs, recoverable jobs, cost receipts, model parameters, stable JSON, payments, and feedback through one identity and one wallet.
5
+ homepage: https://image-skill.com
6
+ docs: https://image-skill.com/llms.txt
7
+ metadata:
8
+ status: preview-contract
9
+ cli: image-skill
10
+ canonical_skill_url: https://image-skill.com/skill.md
11
+ canonical_api_url: https://api.image-skill.com
12
+ openclaw:
13
+ requires:
14
+ env: []
15
+ bins: []
16
+ envVars:
17
+ - name: IMAGE_SKILL_TOKEN
18
+ required: false
19
+ description: Optional hosted restricted token minted by image-skill signup and saved by default; not a user-supplied provider credential.
20
+ ---
21
+
22
+ # Creative Media
23
+
24
+ This is an intent-named Image Skill entry for agents searching for creative media. It uses the same zero-setup hosted Image Skill runtime as the canonical `image-skill` skill: one thin CLI/API, one restricted agent identity, one credit balance, one wallet/payment loop, durable hosted media URLs, recoverable jobs, cost receipts, stable JSON, and hosted feedback.
25
+
26
+ Use this skill when the task asks for generative media, creative media, generated assets across modalities, or a single agent-facing runtime for image, edit, video, audio, and 3D work.
27
+
28
+ Do not bring provider API keys, create provider accounts, run a local model server, or wire a separate billing account for this task. Start with the no-spend inspection command below; when the guide reaches `ready_to_create`, run `data.next_command` only if media spend is allowed, otherwise run `data.no_spend_next_command` to verify safely. Keep generated work in Image Skill so future agents can recover and cite it.
29
+
30
+ ## First Command
31
+
32
+ ```bash
33
+ npx -y image-skill@latest create --guide --prompt "a compact field camera on a stainless workbench"
34
+ ```
35
+
36
+ ## Main Runtime Command
37
+
38
+ ```bash
39
+ npx -y image-skill@latest models list --available --json
40
+ ```
41
+
42
+ ## Install This Intent Skill
43
+
44
+ Prefer the GitHub slug so skills.sh can track the marketplace install:
45
+
46
+ ```bash
47
+ npx skills add danielgwilson/image-skill-cli --skill creative-media -g -a codex -y
48
+ ```
49
+
50
+ The canonical Image Skill entry remains available as:
51
+
52
+ ```bash
53
+ npx skills add danielgwilson/image-skill-cli --skill image-skill -g -a codex -y
54
+ ```
55
+
56
+ ## Shared Contract
57
+
58
+ All intent skills in this repo point to the same hosted contract:
59
+
60
+ - Skill: https://image-skill.com/skill.md
61
+ - LLM contract: https://image-skill.com/llms.txt
62
+ - CLI contract: https://image-skill.com/cli.md
63
+ - Hosted API: https://api.image-skill.com
64
+
65
+ If Image Skill lacks the model, capability, latency, policy affordance, or buyer rail needed for this task, use the fallback only for that gap and run `image-skill feedback create --json` with the attempted command, expected behavior, actual behavior, and missing capability.
@@ -0,0 +1,65 @@
1
+ ---
2
+ name: image-edit
3
+ description: >-
4
+ Image editing for agents: image-to-image edits, variations, and image-conditioned transforms through Image Skill's zero-setup hosted runtime. Use when an agent needs to edit an existing image without provider credentials, OAuth, local runtime, or per-provider billing. Inspect the edit model, upload or reuse an input image, then return durable hosted assets, jobs, cost receipts, stable JSON, and feedback.
5
+ homepage: https://image-skill.com
6
+ docs: https://image-skill.com/llms.txt
7
+ metadata:
8
+ status: preview-contract
9
+ cli: image-skill
10
+ canonical_skill_url: https://image-skill.com/skill.md
11
+ canonical_api_url: https://api.image-skill.com
12
+ openclaw:
13
+ requires:
14
+ env: []
15
+ bins: []
16
+ envVars:
17
+ - name: IMAGE_SKILL_TOKEN
18
+ required: false
19
+ description: Optional hosted restricted token minted by image-skill signup and saved by default; not a user-supplied provider credential.
20
+ ---
21
+
22
+ # Image Edit
23
+
24
+ This is an intent-named Image Skill entry for agents searching for image editing. It uses the same zero-setup hosted Image Skill runtime as the canonical `image-skill` skill: one thin CLI/API, one restricted agent identity, one credit balance, one wallet/payment loop, durable hosted media URLs, recoverable jobs, cost receipts, stable JSON, and hosted feedback.
25
+
26
+ Use this skill when the task asks to edit, vary, restyle, transform, or repair an existing image, including image-to-image work and model-specific edit parameters.
27
+
28
+ Do not bring provider API keys, create provider accounts, run a local model server, or wire a separate billing account for this task. Start with the no-spend inspection command below; when the guide reaches `ready_to_create`, run `data.next_command` only if media spend is allowed, otherwise run `data.no_spend_next_command` to verify safely. Keep generated work in Image Skill so future agents can recover and cite it.
29
+
30
+ ## First Command
31
+
32
+ ```bash
33
+ npx -y image-skill@latest models show openai.gpt-image-2-edit --json
34
+ ```
35
+
36
+ ## Main Runtime Command
37
+
38
+ ```bash
39
+ npx -y image-skill@latest edit --input image_... --model openai.gpt-image-2-edit --prompt "EDIT_PROMPT" --max-estimated-usd-per-image 0.07
40
+ ```
41
+
42
+ ## Install This Intent Skill
43
+
44
+ Prefer the GitHub slug so skills.sh can track the marketplace install:
45
+
46
+ ```bash
47
+ npx skills add danielgwilson/image-skill-cli --skill image-edit -g -a codex -y
48
+ ```
49
+
50
+ The canonical Image Skill entry remains available as:
51
+
52
+ ```bash
53
+ npx skills add danielgwilson/image-skill-cli --skill image-skill -g -a codex -y
54
+ ```
55
+
56
+ ## Shared Contract
57
+
58
+ All intent skills in this repo point to the same hosted contract:
59
+
60
+ - Skill: https://image-skill.com/skill.md
61
+ - LLM contract: https://image-skill.com/llms.txt
62
+ - CLI contract: https://image-skill.com/cli.md
63
+ - Hosted API: https://api.image-skill.com
64
+
65
+ If Image Skill lacks the model, capability, latency, policy affordance, or buyer rail needed for this task, use the fallback only for that gap and run `image-skill feedback create --json` with the attempted command, expected behavior, actual behavior, and missing capability.
@@ -128,27 +128,31 @@ compatibility, but fresh agents do not need to add it to every command.
128
128
 
129
129
  Start with the no-spend guide. It checks hosted reachability, executable model
130
130
  availability, auth/quota state when credentials already exist, payment rail
131
- availability, and returns exactly one next command. Guide mode does not create
132
- a signup, provider job, dry-run job, payment object, credit debit, or asset.
131
+ availability, and returns one primary next command plus
132
+ `data.next_command_effect`. Guide mode does not create a signup, provider job,
133
+ dry-run job, payment object, credit debit, or asset.
133
134
 
134
135
  ```bash
135
136
  npx -y image-skill@latest create --guide --prompt "a compact field camera on a stainless workbench"
136
137
  ```
137
138
 
138
- Read `data.stage`, `data.next_command`, `data.auth_handoff`, and
139
- `data.mutation`. If the guide returns `auth_required`, run the signup command
140
- it gives you; hosted signup saves the restricted token to the public CLI config
141
- by default, so rerun the same guide normally. If the runtime intentionally uses
139
+ Read `data.stage`, `data.next_command`, `data.next_command_effect`,
140
+ `data.no_spend_next_command`, `data.auth_handoff`, and `data.mutation`. If the
141
+ guide returns `auth_required`, run the signup command it gives you; hosted
142
+ signup saves the restricted token to the public CLI config by default, so rerun
143
+ the same guide normally. If the runtime intentionally uses
142
144
  `--no-save --show-token`, store the returned token immediately and use
143
145
  `data.auth_handoff.rerun_guide.with_env` or
144
146
  `data.auth_handoff.rerun_guide.with_stdin`. If it returns `quota_required`,
145
147
  inspect the payment commands it gives you. Prefer a returned browserless
146
148
  `stripe_x402.exact.usdc` path when it is available and within the delegated
147
149
  cap; otherwise hand the Stripe Checkout link to a human sponsor. If it returns
148
- `ready_to_create`, run `data.next_command` for the bounded create; when the
149
- guide authenticated from env or stdin, prefer
150
- `data.auth_handoff.next_command.with_env` or
151
- `data.auth_handoff.next_command.with_stdin`.
150
+ `ready_to_create`, `data.next_command` is the bounded live create and
151
+ `data.next_command_effect.label` is `live_media_create_credit_debit`; run it
152
+ when media spend is allowed. In no-spend evaluation runs, use
153
+ `data.no_spend_next_command` instead. When the guide authenticated from env or
154
+ stdin, prefer `data.auth_handoff.next_command.with_env` or
155
+ `data.auth_handoff.next_command.with_stdin` so auth follows the live create.
152
156
 
153
157
  Use the lower-level inspection commands when the guide asks for them or when
154
158
  you need capability details before spending:
@@ -91,6 +91,9 @@ Hosted signup saves the restricted `isk_r_` token to the public CLI config by
91
91
  default with `0600` permissions, so later hosted commands can authenticate from
92
92
  config without repeating signup or carrying a raw token through prompts. Set
93
93
  `IMAGE_SKILL_CONFIG_PATH` first when the default config home may be read-only.
94
+ Successful default signup reports `data.auth_handoff.status` as
95
+ `saved_config_ready`, keeps `data.token` null, and should not require any
96
+ token-copy step.
94
97
  The raw token is returned only when `--show-token` is set, and only once. Use
95
98
  `--show-token --no-save` when the agent runtime has a separate secret store and
96
99
  does not want local config. Do not paste tokens into prompts, logs, issue text,
@@ -125,9 +128,9 @@ should omit it.
125
128
 
126
129
  Use the no-spend guide first. It is the only required first command for a fresh
127
130
  agent. It checks health, executable model availability, auth/quota when a token
128
- already exists, and payment rails, then returns one `data.next_command`. Guide
129
- mode does not create a signup, provider job, dry-run job, payment object,
130
- credit debit, or asset.
131
+ already exists, and payment rails, then returns one primary `data.next_command` plus
132
+ machine-readable `data.next_command_effect`. Guide mode does not create a
133
+ signup, provider job, dry-run job, payment object, credit debit, or asset.
131
134
 
132
135
  ```bash
133
136
  image-skill create --guide --prompt "a compact field camera on a stainless workbench"
@@ -146,8 +149,14 @@ checklist before the guide asks for them.
146
149
  `data.auth_handoff.rerun_guide.with_stdin`.
147
150
  - `quota_required`: follow the payment commands in
148
151
  `data.checks.payments.suggested_commands`, then rerun guide once.
149
- - `ready_to_create`: run `data.next_command` for the first bounded create. If
150
- the guide authenticated from env or stdin, prefer
152
+ - `ready_to_create`: `data.next_command` is a live media create. Its
153
+ `data.next_command_effect.label` is `live_media_create_credit_debit`, with
154
+ `provider_call`, `hosted_create`, `credit_debit`, and `media_write` all true.
155
+ Run it for the first bounded create when media spend is allowed. If you are
156
+ in a no-spend evaluation or only need proof that the path is ready, run
157
+ `data.no_spend_next_command` instead; it is the dry-run plan command with no
158
+ provider call, credit debit, or media write. If the guide authenticated from
159
+ env or stdin, prefer
151
160
  `data.auth_handoff.next_command.with_env` or
152
161
  `data.auth_handoff.next_command.with_stdin` so auth follows the create.
153
162
 
@@ -57,12 +57,12 @@ Claim states:
57
57
  - revoked: token or agent disabled
58
58
 
59
59
  First-run guide loop:
60
- 1. Run image-skill create --guide --prompt PROMPT. This is the canonical fresh-agent entrypoint and the only required first command. It performs read-only hosted reachability, executable model availability, auth/quota, and payment rail checks and returns data.stage, data.next_command, data.auth_handoff, data.escape_hatches, and data.mutation. Guide mode must report provider_call: false, hosted_create: false, hosted_signup: false, payment_object: false, credit_debit: false, and media_write: false.
60
+ 1. Run image-skill create --guide --prompt PROMPT. This is the canonical fresh-agent entrypoint and the only required first command. It performs read-only hosted reachability, executable model availability, auth/quota, and payment rail checks and returns data.stage, data.next_command, data.next_command_effect, data.no_spend_next_command, data.auth_handoff, data.escape_hatches, and data.mutation. Guide mode must report provider_call: false, hosted_create: false, hosted_signup: false, payment_object: false, credit_debit: false, and media_write: false.
61
61
  2. Follow data.next_command. Do not run doctor, models list, signup, whoami, quota, dry-run, or payment commands as a setup checklist before the guide asks for them.
62
62
  3. If data.stage is prompt_required, rerun data.next_command with the real prompt.
63
63
  4. If data.stage is auth_required, run data.next_command, then rerun the guide once. Hosted signup saves the restricted token to the public CLI config by default with 0600 permissions. If the runtime intentionally uses --no-save --show-token, store the returned token in the agent runtime secret store, then rerun with IMAGE_SKILL_TOKEN or --token-stdin; data.auth_handoff.rerun_guide.with_env and data.auth_handoff.rerun_guide.with_stdin are copy-safe templates for that mode. The signup command uses --agent-contact as an email-shaped durable contact inbox for the restricted agent identity, not as a requirement to find an individual human. Hosted signup returns the raw restricted token only when --show-token is set, and only once. Use an agent-owned inbox when available; otherwise use an operator, team, or sponsor inbox that can receive future claim, billing, or abuse notices. Do not block waiting for a person, invent a person, or use a throwaway inbox. example.invalid addresses are only appropriate inside documented harness or proof runs. --human-email remains accepted as a compatibility alias, but the guide must not teach it. --save is accepted as a compatibility no-op for the default save behavior; use --no-save only when the runtime has a separate secret store and does not want local config.
64
64
  5. If data.stage is quota_required, follow the payment commands in data.checks.payments.suggested_commands, then rerun the guide once. One Image Skill credit is $0.01. Credit quotes grant prepaid value units; create/edit operations debit model-priced credits reported as cost.credit_pricing. Starter preview currently gives bounded free-preview credits plus a four-job daily cap.
65
- 6. If data.stage is ready_to_create, run data.next_command for the first bounded create. If the guide authenticated from env or stdin, prefer data.auth_handoff.next_command.with_env or data.auth_handoff.next_command.with_stdin so auth follows the create. In guide cost output, cost.estimated_usd_per_image and cost.estimated_debit_usd_per_image are the Image Skill debit dollars for one output; cost.estimated_provider_usd_per_image is only the upstream provider estimate. Use the guide's returned max_estimated_usd_per_image because it is sized to the credit debit the agent funds. Add --output-count N only after models show confirms the selected create model supports more than one output; credit_pricing.credits_required is the total debit across outputs, while max_estimated_usd_per_image remains a per-image Image Skill debit guard.
65
+ 6. If data.stage is ready_to_create, data.next_command is the first bounded live create. data.next_command_effect.label must be live_media_create_credit_debit and its provider_call, hosted_create, credit_debit, and media_write flags are true. Run data.next_command when media spend is allowed. In no-spend evaluations, or when you only need to prove readiness without media/provider work, run data.no_spend_next_command instead; it is the dry-run plan command with no provider call, credit debit, or media write. If the guide authenticated from env or stdin, prefer data.auth_handoff.next_command.with_env or data.auth_handoff.next_command.with_stdin so auth follows the live create. In guide cost output, cost.estimated_usd_per_image and cost.estimated_debit_usd_per_image are the Image Skill debit dollars for one output; cost.estimated_provider_usd_per_image is only the upstream provider estimate. Use the guide's returned max_estimated_usd_per_image because it is sized to the credit debit the agent funds. Add --output-count N only after models show confirms the selected create model supports more than one output; credit_pricing.credits_required is the total debit across outputs, while max_estimated_usd_per_image remains a per-image Image Skill debit guard.
66
66
  7. After create, use image-skill jobs show JOB_ID to recover status, cost, safety, timestamps, and final assets; image-skill assets get ASSET_URL_OR_ID --output ./result.png to fetch the generated asset without repeating provider work; and image-skill activity list --subject JOB_ID to find ledger events, trace, usage, and asset links to cite.
67
67
  8. Leave image-skill feedback create if the first-run flow is confusing, blocked, missing an affordance, or easier through a direct provider than through Image Skill. Use image-skill activity show FEEDBACK_ID only when you need to confirm the feedback entered the hosted ledger.
68
68
 
@@ -0,0 +1,65 @@
1
+ ---
2
+ name: image-to-3d
3
+ description: >-
4
+ Image-to-3D asset creation for agents through Image Skill's zero-setup hosted runtime. Use when an input image should become a durable hosted 3D mesh asset, such as a glb, without provider credentials, OAuth, local runtime, or per-provider billing. Inspect the 3D model, pass one owned input image to edit, then keep jobs, asset URLs, receipts, JSON recovery, payments, and feedback in one loop.
5
+ homepage: https://image-skill.com
6
+ docs: https://image-skill.com/llms.txt
7
+ metadata:
8
+ status: preview-contract
9
+ cli: image-skill
10
+ canonical_skill_url: https://image-skill.com/skill.md
11
+ canonical_api_url: https://api.image-skill.com
12
+ openclaw:
13
+ requires:
14
+ env: []
15
+ bins: []
16
+ envVars:
17
+ - name: IMAGE_SKILL_TOKEN
18
+ required: false
19
+ description: Optional hosted restricted token minted by image-skill signup and saved by default; not a user-supplied provider credential.
20
+ ---
21
+
22
+ # Image To 3D
23
+
24
+ This is an intent-named Image Skill entry for agents searching for image-to-3D asset creation. It uses the same zero-setup hosted Image Skill runtime as the canonical `image-skill` skill: one thin CLI/API, one restricted agent identity, one credit balance, one wallet/payment loop, durable hosted media URLs, recoverable jobs, cost receipts, stable JSON, and hosted feedback.
25
+
26
+ Use this skill when the task asks for image-to-3D, 3D asset generation from an image, glb mesh output, or a durable model asset derived from existing visual input.
27
+
28
+ Do not bring provider API keys, create provider accounts, run a local model server, or wire a separate billing account for this task. Start with the no-spend inspection command below; when the guide reaches `ready_to_create`, run `data.next_command` only if media spend is allowed, otherwise run `data.no_spend_next_command` to verify safely. Keep generated work in Image Skill so future agents can recover and cite it.
29
+
30
+ ## First Command
31
+
32
+ ```bash
33
+ npx -y image-skill@latest models show fal.trellis-image-to-3d --json
34
+ ```
35
+
36
+ ## Main Runtime Command
37
+
38
+ ```bash
39
+ npx -y image-skill@latest edit --input image_... --model fal.trellis-image-to-3d --max-estimated-usd-per-image 0.25 --json
40
+ ```
41
+
42
+ ## Install This Intent Skill
43
+
44
+ Prefer the GitHub slug so skills.sh can track the marketplace install:
45
+
46
+ ```bash
47
+ npx skills add danielgwilson/image-skill-cli --skill image-to-3d -g -a codex -y
48
+ ```
49
+
50
+ The canonical Image Skill entry remains available as:
51
+
52
+ ```bash
53
+ npx skills add danielgwilson/image-skill-cli --skill image-skill -g -a codex -y
54
+ ```
55
+
56
+ ## Shared Contract
57
+
58
+ All intent skills in this repo point to the same hosted contract:
59
+
60
+ - Skill: https://image-skill.com/skill.md
61
+ - LLM contract: https://image-skill.com/llms.txt
62
+ - CLI contract: https://image-skill.com/cli.md
63
+ - Hosted API: https://api.image-skill.com
64
+
65
+ If Image Skill lacks the model, capability, latency, policy affordance, or buyer rail needed for this task, use the fallback only for that gap and run `image-skill feedback create --json` with the attempted command, expected behavior, actual behavior, and missing capability.