Invoke ARTCLAW platform's AI content creation capabilities via REST API. Supports AI image generation, video generation, workflow execution, multimodal analysis, and more.
by @alanhuangyoo
ARTCLAW AI Creative Suite - invoke ARTCLAW platform's AI content creation capabilities via CLI. Supports AI image generation, video generation, workflow exec...
clawhub install artclaw-creative-suiteπ About This Skill
name: artclaw-creative-suite description: | ARTCLAW AI Creative Suite - invoke ARTCLAW platform's AI content creation capabilities via CLI. Supports AI image generation, video generation, workflow execution, multimodal analysis, and job management. All generation commands must run asynchronously using the current platform adapter. Requires an API Key prefixed with vk_ for authenticated features. Trigger keywords: generate image, generate video, AI painting, text-to-image, text-to-video, image-to-video, marketing image, logo, cover, workflow, video analysis, image analysis, ARTCLAW, ArtClaw. compatibility: dependencies: - ARTCLAW REST API (https://artclaw.com/api/v1) - Python 3.8+ with requests package metadata: { 'openclaw': { 'emoji': 'π¨', 'requires': { 'env': ['ARTCLAW_API_KEY'] }, 'primaryEnv': 'ARTCLAW_API_KEY', }, }
ARTCLAW AI Creative Suite
ARTCLAW 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.
Mandatory Startup Flow
1. Detect the current agent platform.
2. Read exactly one matching adapter document from docs/adapters/ before running generation or workflow commands.
3. Run the pre-flight API key check before authenticated operations.
4. Never mix execution rules from multiple adapters.
If platform detection is ambiguous, ask the user which platform they are using. If the platform is unsupported, use docs/adapters/others.md.
Platform Adapter Map
| Platform | Adapter document |
| --- | --- |
| OpenClaw | docs/adapters/openclaw.md |
| Claude Code | docs/adapters/claude-code.md |
| Hermes Agent | docs/adapters/hermes.md |
| Unknown / unsupported platform | docs/adapters/others.md |
Universal Rules
1. Use the CLI, not raw curl: python3 scripts/artclaw.py ....
2. Run python3 scripts/artclaw.py verify-key before authenticated operations.
3. Generation and workflow commands are long-running and must not block the main agent silently.
4. 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.
5. 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.
6. In OpenClaw-compatible spawn platforms, use --spawn instead of --no-wait.
7. Immediately tell the user after a generation/workflow job is submitted or a background task is started.
8. Analysis commands are synchronous and do not require spawn/background execution.
9. Guide users to https://artclaw.com/settings for API key creation and credit top-up.
10. Deliver generated media as native platform messages when the adapter supports it; otherwise return the result URL and job metadata.
11. 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.
API Key & Account
Run this before authenticated operations:
python3 scripts/artclaw.py verify-key
{"status": "valid"}: continue.Setup:
1. Open https://artclaw.com/settings.
2. Create an API key in the API Keys section.
3. Copy the generated key. It is prefixed with vk_ and is shown only once.
4. Configure locally:
python3 scripts/artclaw.py config-init --api-key "vk_xxx"
Useful account commands:
python3 scripts/artclaw.py account-info
python3 scripts/artclaw.py config
All local ARTCLAW data is stored under ~/.artclaw/, including config.json, last_job.json, and history/.
Generation Commands
Generation 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.
Safe default:
--spawn.run_in_background: true when available.--no-wait β unless the adapter defines its own background strategy (e.g. Hermes uses background terminal; see adapter doc).Generate Image
python3 scripts/artclaw.py generate-image \
--prompt "Cyberpunk cityscape at night, neon lights reflected in rainwater" \
--aspect-ratio 16:9 \
--no-wait
With references:
python3 scripts/artclaw.py generate-image \
--prompt "Landscape painting in the same style" \
--reference-urls https://example.com/style_ref.jpg \
--no-wait
| Parameter | Description | Values |
| --- | --- | --- |
| --prompt | Image description, required | Text |
| --aspect-ratio | Aspect ratio | 16:9, 9:16, 1:1, 4:3, 21:9 |
| --resolution | Resolution | 1K, 2K, 4K |
| --reference-urls | Reference image URLs or base64 data URIs | One or more values |
| --reference-files | Local reference files, auto-converted to base64 | One or more paths |
| --model | Model override | Model ID |
Generate Video
python3 scripts/artclaw.py generate-video \
--prompt "Waves crashing on rocks, slow motion" \
--aspect-ratio 16:9 \
--duration 5 \
--resolution 720p \
--no-wait
Image-to-video:
python3 scripts/artclaw.py generate-video \
--prompt "Make the person in the frame turn their head and smile" \
--reference-urls https://example.com/portrait.jpg \
--no-wait
| Parameter | Description | Values |
| --- | --- | --- |
| --prompt | Video description, required | Text |
| --aspect-ratio | Aspect ratio | 16:9, 9:16, 1:1, 4:3, 21:9 |
| --duration | Duration in seconds | 2 - 12 |
| --resolution | Resolution | 480p, 720p, 1080p |
| --reference-urls | Reference image URLs or base64 data URIs | One or more values |
| --reference-files | Local reference image files, auto-converted | One or more paths |
| --model | Model override | Model ID |
Generate Marketing Image
python3 scripts/artclaw.py generate-marketing-image \
--prompt "Summer cool drinks promotional poster" \
--size 1080x1920 \
--no-wait
Execute Workflow
python3 scripts/artclaw.py list-workflows
python3 scripts/artclaw.py run-workflow \
--workflow-id "text-to-image-basic" \
--inputs '{"prompt": "Anime-style forest"}' \
--no-wait
Replace --no-wait with --spawn, --deliver-to, and --deliver-channel only when the current platform adapter says to do so.
Analysis Commands
Analysis commands are synchronous. They do not require --spawn or background execution.
Image Analysis
python3 scripts/artclaw.py analyze-image \
--reference-urls https://example.com/photo.jpg \
--query "Describe the main content of this image"
Video Analysis
python3 scripts/artclaw.py analyze-video \
--reference-urls https://example.com/clip.mp4 \
--query "Summarize the video content"
Script Extraction
python3 scripts/artclaw.py analyze-script \
--reference-paths https://example.com/drama.mp4
Character Profiles
python3 scripts/artclaw.py analyze-characters \
--text "Li Ming is an introverted but brilliant programmer..."
Job Management & Errors
python3 scripts/artclaw.py job-status --job-id "job_xxxxxxxx"
python3 scripts/artclaw.py list-jobs --status success --limit 10
python3 scripts/artclaw.py cancel-job --job-id "job_xxxxxxxx"
python3 scripts/artclaw.py last-job
python3 scripts/artclaw.py history --limit 50
Use job-status, last-job, and history for follow-up instead of resubmitting generation requests. There is no latest-job command.
| Error | Cause | Resolution |
| --- | --- | --- |
| 401 Unauthorized | API key invalid, missing, or revoked | Guide user to regenerate the key |
| 402 / insufficient credits | Account balance depleted | Guide user to top up at https://artclaw.com/settings |
| 404 Job not found | Job ID does not exist or expired after 24h | Tell user the job expired and ask whether to regenerate |
| 404 Workflow not found | Workflow does not exist | Run list-workflows first |
| 429 Too Many Requests | Rate limit exceeded | Wait and retry |
Delivery Targets
Use delivery options only when the platform adapter supports spawn/delivery mode.
--spawn must be paired with both --deliver-to and --deliver-channel.
| Scenario | --deliver-channel | --deliver-to value | Source |
| --- | --- | --- | --- |
| Feishu group chat | feishu | oc_xxx chat ID | conversation_label or chat_id, strip chat: prefix |
| Feishu direct message | feishu | ou_xxx open ID | sender_id, strip user: prefix |
| Telegram | telegram | chat_id | Inbound message context |
| Discord | discord | channel_id | Inbound message context |
For Feishu, check is_group_chat in inbound metadata: true β use oc_ chat ID; false β use ou_ open ID.
| Channel | Credential source |
| --- | --- |
| feishu | ~/.openclaw/openclaw.json β channels.feishu.accounts.main |
| telegram | TELEGRAM_BOT_TOKEN environment variable |
| discord | Framework built-in message tool |
Self Update
python3 scripts/artclaw.py self-update
Preview without writing files:
python3 scripts/artclaw.py self-update --dry-run
Downloads 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.