{"skill":{"slug":"artclaw-creative-suite","displayName":"Invoke ARTCLAW platform's AI content creation capabilities via REST API. Supports AI image generation, video generation, workflow execution,   multimodal analysis, and more.","summary":"ARTCLAW AI Creative Suite - invoke ARTCLAW platform's AI content creation capabilities via CLI. Supports AI image generation, video generation, workflow exec...","description":"---\nname: artclaw-creative-suite\ndescription: |\n  ARTCLAW AI Creative Suite - invoke ARTCLAW platform's AI content creation capabilities via CLI.\n  Supports AI image generation, video generation, workflow execution, multimodal analysis, and job management.\n  All generation commands must run asynchronously using the current platform adapter. Requires an API Key prefixed with vk_ for authenticated features.\n  Trigger keywords: generate image, generate video, AI painting, text-to-image, text-to-video, image-to-video, marketing image,\n  logo, cover, workflow, video analysis, image analysis, ARTCLAW, ArtClaw.\ncompatibility:\n  dependencies:\n    - ARTCLAW REST API (https://artclaw.com/api/v1)\n    - Python 3.8+ with requests package\nmetadata:\n  {\n    'openclaw':\n      {\n        'emoji': '🎨',\n        'requires': { 'env': ['ARTCLAW_API_KEY'] },\n        'primaryEnv': 'ARTCLAW_API_KEY',\n      },\n  }\n---\n\n# ARTCLAW AI Creative Suite\n\nARTCLAW is an all-in-one AI content creation platform. This skill uses `scripts/artclaw.py` as the single CLI entry point for authentication, submission, polling, retry, history, and JSON output.\n\n## Mandatory Startup Flow\n\n1. Detect the current agent platform.\n2. Read exactly one matching adapter document from `docs/adapters/` before running generation or workflow commands.\n3. Run the pre-flight API key check before authenticated operations.\n4. Never mix execution rules from multiple adapters.\n\nIf platform detection is ambiguous, ask the user which platform they are using. If the platform is unsupported, use `docs/adapters/others.md`.\n\n## Platform Adapter Map\n\n| Platform | Adapter document |\n| --- | --- |\n| OpenClaw | `docs/adapters/openclaw.md` |\n| Claude Code | `docs/adapters/claude-code.md` |\n| Hermes Agent | `docs/adapters/hermes.md` |\n| Unknown / unsupported platform | `docs/adapters/others.md` |\n\n## Universal Rules\n\n1. Use the CLI, not raw curl: `python3 scripts/artclaw.py ...`.\n2. Run `python3 scripts/artclaw.py verify-key` before authenticated operations.\n3. Generation and workflow commands are long-running and must not block the main agent silently.\n4. In Claude Code, prefer Bash `run_in_background: true` so `/tasks` can track the local background task. **DO NOT manually poll with `job-status` after the background task completes** — the background task already polls internally and returns the final result in its output.\n5. In non-spawn platforms, use `--no-wait` by default unless the selected adapter explicitly defines a different async strategy or the user explicitly asks the agent to wait.\n6. In OpenClaw-compatible spawn platforms, use `--spawn` instead of `--no-wait`.\n7. Immediately tell the user after a generation/workflow job is submitted or a background task is started.\n8. Analysis commands are synchronous and do not require spawn/background execution.\n9. Guide users to https://artclaw.com/settings for API key creation and credit top-up.\n10. Deliver generated media as native platform messages when the adapter supports it; otherwise return the result URL and job metadata.\n11. Platform-specific async behavior, delivery semantics, and anti-blocking rules must be defined only in the selected adapter document under `docs/adapters/` and followed strictly.\n\n---\n\n## API Key & Account\n\nRun this before authenticated operations:\n\n```bash\npython3 scripts/artclaw.py verify-key\n```\n\n- `{\"status\": \"valid\"}`: continue.\n- Missing, invalid, or revoked key: stop and guide the user to configure a key.\n\nSetup:\n\n1. Open https://artclaw.com/settings.\n2. Create an API key in the API Keys section.\n3. Copy the generated key. It is prefixed with `vk_` and is shown only once.\n4. Configure locally:\n\n```bash\npython3 scripts/artclaw.py config-init --api-key \"vk_xxx\"\n```\n\nUseful account commands:\n\n```bash\npython3 scripts/artclaw.py account-info\npython3 scripts/artclaw.py config\n```\n\nAll local ARTCLAW data is stored under `~/.artclaw/`, including `config.json`, `last_job.json`, and `history/`.\n\n---\n\n## Generation Commands\n\nGeneration and workflow commands are long-running. Always follow the current platform adapter before choosing `--spawn`, Claude Code `run_in_background`, `--no-wait`, or explicit waiting.\n\nSafe default:\n\n- OpenClaw-compatible adapters use `--spawn`.\n- Claude Code uses Bash `run_in_background: true` when available.\n- Other non-spawn adapters use `--no-wait` — unless the adapter defines its own background strategy (e.g. Hermes uses background terminal; see adapter doc).\n- Only omit both when the user explicitly asks the agent to wait for completion.\n\n### Generate Image\n\n```bash\npython3 scripts/artclaw.py generate-image \\\n  --prompt \"Cyberpunk cityscape at night, neon lights reflected in rainwater\" \\\n  --aspect-ratio 16:9 \\\n  --no-wait\n```\n\nWith references:\n\n```bash\npython3 scripts/artclaw.py generate-image \\\n  --prompt \"Landscape painting in the same style\" \\\n  --reference-urls https://example.com/style_ref.jpg \\\n  --no-wait\n```\n\n| Parameter | Description | Values |\n| --- | --- | --- |\n| `--prompt` | Image description, required | Text |\n| `--aspect-ratio` | Aspect ratio | `16:9`, `9:16`, `1:1`, `4:3`, `21:9` |\n| `--resolution` | Resolution | `1K`, `2K`, `4K` |\n| `--reference-urls` | Reference image URLs or base64 data URIs | One or more values |\n| `--reference-files` | Local reference files, auto-converted to base64 | One or more paths |\n| `--model` | Model override | Model ID |\n\n### Generate Video\n\n```bash\npython3 scripts/artclaw.py generate-video \\\n  --prompt \"Waves crashing on rocks, slow motion\" \\\n  --aspect-ratio 16:9 \\\n  --duration 5 \\\n  --resolution 720p \\\n  --no-wait\n```\n\nImage-to-video:\n\n```bash\npython3 scripts/artclaw.py generate-video \\\n  --prompt \"Make the person in the frame turn their head and smile\" \\\n  --reference-urls https://example.com/portrait.jpg \\\n  --no-wait\n```\n\n| Parameter | Description | Values |\n| --- | --- | --- |\n| `--prompt` | Video description, required | Text |\n| `--aspect-ratio` | Aspect ratio | `16:9`, `9:16`, `1:1`, `4:3`, `21:9` |\n| `--duration` | Duration in seconds | `2` - `12` |\n| `--resolution` | Resolution | `480p`, `720p`, `1080p` |\n| `--reference-urls` | Reference image URLs or base64 data URIs | One or more values |\n| `--reference-files` | Local reference image files, auto-converted | One or more paths |\n| `--model` | Model override | Model ID |\n\n### Generate Marketing Image\n\n```bash\npython3 scripts/artclaw.py generate-marketing-image \\\n  --prompt \"Summer cool drinks promotional poster\" \\\n  --size 1080x1920 \\\n  --no-wait\n```\n\n### Execute Workflow\n\n```bash\npython3 scripts/artclaw.py list-workflows\n```\n\n```bash\npython3 scripts/artclaw.py run-workflow \\\n  --workflow-id \"text-to-image-basic\" \\\n  --inputs '{\"prompt\": \"Anime-style forest\"}' \\\n  --no-wait\n```\n\nReplace `--no-wait` with `--spawn`, `--deliver-to`, and `--deliver-channel` only when the current platform adapter says to do so.\n\n---\n\n## Analysis Commands\n\nAnalysis commands are synchronous. They do not require `--spawn` or background execution.\n\n### Image Analysis\n\n```bash\npython3 scripts/artclaw.py analyze-image \\\n  --reference-urls https://example.com/photo.jpg \\\n  --query \"Describe the main content of this image\"\n```\n\n### Video Analysis\n\n```bash\npython3 scripts/artclaw.py analyze-video \\\n  --reference-urls https://example.com/clip.mp4 \\\n  --query \"Summarize the video content\"\n```\n\n### Script Extraction\n\n```bash\npython3 scripts/artclaw.py analyze-script \\\n  --reference-paths https://example.com/drama.mp4\n```\n\n### Character Profiles\n\n```bash\npython3 scripts/artclaw.py analyze-characters \\\n  --text \"Li Ming is an introverted but brilliant programmer...\"\n```\n\n---\n\n## Job Management & Errors\n\n```bash\npython3 scripts/artclaw.py job-status --job-id \"job_xxxxxxxx\"\npython3 scripts/artclaw.py list-jobs --status success --limit 10\npython3 scripts/artclaw.py cancel-job --job-id \"job_xxxxxxxx\"\npython3 scripts/artclaw.py last-job\npython3 scripts/artclaw.py history --limit 50\n```\n\nUse `job-status`, `last-job`, and `history` for follow-up instead of resubmitting generation requests. There is no `latest-job` command.\n\n| Error | Cause | Resolution |\n| --- | --- | --- |\n| `401 Unauthorized` | API key invalid, missing, or revoked | Guide user to regenerate the key |\n| `402` / insufficient credits | Account balance depleted | Guide user to top up at https://artclaw.com/settings |\n| `404 Job not found` | Job ID does not exist or expired after 24h | Tell user the job expired and ask whether to regenerate |\n| `404 Workflow not found` | Workflow does not exist | Run `list-workflows` first |\n| `429 Too Many Requests` | Rate limit exceeded | Wait and retry |\n\n---\n\n## Delivery Targets\n\nUse delivery options only when the platform adapter supports spawn/delivery mode.\n\n`--spawn` must be paired with both `--deliver-to` and `--deliver-channel`.\n\n| Scenario | `--deliver-channel` | `--deliver-to` value | Source |\n| --- | --- | --- | --- |\n| Feishu group chat | `feishu` | `oc_xxx` chat ID | `conversation_label` or `chat_id`, strip `chat:` prefix |\n| Feishu direct message | `feishu` | `ou_xxx` open ID | `sender_id`, strip `user:` prefix |\n| Telegram | `telegram` | `chat_id` | Inbound message context |\n| Discord | `discord` | `channel_id` | Inbound message context |\n\nFor Feishu, check `is_group_chat` in inbound metadata: `true` → use `oc_` chat ID; `false` → use `ou_` open ID.\n\n| Channel | Credential source |\n| --- | --- |\n| `feishu` | `~/.openclaw/openclaw.json` → `channels.feishu.accounts.main` |\n| `telegram` | `TELEGRAM_BOT_TOKEN` environment variable |\n| `discord` | Framework built-in message tool |\n\n---\n\n## Self Update\n\n```bash\npython3 scripts/artclaw.py self-update\n```\n\nPreview without writing files:\n\n```bash\npython3 scripts/artclaw.py self-update --dry-run\n```\n\nDownloads `https://github.com/ArtClaw1/artclaw-skill/archive/refs/heads/main.zip`, atomically applies added or modified files, and reports a JSON summary. Does not delete local-only files.\n","topics":["Content Creation","Marketing","Image Generation","Video Generation"],"tags":{"latest":"1.0.0"},"stats":{"comments":0,"downloads":327,"installsAllTime":13,"installsCurrent":1,"stars":0,"versions":1},"createdAt":1778068478749,"updatedAt":1778492859420},"latestVersion":{"version":"1.0.0","createdAt":1778068478749,"changelog":"Initial release — v1.1.0. Supports image/video generation, marketing image, workflow execution, multimodal analysis, and job management via ARTCLAW\n  REST API.","license":"MIT-0"},"metadata":{"setup":[{"key":"ARTCLAW_API_KEY","required":true}],"os":null,"systems":null},"owner":{"handle":"alanhuangyoo","userId":"s179243vwq3b0f8636vntchn4x866fj6","displayName":"alanhuangyoo","image":"https://avatars.githubusercontent.com/u/263162109?v=4"},"moderation":{"isSuspicious":false,"isMalwareBlocked":false,"verdict":"clean","reasonCodes":["review.llm_review"],"summary":"Review: review.llm_review","engineVersion":"v2.4.24","updatedAt":1780090753327}}