@link.me/cli-darwin-x64 0.3.0 → 0.4.1

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.
Files changed (31) hide show
  1. package/linkme +0 -0
  2. package/package.json +1 -1
  3. package/skills/{agents/cli → linkme-cli}/SKILL.md +65 -10
  4. package/skills/linkme-cli/agents/openai.yaml +4 -0
  5. package/skills/{agents/claude-code → linkme-cli-claude-code}/SKILL.md +4 -4
  6. package/skills/linkme-cli-codex/SKILL.md +14 -0
  7. package/skills/linkme-cli-codex/agents/openai.yaml +4 -0
  8. package/skills/{agents/cowork → linkme-cli-cowork}/SKILL.md +4 -4
  9. package/skills/{agents/openclaw → linkme-cli-openclaw}/SKILL.md +3 -3
  10. package/skills/{email/lists → linkme-email-campaigns}/SKILL.md +4 -2
  11. package/skills/linkme-email-campaigns/agents/openai.yaml +4 -0
  12. package/skills/{automations/instagram → linkme-instagram-automations}/SKILL.md +4 -2
  13. package/skills/linkme-instagram-automations/agents/openai.yaml +4 -0
  14. package/skills/linkme-manage-commerce/SKILL.md +106 -0
  15. package/skills/linkme-manage-commerce/agents/openai.yaml +4 -0
  16. package/skills/linkme-manage-media/SKILL.md +65 -0
  17. package/skills/linkme-manage-media/agents/openai.yaml +4 -0
  18. package/skills/linkme-manage-merch/SKILL.md +118 -0
  19. package/skills/linkme-manage-merch/agents/openai.yaml +4 -0
  20. package/skills/linkme-polish-profile/SKILL.md +95 -0
  21. package/skills/linkme-polish-profile/agents/openai.yaml +4 -0
  22. package/skills/linkme-publish-content/SKILL.md +82 -0
  23. package/skills/linkme-publish-content/agents/openai.yaml +4 -0
  24. package/skills/linkme-recover-auth/SKILL.md +78 -0
  25. package/skills/linkme-recover-auth/agents/openai.yaml +4 -0
  26. package/skills/linkme-review-analytics/SKILL.md +77 -0
  27. package/skills/linkme-review-analytics/agents/openai.yaml +4 -0
  28. package/skills/agents/codex/SKILL.md +0 -14
  29. package/skills/ap/create-post/SKILL.md +0 -134
  30. package/skills/commerce/merch/SKILL.md +0 -34
  31. package/skills/profile/make-it-look-good/SKILL.md +0 -311
package/linkme CHANGED
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@link.me/cli-darwin-x64",
3
- "version": "0.3.0",
3
+ "version": "0.4.1",
4
4
  "description": "Platform binary for @link.me/cli (darwin-x64)",
5
5
  "license": "UNLICENSED",
6
6
  "os": [
@@ -1,11 +1,20 @@
1
1
  ---
2
- name: linkme_cli
3
- description: Canonical reference for using the Linkme CLI (`linkme`) to manage Linkme profile editing, AP (Post on All Platforms) publishing, analytics, links, forms, gallery, automations, email, and commerce workflows. Other agent-specific skills point back to this file.
2
+ name: linkme-cli
3
+ description: Set up and operate the local `linkme` CLI. Use when MCP tools are unavailable, the binary must be installed, local authentication is needed, a command shape must be discovered, or structured shell output is required.
4
4
  ---
5
5
 
6
6
  # Linkme CLI
7
7
 
8
- This is the canonical skill for operating the Linkme platform through the `linkme` CLI. The per-agent skills under `agents/` (`claude-code`, `codex`, `cowork`, `openclaw`) are thin pointers to this file — read this one for install, auth, output contracts, and the full area reference, then check the per-agent file only for sandbox-specific notes.
8
+ Use this skill for local installation, authentication, output contracts, and command discovery. The client-specific `linkme-cli-*` skills add only sandbox-specific notes.
9
+
10
+ Route domain work to the focused skill when available:
11
+
12
+ - profile presentation: `$linkme-polish-profile`
13
+ - social publishing: `$linkme-publish-content`
14
+ - media and attachments: `$linkme-manage-media`
15
+ - traffic reporting: `$linkme-review-analytics`
16
+ - products and orders: `$linkme-manage-commerce`
17
+ - login or connector recovery: `$linkme-recover-auth`
9
18
 
10
19
  ## Install
11
20
 
@@ -65,7 +74,37 @@ Rules of thumb:
65
74
  - Use `--json` whenever the output will be parsed, filtered, or fed into another step (`| jq ...`).
66
75
  - Use `--quiet` when you only need one id, count, or status value.
67
76
  - Use human output for the final summary shown to the user.
68
- - Discover flags and subcommands with `--help` before acting on anything unfamiliar — do not guess a command shape.
77
+ - Start discovery with `linkme agent schema --areas --json`, then narrow with
78
+ `linkme agent schema "<area or command>" --json`; do not guess a command
79
+ shape or scrape formatted help.
80
+
81
+ ## Structured Agent API
82
+
83
+ Prefer a direct typed command with `--json` for a simple call. When an agent
84
+ control loop wants a single request/response boundary, send a strict request to
85
+ stdin:
86
+
87
+ ```bash
88
+ linkme agent schema --areas --json
89
+ linkme agent schema "analytics overview" --json
90
+
91
+ printf '%s' \
92
+ '{"id":"step-1","command":"analytics overview","inputs":{"from":"2026-07-01","to":"2026-07-31"}}' \
93
+ | linkme agent exec --json
94
+ ```
95
+
96
+ The response always includes `contractVersion`, `ok`, `command`, and
97
+ `exitCode`, then either `data` or `error`. `agent exec` validates unknown
98
+ fields, never evaluates a shell command, never prompts, and preserves the
99
+ underlying CLI exit code. A command whose schema reports
100
+ `safety.approvalRequired: true` is rejected before execution unless the request
101
+ includes `"approval":{"destructive":true}`. Add that approval only after the
102
+ user approves the exact destructive call; also include the command's `force`
103
+ input when its command schema requires one.
104
+
105
+ Default schema discovery omits internal commands, the advanced raw API escape
106
+ hatch, and product areas outside the current agent scope. Use `--all` only when
107
+ the user explicitly needs one of those existing surfaces.
69
108
 
70
109
  ## Areas
71
110
 
@@ -73,25 +112,27 @@ The authoritative command surface is always `linkme --help`. The table below is
73
112
 
74
113
  | Area | Covers |
75
114
  |------|--------|
115
+ | `agent` | Versioned command schemas and strict JSON execution |
76
116
  | `auth` | Login (browser or manual), resume, logout, sessions, profile switching |
77
117
  | `ap` | Post on All Platforms: `accounts`, `connect`/`disconnect`, `upload`, `limits`, `analytics` |
78
118
  | `ap post` | `create`, `list`, `calendar`, `status`, `watch`, `insights`, `comments`, `publish`, `cancel`, `retry`, `reschedule` |
79
- | `profile` | View/edit profile, `theme`, `sections`, `contact`, `forms`, `events`, `bands-in-town`, `video`, `pixels`, `linkme-icon`, `deeplink`, `add-to-contacts` |
119
+ | `profile` | View/edit profile, `theme`, `sections`, `contact`, `forms`, `events`, `bands-in-town`, `video`, `pixels`, `linkme-icon`, `link-style`, `deeplink`, `add-to-contacts`, `age-gate`, `vcard` |
80
120
  | `links` | Custom + platform links: `list`, `add`, `edit`, `delete`, `reorder`, `set <platform> <url>` / `unset <platform>`, `schedule` |
81
121
  | `featured` | Featured links, `headers`, `multilinks` |
82
122
  | `gallery` | Upload, list, delete, reorder gallery media |
83
123
  | `automations` | Instagram automations: connection, authorize, config, posts, create/update/publish, metrics/analytics/monitor |
84
- | `courses` | Author courses and lesson video uploads |
124
+ | `courses` | Browse `catalog`, use enrolled `learning`, author courses, and upload local `assets` or lesson `videos` |
85
125
  | `contacts` | Collected contacts and stats |
86
126
  | `search` | Search Linkme users by username or name |
87
127
  | `username` | Check username validity/availability |
88
128
  | `waitlist` | Check/join gated feature waitlists |
89
129
  | `email` | Templates, sending domains, send/test, history, detail, cancel, upload-image |
90
- | `analytics` | Overview, visits, links, geo, realtime |
91
- | `commerce` | Digital products/orders (`products`), print-on-demand merch (`merch`) |
130
+ | `analytics` | Overview, visits, links, geo, realtime, audience demographics, and local-only JSON export |
131
+ | `commerce` | Seller digital products/orders, buyer `purchases`, and print-on-demand `merch` catalog, authoring, AI, mockups, and orders |
132
+ | `creator-finance` | Tips, wallet, payouts, referrals, ambassador status, and billing |
133
+ | `ads` | Permission-scoped campaign/creative reads plus approval-gated ads-admin mutations |
92
134
  | `shop` | Physical/storefront products and categories |
93
- | `agency` | Create agencies, invite/manage members, switch managed-user context |
94
- | `feeds` | Subscribe to and poll provider feeds |
135
+ | `feeds` | Subscribe to connected provider feeds or a public YouTube channel, then list, poll, or unsubscribe |
95
136
  | `reviews` | Subscribe to and inspect review sources |
96
137
  | `upgrade` | Generate Linkme Pro upgrade links |
97
138
  | `config` | Show/set/reset CLI configuration and profiles |
@@ -100,6 +141,19 @@ The authoritative command surface is always `linkme --help`. The table below is
100
141
 
101
142
  Note: there is no top-level `social` area. Social network links live under `links` (`links set <platform> <url>`, `links unset <platform>`, and `links list` shows both custom and platform links).
102
143
 
144
+ Chat, shouts, notifications, and agency management are outside the current
145
+ agent product scope. Do not infer a content API from a generic profile section
146
+ key. Existing agency CLI commands are compatibility-only and appear in
147
+ `agent schema --all`, not default discovery.
148
+
149
+ Local-only boundaries:
150
+
151
+ - Use the local CLI or local stdio MCP for `analytics export`,
152
+ `courses assets upload`, `courses videos upload`, and file-backed
153
+ `commerce products create`.
154
+ - On hosted MCP, call `linkme_capabilities` and use only file sources declared
155
+ by the selected tool. Do not pass a local or sandbox path.
156
+
103
157
  ## Discovery Pattern
104
158
 
105
159
  ```bash
@@ -115,4 +169,5 @@ Start broad, then drill into the specific area for the task at hand rather than
115
169
  - **Read before you write.** For profile-improvement tasks, inspect current state first: `profile`, `links list`, `featured list`, `gallery list`, `profile sections`, `profile theme`, `profile forms`.
116
170
  - **Publishing flow.** Connect accounts (`ap connect <provider>`) → create the post (`ap post create`) → confirm with `ap post status <id>` or stream with `ap post watch <id>`.
117
171
  - **Reporting flow.** Request `--json`, extract fields with `jq`, and summarize the numbers for the user in human language.
172
+ - **Financial and ads flow.** Inspect state and units first. Require user approval before a billing, payout, credit-consuming, download-allowance, or ad mutation.
118
173
  - **Re-read after high-impact writes** (deletes, publishes, schedule changes) to confirm the change landed.
@@ -0,0 +1,4 @@
1
+ interface:
2
+ display_name: "Linkme CLI"
3
+ short_description: "Operate Linkme from an agent or script"
4
+ default_prompt: "Use $linkme-cli to inspect my Linkme account and choose the right command."
@@ -1,14 +1,14 @@
1
1
  ---
2
- name: linkme_cli_claude_code
3
- description: Use the Linkme CLI from Claude Code for Linkme profile editing, AP publishing, analytics, links, forms, gallery, automations, email, and merch workflows.
2
+ name: linkme-cli-claude-code
3
+ description: Configure Linkme access in Claude Code. Use when choosing the bundled MCP server versus local CLI, installing the Claude plugin, handling sandbox file limits, authenticating, or selecting structured output.
4
4
  ---
5
5
 
6
6
  # Linkme CLI for Claude Code
7
7
 
8
- See the canonical **`agents/cli`** skill (`linkme_cli`) for install, authentication, output contracts (`--json`/`--quiet`/human), and the full command-area reference. This file only covers what's specific to running the CLI from Claude Code.
8
+ See the canonical **`linkme-cli`** skill for install, authentication, output contracts (`--json`/`--quiet`/human), and command discovery. This file only covers what's specific to Claude Code.
9
9
 
10
10
  ## Claude Code Specifics
11
11
 
12
12
  - This repo ships a Claude Code plugin (`.claude-plugin/plugin.json` + `.claude-plugin/marketplace.json`) that bundles this whole `skills/` tree and an MCP server (`@link.me/mcp`, binary `linkme-mcp`). If the plugin/MCP server is already installed and enabled, prefer its MCP tools over shelling out to `linkme` — they cover the same commands with structured input/output and no subprocess overhead.
13
- - If the MCP server is not available, fall back to installing and shelling out to the CLI as described in `agents/cli`.
13
+ - If the MCP server is not available, fall back to installing and shelling out to the CLI as described in `linkme-cli`.
14
14
  - Use the `Bash` tool for CLI invocations and prefer `--json` output when you intend to parse the result programmatically in the same turn.
@@ -0,0 +1,14 @@
1
+ ---
2
+ name: linkme-cli-codex
3
+ description: Configure Linkme access in Codex. Use when choosing the bundled MCP server versus local CLI, handling local paths or unsupported remote tools, authenticating, or selecting structured output.
4
+ ---
5
+
6
+ # Linkme CLI for Codex
7
+
8
+ See the canonical **`linkme-cli`** skill for install, authentication, output contracts (`--json`/`--quiet`/human), and command discovery. This file only covers what's specific to Codex.
9
+
10
+ ## Codex Specifics
11
+
12
+ - Prefer the Linkme MCP tools when the plugin connection is available; they provide structured schemas without shell parsing.
13
+ - Fall back to the local CLI when the task needs a local path, a command is unavailable remotely, or the MCP capability tool says the upload is unsupported.
14
+ - Prefer non-interactive CLI flags: use `linkme auth login --manual` plus `linkme auth resume`, and request `--json` for programmatic reads.
@@ -0,0 +1,4 @@
1
+ interface:
2
+ display_name: "Linkme in Codex"
3
+ short_description: "Operate Linkme safely from Codex"
4
+ default_prompt: "Use $linkme-cli-codex to choose the right Linkme connection path for this Codex task."
@@ -1,14 +1,14 @@
1
1
  ---
2
- name: linkme_cli_cowork
3
- description: Use the Linkme CLI from Cowork to manage Linkme profiles, links, publishing, analytics, forms, gallery, email, automations, and shop workflows.
2
+ name: linkme-cli-cowork
3
+ description: Configure Linkme access in Cowork. Use when choosing the bundled MCP server versus local CLI, installing without root, handling ephemeral paths, authenticating, or verifying a remote mutation.
4
4
  ---
5
5
 
6
6
  # Linkme CLI for Cowork
7
7
 
8
- See the canonical **`agents/cli`** skill (`linkme_cli`) for install, authentication, output contracts (`--json`/`--quiet`/human), and the full command-area reference. This file only covers what's specific to running the CLI from Cowork.
8
+ See the canonical **`linkme-cli`** skill for install, authentication, output contracts (`--json`/`--quiet`/human), and command discovery. This file only covers what's specific to Cowork.
9
9
 
10
10
  ## Cowork Specifics
11
11
 
12
- - Cowork sandboxes usually do not have root, so always install to a local prefix (`npm config set prefix /tmp/npm-global`) as described in `agents/cli`. The executable is `linkme`, not `link.me`.
12
+ - Cowork sandboxes usually do not have root, so always install to a local prefix (`npm config set prefix /tmp/npm-global`) as described in `linkme-cli`. The executable is `linkme`, not `link.me`.
13
13
  - Cowork sessions may not persist `PATH` changes across separate task invocations — call `/tmp/npm-global/bin/linkme` directly if a fresh task can't find `linkme` on `PATH`.
14
14
  - For publishing workflows, always verify the final state with `linkme ap post status <id>` or `linkme ap post watch <id>` before reporting success to the user.
@@ -1,11 +1,11 @@
1
1
  ---
2
- name: linkme_cli_openclaw
3
- description: Use the Linkme CLI from OpenClaw to manage profiles, publishing, analytics, links, forms, gallery, automations, email, and commerce workflows.
2
+ name: linkme-cli-openclaw
3
+ description: Configure Linkme access in OpenClaw. Use when installing or locating the local CLI, completing manual browser authentication, selecting structured output, or verifying a state-changing Linkme command.
4
4
  ---
5
5
 
6
6
  # Linkme CLI for OpenClaw
7
7
 
8
- See the canonical **`agents/cli`** skill (`linkme_cli`) for install, authentication, output contracts (`--json`/`--quiet`/human), and the full command-area reference. This file only covers what's specific to running the CLI from OpenClaw.
8
+ See the canonical **`linkme-cli`** skill for install, authentication, output contracts (`--json`/`--quiet`/human), and command discovery. This file only covers what's specific to OpenClaw.
9
9
 
10
10
  ## OpenClaw Specifics
11
11
 
@@ -1,12 +1,14 @@
1
1
  ---
2
- name: linkme_email_lists
3
- description: Use when you need to manage contact-backed email lists, templates, assets, test sends, and campaigns from the Linkme CLI.
2
+ name: linkme-email-campaigns
3
+ description: Create and send Linkme email campaigns backed by collected contacts. Use for audience inspection, templates, image assets, test sends, scheduling, delivery history, or campaign cancellation.
4
4
  ---
5
5
 
6
6
  # Email Lists And Campaigns
7
7
 
8
8
  Use `linkme email` for templates, assets, test sends, and campaign delivery. Use `linkme contacts` to inspect the audience behind campaigns.
9
9
 
10
+ Prefer connected Linkme MCP tools. Their names mirror CLI paths with underscores; use the shell commands below as fallback and discovery examples.
11
+
10
12
  ## Quick checks
11
13
 
12
14
  - `linkme whoami`
@@ -0,0 +1,4 @@
1
+ interface:
2
+ display_name: "Linkme Email Campaigns"
3
+ short_description: "Build and send Linkme email campaigns"
4
+ default_prompt: "Use $linkme-email-campaigns to prepare this campaign for my Linkme contacts."
@@ -1,12 +1,14 @@
1
1
  ---
2
- name: linkme_automations_instagram
3
- description: Use when you need to connect Instagram, inspect posts and automations, or create, update, publish, and monitor Linkme Instagram automations from the CLI.
2
+ name: linkme-instagram-automations
3
+ description: Create, inspect, publish, and monitor Linkme Instagram comment and DM automations. Use for Instagram connection, keyword triggers, replies, DMs, activation, metrics, or automation troubleshooting.
4
4
  ---
5
5
 
6
6
  # Instagram Automations
7
7
 
8
8
  Use `linkme automations` for Instagram comment and DM automations.
9
9
 
10
+ Prefer connected Linkme MCP tools. Their names mirror CLI paths with underscores; use the shell commands below as fallback and discovery examples.
11
+
10
12
  ## Quick checks
11
13
 
12
14
  - `linkme whoami`
@@ -0,0 +1,4 @@
1
+ interface:
2
+ display_name: "Instagram Automations"
3
+ short_description: "Build Instagram DM automations"
4
+ default_prompt: "Use $linkme-instagram-automations to build an Instagram reply and DM workflow."
@@ -0,0 +1,106 @@
1
+ ---
2
+ name: linkme-manage-commerce
3
+ description: Manage Linkme digital products, storefront products, buyer purchases, and seller orders. Use when creating, editing, pricing, publishing, organizing, inspecting, downloading, or deleting something sold from Linkme outside the print-on-demand merch workflow.
4
+ ---
5
+
6
+ # Manage Commerce
7
+
8
+ Route the request to the correct catalog before changing anything.
9
+
10
+ Prefer connected Linkme MCP tools. Their names mirror CLI paths with underscores; use the shell commands below as fallback and discovery examples.
11
+
12
+ ## Choose the catalog
13
+
14
+ - Digital download or pay-to-unlock content: `linkme commerce products`
15
+ - Seller-side digital sales orders: `linkme commerce products orders`
16
+ - PII-safe seller revenue across digital and physical products:
17
+ `linkme commerce sales summary`
18
+ - Buyer-side purchases, downloads, or unlocks: `linkme commerce purchases`
19
+ - Physical or print-on-demand storefront item: `linkme shop products`
20
+ - Storefront organization: `linkme shop categories`
21
+ - Print-on-demand catalog, templates, AI designs, or mockups:
22
+ `$linkme-manage-merch`
23
+
24
+ Do not represent a merch template as a live storefront product. Do not use `shop` for digital delivery.
25
+
26
+ ## Inspect first
27
+
28
+ ```bash
29
+ linkme commerce products list --json
30
+ linkme commerce products orders --json
31
+ linkme commerce sales summary --json
32
+ linkme commerce purchases list --json
33
+ linkme shop products list --json
34
+ linkme shop categories list --json
35
+ ```
36
+
37
+ Run only the reads relevant to the request. Preserve ids from structured output.
38
+
39
+ ## Create and edit
40
+
41
+ Create a digital product as a draft:
42
+
43
+ ```bash
44
+ linkme commerce products create \
45
+ --name "Creator eBook" \
46
+ --description "A practical launch guide" \
47
+ --price 19.99 \
48
+ --file ./ebook.pdf
49
+ ```
50
+
51
+ Publish only after the user has approved the title, description, price, file, and thumbnail:
52
+
53
+ ```bash
54
+ linkme commerce products edit <product-id> --publish
55
+ ```
56
+
57
+ Create a storefront product:
58
+
59
+ ```bash
60
+ linkme shop products add \
61
+ --name "Tour Poster" \
62
+ --price 25 \
63
+ --category "Prints" \
64
+ --link https://example.com/poster \
65
+ --image ./poster.jpg
66
+ ```
67
+
68
+ Use `$linkme-manage-media` whenever a product needs a file, thumbnail, or image. Hosted MCP may omit file-backed product creation; check `linkme_capabilities` and use the local CLI when required.
69
+
70
+ `commerce products create` is available only through the local CLI or local
71
+ stdio MCP because it reads a local product file. Hosted MCP can use only file
72
+ objects explicitly declared by an available tool; never pass it a local or
73
+ sandbox path.
74
+
75
+ ## Purchased content
76
+
77
+ Inspect an order before requesting access:
78
+
79
+ ```bash
80
+ linkme commerce purchases show <order-id> --json
81
+ ```
82
+
83
+ Create a download or unlock URL only when the user asks to access that
84
+ purchase:
85
+
86
+ ```bash
87
+ linkme commerce purchases download <product-id> <order-id> --json
88
+ linkme commerce purchases unlock <product-id> <order-id> --json
89
+ ```
90
+
91
+ These calls record access, downloads may consume an allowance, and their URLs
92
+ are short-lived and private. Do not fetch, print, or share the URL beyond the
93
+ requested handoff.
94
+
95
+ ## Verify and protect
96
+
97
+ - Re-read the product or catalog after create, edit, reorder, publish, draft, or delete.
98
+ - Confirm currency and price rather than inferring them from prose.
99
+ - Treat publish and delete as high-impact changes.
100
+ - Treat purchase download and unlock calls as side effects, not harmless reads.
101
+ - Never invent fulfillment URLs, inventory details, customer information, or product files.
102
+ - Summarize orders without exposing unnecessary buyer personal data.
103
+ - Prefer `commerce sales summary` for revenue questions because its DTO omits
104
+ buyer details and keeps currencies separate. It aggregates unpaginated order
105
+ feeds locally; do not describe it as conversion attribution or a server-side
106
+ analytics export.
@@ -0,0 +1,4 @@
1
+ interface:
2
+ display_name: "Manage Linkme Commerce"
3
+ short_description: "Manage Linkme products and purchases"
4
+ default_prompt: "Use $linkme-manage-commerce to manage this Linkme product or purchase safely."
@@ -0,0 +1,65 @@
1
+ ---
2
+ name: linkme-manage-media
3
+ description: Upload and reuse media safely across Linkme profiles, galleries, AP posts, email, courses, and products. Use when a task includes an image, video, document, local path, attachment, hosted file, or Linkme object reference.
4
+ ---
5
+
6
+ # Manage Media
7
+
8
+ Choose the transfer path before invoking a media command. Local CLI and hosted MCP have different access to files.
9
+
10
+ Prefer connected Linkme MCP tools when their schema supports the asset source. Use the local CLI for same-machine paths and capabilities that the hosted server intentionally omits.
11
+
12
+ ## Determine the runtime
13
+
14
+ For hosted MCP, call `linkme_capabilities` first and follow its declared file sources, size limit, and video-upload support. Never assume the server can read the agent's local or sandbox path.
15
+
16
+ For the local CLI, pass a readable local path to the relevant command. Discover accepted types and flags with the command's `--help`.
17
+
18
+ ## Route the asset
19
+
20
+ | Goal | Local CLI |
21
+ |---|---|
22
+ | Reusable AP video | `linkme ap upload <file>` |
23
+ | Create AP post | `linkme ap post create --video <file-or-ap-key> ...` |
24
+ | Gallery image | `linkme gallery upload <file>` |
25
+ | Profile image | `linkme profile edit --image <file>` |
26
+ | Profile video | `linkme profile video set --file <file>` |
27
+ | Email image | `linkme email upload-image <file>` |
28
+ | Digital product file | `linkme commerce products create --file <file> ...` |
29
+ | Product thumbnail | `linkme commerce products create --thumbnail <file> ...` |
30
+ | Shop product image | `linkme shop products add --image <file> ...` |
31
+ | Course cover | `linkme courses assets upload --kind cover --file <file> --json` |
32
+ | Course attachment | `linkme courses assets upload --kind attachment --file <file> --json` |
33
+ | Course lesson video | `linkme courses videos upload --file <mp4> --json` |
34
+ | AI merch model image | `linkme commerce merch mockups generate <template-id> --model-image <file>` |
35
+
36
+ Prefer a reusable Linkme or AP object reference when the same asset will be used more than once.
37
+
38
+ ## Hosted MCP rules
39
+
40
+ - Supply an attachment only through the strict file field exposed by the tool schema.
41
+ - Supply an HTTPS URL only when that tool exposes a URL companion field.
42
+ - Supply an existing Linkme object key only when that tool exposes a reference field.
43
+ - Provide exactly one source for a media input.
44
+ - Treat local paths, `file:` URLs, `data:` URLs, and arbitrary public URLs as unsupported unless capabilities and the tool schema explicitly allow them.
45
+ - For hosted video workflows with proxy uploads disabled, ask for an existing Linkme/AP reference or switch to the local CLI.
46
+ - Course cover, attachment, and lesson-video upload commands are local-only. Do not offer them through hosted MCP.
47
+ - File-backed digital-product creation is local-only. AI merch mockup generation is hosted-capable only through its declared JPEG, PNG, or WebP file field and 8 MiB limit.
48
+
49
+ ## Validate and verify
50
+
51
+ Before upload:
52
+
53
+ - confirm the asset belongs to the user and matches the requested destination
54
+ - keep the original filename and MIME type when the host provides them
55
+ - avoid unnecessary re-encoding or quality loss
56
+ - check command help rather than guessing format or size limits
57
+
58
+ After upload, retain the returned id, key, or URL and re-read the destination. Do not report success until the resulting gallery item, profile field, post, template, or product points to the expected asset.
59
+
60
+ ## Guardrails
61
+
62
+ - Never turn a sandbox path into a hosted-MCP argument.
63
+ - Never bypass an unsupported video upload by sending an arbitrary URL.
64
+ - Never log attachment download URLs, access tokens, or signed upload URLs.
65
+ - Do not delete or replace existing media without inspecting it and confirming the intended target.
@@ -0,0 +1,4 @@
1
+ interface:
2
+ display_name: "Manage Linkme Media"
3
+ short_description: "Route Linkme uploads safely"
4
+ default_prompt: "Use $linkme-manage-media to choose the safe upload path for this asset."
@@ -0,0 +1,118 @@
1
+ ---
2
+ name: linkme-manage-merch
3
+ description: Build and manage Linkme print-on-demand merch. Use when browsing the base catalog, opening Design Maker, saving or publishing templates, setting prices, organizing categories, inspecting orders, or generating credit-backed AI designs and mockups.
4
+ ---
5
+
6
+ # Manage Merch
7
+
8
+ Use `linkme commerce merch` for Printful-backed catalog discovery, creator
9
+ templates, categories, orders, AI designs, and mockups.
10
+
11
+ Prefer connected Linkme MCP tools. Their names mirror CLI paths with underscores; use the shell commands below as fallback and discovery examples.
12
+
13
+ Do not use this skill for digital downloads (`$linkme-manage-commerce`) or for
14
+ ordinary physical storefront links (`linkme shop`).
15
+
16
+ ## Browse before authoring
17
+
18
+ Inspect the base product, variants, stock, sizing, and current creator catalog
19
+ before creating or repricing anything:
20
+
21
+ ```bash
22
+ linkme commerce merch catalog categories --json
23
+ linkme commerce merch catalog products <category-id> --json
24
+ linkme commerce merch catalog show <product-id> --json
25
+ linkme commerce merch catalog sizes <product-id> --json
26
+ linkme commerce merch list --json
27
+ linkme commerce merch show <external-product-id> --json
28
+ linkme commerce merch pricing <external-product-id> --json
29
+ linkme commerce merch orders --json
30
+ ```
31
+
32
+ ## Design Maker and publication
33
+
34
+ For a new base product, create a short-lived Design Maker handoff:
35
+
36
+ ```bash
37
+ linkme commerce merch nonce <external-product-id> \
38
+ --product-id <catalog-product-id> \
39
+ --json
40
+ ```
41
+
42
+ For an existing creator template, use `nonce <external-product-id> --edit`.
43
+ The returned URL requires user interaction. After the user completes Design
44
+ Maker and supplies the resulting template id, save it:
45
+
46
+ ```bash
47
+ linkme commerce merch save <external-product-id> <template-id> \
48
+ --description "Soft heavyweight tee" \
49
+ --json
50
+ ```
51
+
52
+ Review the exact title, USD price, description, and draft/public state with the
53
+ user before publication:
54
+
55
+ ```bash
56
+ linkme commerce merch publish <external-product-id> \
57
+ --name "Creator Tee" \
58
+ --price 29.00 \
59
+ --description "Heavyweight cotton tee" \
60
+ --draft \
61
+ --json
62
+ ```
63
+
64
+ Omit `--draft` only after explicit approval to publish. Re-read `show` and
65
+ `pricing` afterward. Retiring a template is destructive; inspect it first and
66
+ use `retire <template-id> --force` only after explicit approval.
67
+
68
+ ## Categories and ordering
69
+
70
+ Use `categories`, `category-edit`, `category-reorder`, `assign`, and `reorder`
71
+ to organize existing templates. Read the current order first. Category deletion
72
+ prompts unless `--force` is provided; never bypass that prompt without the
73
+ user's approval.
74
+
75
+ ## AI designs
76
+
77
+ Check credits and existing designs before starting a job:
78
+
79
+ ```bash
80
+ linkme commerce merch ai credits --json
81
+ linkme commerce merch ai designs --json
82
+ ```
83
+
84
+ `ai generate`, `ai edit`, and `ai upscale` consume credits and run
85
+ asynchronously. Confirm the prompt/source, expected operation, and user
86
+ approval before starting one. Keep the returned job id, poll its matching
87
+ status command, and do not claim success until the job reports completion.
88
+ Treat source URLs and durable generated-image URLs as private user data.
89
+
90
+ ## Mockups and media boundaries
91
+
92
+ Inspect the current images before generating or selecting replacements:
93
+
94
+ ```bash
95
+ linkme commerce merch mockups list <template-id> --json
96
+ linkme commerce merch mockups ai-list <template-id> --json
97
+ ```
98
+
99
+ A local CLI or local stdio MCP can use a local image:
100
+
101
+ ```bash
102
+ linkme commerce merch mockups generate <template-id> \
103
+ --model-image ./model.webp \
104
+ --json
105
+ ```
106
+
107
+ Hosted MCP accepts a declared JPEG, PNG, or WebP attachment up to 8 MiB for
108
+ this tool. It cannot read a local or sandbox path. Call `linkme_capabilities`
109
+ before choosing the source. Generation consumes credits and is asynchronous;
110
+ require approval, preserve the job id, poll `mockups status <job-id>`, and
111
+ verify the selected mockups with `mockups list`.
112
+
113
+ ## Guardrails
114
+
115
+ - Confirm IDs, variant availability, USD pricing, and current publication state.
116
+ - Do not expose buyer details from merch orders beyond what the task requires.
117
+ - Treat handoff URLs and generated media URLs as short-lived or private.
118
+ - Re-read after save, publish, retire, category, ordering, or mockup mutations.
@@ -0,0 +1,4 @@
1
+ interface:
2
+ display_name: "Manage Linkme Merch"
3
+ short_description: "Build and manage Linkme merch safely"
4
+ default_prompt: "Use $linkme-manage-merch to build or update this merch item safely."