da-cli-deviantart-sync

Sync DeviantArt galleries to local folders with OAuth 2.1 PKCE and SQLite indexing.

4|Updated May 16, 2026
One-click install
npx skills add https://github.com/reason-machines/devtools-skills --skill da-cli-deviantart-sync-reason-machines
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: da-cli-deviantart-sync
Source: https://github.com/reason-machines/devtools-skills/tree/main/skills/da-cli-deviantart-sync
Command: npx skills add https://github.com/reason-machines/devtools-skills --skill da-cli-deviantart-sync-reason-machines

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Manually downloading and organizing DeviantArt artwork is tedious and error-prone, with no built-in way to track what has already been saved or to automate recurring backups of watched artists. ## Core Features & Use Cases - Incremental Gallery Sync: A SQLite index tracks downloaded deviations so re-runs cost only one API call when nothing is new, with checkpoint-based resume for interrupted syncs. - OAuth 2.1 PKCE Authentication: Secure browser-based login with automatic token refresh and client secrets stored in macOS Keychain. - Scheduled Automation: launchd (macOS) and systemd (Linux) integration for unattended daily backups of your watch feed or specific artists. - Use Case: An art collector wants a local archive of every piece from artists they follow. They authenticate once with da auth, run da sync watched for a full backfill, then install a launchd job that syncs the feed every night at 03:00. ## Quick Start Install da-cli with pipx, register a DeviantArt OAuth app, then ask the agent to configure the client credentials and run an initial sync of your watch feed to a local folder.

Frequently Asked Questions about da-cli-deviantart-sync

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I sync my DeviantArt gallery to a local folder?▼

Install da-cli with pipx, register an OAuth app on the DeviantArt developers portal, set your client_id and client_secret with da config set, then run da auth followed by da sync feed or da sync artist username. Downloads go to the destination folder you configure.

How to schedule automatic DeviantArt backups on macOS or Linux?▼

On macOS, create a launchd plist in ~/Library/LaunchAgents with a StartCalendarInterval and load it with launchctl. On Linux, create a systemd user service and timer with OnCalendar=daily, then enable it with systemctl --user and run loginctl enable-linger.

Does da-cli require any Python dependencies?▼

No, da-cli has zero runtime dependencies and uses only the Python 3.10+ standard library. Python 3.10 is the minimum because the tool relies on argparse.BooleanOptionalAction and X | None type syntax.

Why does DeviantArt OAuth fail with a redirect_uri mismatch?▼

The error occurs when the redirect URI registered in your DeviantArt app does not exactly match what da-cli sends. Set the whitelist entry to https://localhost:8765/ including the trailing slash, and verify with da config get redirect_uri.

What happens when a DeviantArt sync is interrupted?▼

da-cli saves a checkpoint every 50 deviations by default, so re-running da sync feed automatically resumes from the last checkpoint. You can adjust the interval with da config set checkpoint_interval or force a fresh start with da index rebuild.

Where are da-cli tokens and client secrets stored?▼

The client secret is stored in macOS Keychain under the da-cli service, while OAuth tokens live in ~/.local/state/da-cli/state.json with 0600 permissions. PKCE code verifiers are generated per auth flow and never leave the machine.