deviantart-post

Post artwork, journals, and status updates to a user's DeviantArt account through the official DeviantArt API using OAuth 2.1 Authorization Code with PKCE, Sta.sh upload, and Sta.sh publish. Use when the user wants to authenticate a local DeviantArt app, upload or publish a local file to DeviantArt, create a DeviantArt journal, or post a DeviantArt status update.

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "deviantart-post" with this command: npx skills add stanestane/deviantart-post

DeviantArt Post

Use the official API, not browser automation.

Workflow

  1. Ensure a local DeviantArt app exists and the user has a client_id and redirect URI.
  2. Create an app credentials file at ~/.openclaw/deviantart-app-credentials.json, or override the path with DEVIANTART_APP_CREDENTIALS.
  3. If no token exists or refresh fails, run scripts/deviantart_auth.py.
  4. Before any external post, summarize what will be published and get explicit confirmation.
  5. Run the relevant script for artwork, journals, or statuses.
  6. Return the final URL or deviation ID.

Local files

Default paths:

  • App credentials: ~/.openclaw/deviantart-app-credentials.json
  • Token file: ~/.openclaw/deviantart-token.json

Optional overrides:

  • DEVIANTART_APP_CREDENTIALS
  • DEVIANTART_TOKEN_PATH

Credentials file shape:

{
  "client_id": "12345",
  "redirect_uri": "http://127.0.0.1:8765/callback",
  "scopes": ["stash", "publish"]
}

Add user.manage when journals or statuses are needed.

Commands

Authenticate:

python .\skills\deviantart-post\scripts\deviantart_auth.py

Post artwork:

python .\skills\deviantart-post\scripts\deviantart_post_art.py --file "C:\path\to\image.png" --title "My title" --tags tag_one tag_two --artist-comments "Optional description" --is-mature false

Or use the PowerShell wrapper:

powershell -ExecutionPolicy Bypass -File .\skills\deviantart-post\scripts\deviantart_post.ps1 -File "C:\path\to\image.png" -Title "My title" -Tags tag_one,tag_two -IsMature false

Create a journal:

python .\skills\deviantart-post\scripts\deviantart_post_journal.py --title "My journal" --body "Body text" --is-mature false

Or use the PowerShell wrapper:

powershell -ExecutionPolicy Bypass -File .\skills\deviantart-post\scripts\deviantart_post_journal.ps1 -Title "My journal" -Body "Body text" -IsMature false

Post a status:

python .\skills\deviantart-post\scripts\deviantart_post_status.py --body "Hello from OpenClaw"

Or use the PowerShell wrapper:

powershell -ExecutionPolicy Bypass -File .\skills\deviantart-post\scripts\deviantart_post_status.ps1 -Body "Hello from OpenClaw"

Notes

  • stash/submit may return an error body even with HTTP 200. Always inspect the JSON body.
  • New DeviantArt apps use PKCE. Keep the auth flow local and desktop-friendly.
  • Access tokens expire quickly; refresh automatically before posting.
  • Omit empty optional publish fields; DeviantArt validates them aggressively.
  • Use --dry-run when the user wants a preview before uploading.
  • Gallery folder names can be resolved through --gallery-name; if multiple folders have the same name, require a UUID instead.
  • Ask before publishing because this is an external write action.

If auth fails

Read references/api-notes.md and check:

  • redirect URI exact match
  • client_id correctness
  • local callback port availability
  • whether the user needs to re-authorize the app
  • whether requested scopes match the action being attempted

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

Agentskill

Analyze a code repository and synthesize an AGENTS.md.

Registry SourceRecently Updated
1511Profile unavailable
Coding

Acuity Scheduling

Acuity Scheduling integration. Manage Calendars, Clients, Users, Forms, Packages, Coupons. Use when the user wants to interact with Acuity Scheduling data.

Registry SourceRecently Updated
980Profile unavailable
Coding

Tapfiliate

Tapfiliate integration. Manage Affiliates, Referrals, Conversions, Programs, Invoices. Use when the user wants to interact with Tapfiliate data.

Registry SourceRecently Updated
2070Profile unavailable
Coding

Kai Export PPT Lite

Export HTML presentations to editable PPTX slides using pure Python without browser dependencies, ideal for sandbox environments and limited runtimes.

Registry SourceRecently Updated
00Profile unavailable